summaryrefslogtreecommitdiff
path: root/x11/kde4
diff options
context:
space:
mode:
authorMichael Nottebrock <lofi@FreeBSD.org>2003-07-29 04:26:22 +0000
committerMichael Nottebrock <lofi@FreeBSD.org>2003-07-29 04:26:22 +0000
commitac4ef3820bce26f3bbb3fb8b1baaeae42b7028ca (patch)
treee774043ee6ff3c3d53fd74afbfa1a6efb14d22e3 /x11/kde4
parentUse better ../ & control vulnerability fix (diff)
Update KDE to the latest official release, KDE 3.1.3
Official KDE 3.1.3 announcement: http://www.kde.org/announcements/announce-3.1.3.php (may not work until a few hours after this commit - we jumped the gun a little in order to have the update in place at the time the security notifications for KDE 3.1.2 will be released together with the announcement of KDE 3.1.3). Changelog from 3.1.2 to 3.1.3 release: http://www.kde.org/announcements/changelogs/changelog3_1_2to3_1_3.php Thanks and credits need to go to the whole KDE-FreeBSD team, as well as everyone on kde@freebsd.org for providing feedback, reporting bugs and just using the KDE ports. Approved by: will (real mentor asleep)
Notes
Notes: svn path=/head/; revision=85806
Diffstat (limited to 'x11/kde4')
-rw-r--r--x11/kde4/Makefile152
-rw-r--r--x11/kde4/Makefile.kde7
-rw-r--r--x11/kde4/files/post-configure-message12
-rw-r--r--x11/kde4/pkg-plist2
-rw-r--r--x11/kde4/scripts/configure.kde3128
5 files changed, 280 insertions, 21 deletions
diff --git a/x11/kde4/Makefile b/x11/kde4/Makefile
index 3e9ebb3f4c3f..569c371975cf 100644
--- a/x11/kde4/Makefile
+++ b/x11/kde4/Makefile
@@ -8,7 +8,6 @@
PORTNAME= kde
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 1
CATEGORIES= x11 kde
MASTER_SITES= # empty
DISTFILES= # none
@@ -17,22 +16,132 @@ EXTRACT_ONLY= # empty
MAINTAINER= kde@FreeBSD.org
COMMENT= The "meta-port" for KDE
-.if !defined(MINIMAL_KDE)
-RUN_DEPENDS+= kjumpingcube:${PORTSDIR}/games/kdegames3 \
- kdessh:${PORTSDIR}/misc/kdeutils3 \
- kword:${PORTSDIR}/editors/koffice-kde3 \
- kppp:${PORTSDIR}/net/kdenetwork3 \
- kview:${PORTSDIR}/graphics/kdegraphics3 \
- kmix:${PORTSDIR}/multimedia/kdemultimedia3 \
- korganizer:${PORTSDIR}/deskutils/kdepim3 \
- cervisia:${PORTSDIR}/devel/kdesdk3 \
- kdevelop:${PORTSDIR}/devel/kdevelop \
- atlantikdesigner:${PORTSDIR}/misc/kdeaddons3 \
- khangman:${PORTSDIR}/misc/kdeedu3 \
- kcron:${PORTSDIR}/sysutils/kdeadmin3 \
- quanta:${PORTSDIR}/www/quanta \
- kmoon:${PORTSDIR}/x11-clocks/kdetoys3 \
- kmatrix.kss:${PORTSDIR}/x11-wm/kdeartwork3
+## This is the file where the selections made in the interactive dialog
+## are saved in and initialized from.
+
+CONFIG_FILE= ${LOCALBASE}/etc/kde-meta.conf
+
+## The list of all modules that make up KDE, excluding the base modules
+## arts, kdebase and kdelibs
+
+ALL_MODULES= KDEADDONS KDEADMIN KDEARTWORK KDEVELOP KDEEDU KDEGAMES \
+ KDEGRAPHICS KDEMULTIMEDIA KDENETWORK KOFFICE KDEPIM KDESDK \
+ KDETOYS KDEUTILS QUANTA
+
+## Forwards parts of the environment to scripts/configure.kde3
+
+SCRIPTS_ENV+= ALL_MODULES="${ALL_MODULES}" \
+ BATCH="${BATCH}" \
+ CAT="${CAT}" \
+ CONFIG_FILE="${CONFIG_FILE}" \
+ CURDIR="${CURDIR}" \
+ ECHO="${ECHO}" \
+ ECHO_MSG="${ECHO_MSG}" \
+ GREP="${GREP}" \
+ MKDIR="${MKDIR}" \
+ PKG_DELETE="${PKG_DELETE}" \
+ PKG_INFO="${PKG_INFO}" \
+ REINPLACE_CMD="${REINPLACE_CMD}" \
+ SED="${SED}" \
+ TOUCH="${TOUCH}" \
+ TR="${TR}" \
+ WRKDIRPREFIX="${WRKDIRPREFIX}"
+
+## If MINIMAL_KDE is defined, define WITHOUT_FOO for every
+## module there is.
+
+.if defined(MINIMAL_KDE)
+.for module in ${ALL_MODULES}
+WITHOUT_${module}=yes
+.endfor
+.endif
+
+## If the user has some WITHOUT_FOO stuff set that matters to us,
+## define BATCH so interactive configuration will be skipped.
+
+.for module in ${ALL_MODULES}
+.if defined(WITHOUT_${module})
+BATCH= yes
+.endif
+.endfor
+
+## If the user (or the packagecluster) defines batchprocessing, skip
+## the interactive configuration. Otherwise declare this port properly
+## as interactive, launch the selector script cand include the configuration
+## file that's being returned by it (Makefile.inc). Remove the file on make
+## clean.
+
+.if !defined(BATCH) && !defined(PACKAGE_BUILDING) && !defined(MINIMAL_KDE)
+IS_INTERACTIVE= yes
+PLIST_SUB+= IS_INTERACTIVE=""
+.else
+PLIST_SUB+= IS_INTERACTIVE="@comment "
+.endif
+
+.if !defined(BATCH)
+pre-fetch:
+ @${RM} -f ${WRKDIRPREFIX}${.CURDIR}/Makefile.inc
+ @${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.kde3
+
+post-configure:
+ @/usr/bin/clear
+ @${CAT} ${FILESDIR}/post-configure-message
+
+post-clean:
+ @${RM} -f ${WRKDIRPREFIX}${.CURDIR}/Makefile.inc
+
+.if exists(${WRKDIRPREFIX}${.CURDIR}/Makefile.inc)
+.include "${WRKDIRPREFIX}${.CURDIR}/Makefile.inc"
+.endif
+
+.endif # !defined(BATCH)
+
+## Allow to turn off every optional bit of KDE.
+
+.if !defined(WITHOUT_KDEGAMES)
+RUN_DEPENDS+= kjumpingcube:${PORTSDIR}/games/kdegames3
+.endif
+.if !defined(WITHOUT_KDEUTILS)
+RUN_DEPENDS+= kdessh:${PORTSDIR}/misc/kdeutils3
+.endif
+.if !defined(WITHOUT_KOFFICE)
+RUN_DEPENDS+= kword:${PORTSDIR}/editors/koffice-kde3
+.endif
+.if !defined(WITHOUT_KDENETWORK)
+RUN_DEPENDS+= kppp:${PORTSDIR}/net/kdenetwork3
+.endif
+.if !defined(WITHOUT_KDEGRAPHICS)
+RUN_DEPENDS+= kview:${PORTSDIR}/graphics/kdegraphics3
+.endif
+.if !defined(WITHOUT_KDEMULTIMEDIA)
+RUN_DEPENDS+= kmix:${PORTSDIR}/multimedia/kdemultimedia3
+.endif
+.if !defined(WITHOUT_KDEPIM)
+RUN_DEPENDS+= korganizer:${PORTSDIR}/deskutils/kdepim3
+.endif
+.if !defined(WITHOUT_KDESDK)
+RUN_DEPENDS+= cervisia:${PORTSDIR}/devel/kdesdk3
+.endif
+.if !defined(WITHOUT_KDEVELOP)
+RUN_DEPENDS+= kdevelop:${PORTSDIR}/devel/kdevelop
+.endif
+.if !defined(WITHOUT_KDEADDONS)
+RUN_DEPENDS+= atlantikdesigner:${PORTSDIR}/misc/kdeaddons3
+.endif
+.if !defined(WITHOUT_KDEEDU)
+RUN_DEPENDS+= khangman:${PORTSDIR}/misc/kdeedu3
+.endif
+.if !defined(WITHOUT_KDEADMIN)
+RUN_DEPENDS+= kcron:${PORTSDIR}/sysutils/kdeadmin3
+.endif
+.if !defined(WITHOUT_QUANTA)
+RUN_DEPENDS+= quanta:${PORTSDIR}/www/quanta
+.endif
+.if !defined(WITHOUT_KDETOYS)
+RUN_DEPENDS+= kmoon:${PORTSDIR}/x11-clocks/kdetoys3
+.endif
+.if !defined(WITHOUT_KDEARTWORK)
+RUN_DEPENDS+= kmatrix.kss:${PORTSDIR}/x11-wm/kdeartwork3
.endif
.if make(package)
@@ -45,7 +154,12 @@ USE_KDEBASE_VER=3
NO_BUILD= yes
-do-install: # empty
- ${DO_NADA}
+## Copy Makefile.inc to ${OPTION_FILE} where it will serve as memory of the
+## user's last selection.
+
+do-install:
+.if exists(${WRKDIRPREFIX}${.CURDIR}/Makefile.inc)
+ @${INSTALL_DATA} ${WRKDIRPREFIX}${.CURDIR}/Makefile.inc ${CONFIG_FILE}
+.endif
.include <bsd.port.mk>
diff --git a/x11/kde4/Makefile.kde b/x11/kde4/Makefile.kde
index 9dbb43503b28..a974fa4da75e 100644
--- a/x11/kde4/Makefile.kde
+++ b/x11/kde4/Makefile.kde
@@ -16,7 +16,12 @@ COPY= -c -p
_NO_KDE_FINAL= yes
_NO_KDE_NDEBUG= yes
DISTNAME= ${PORTNAME}-${PKGNAMEPREFIX:S/-$//}-${PORTVERSION}
+# Since KDE 3.1.3, the kde-i18n tarballs have the ${KDE_VERSION}
+# as part of the name of their toplevel directory, while the
+# koffice-i18n ones have not, so we need to take care of that.
+.if ${PORTNAME}==koffice-i18n
WRKSRC= ${WRKDIR}/${PORTNAME}-${PKGNAMEPREFIX:S/-$//}
+.endif
DIST_SUBDIR= KDE/kde-i18n
# nasty hack to force newer timestamps on cache
@@ -68,7 +73,7 @@ CONFIGURE_ARGS+=--enable-final
.if defined(PARALLEL_PACKAGE_BUILD) || !defined(WANT_KDE_DEBUG)
CONFIGURE_ARGS+=--disable-debug
.else
-CONFIGURE_ARGS+=--enable-debug
+CONFIGURE_ARGS+=--enable-debug=full
STRIP=''
.endif # defined(PARALLEL_PACKAGE_BUILD) || !defined(WANT_KDE_DEBUG)
.endif # !defined(_NO_KDE_NDEBUG)
diff --git a/x11/kde4/files/post-configure-message b/x11/kde4/files/post-configure-message
new file mode 100644
index 000000000000..9d9e168eb249
--- /dev/null
+++ b/x11/kde4/files/post-configure-message
@@ -0,0 +1,12 @@
+Configuration finished. Run 'make install' to install the modules
+you selected. Run 'make clean && make' to re-enter the configuration.
+Please note that you CANNOT REMOVE modules through this menu system,
+use pkg_delete instead.
+
+If you do not want the menu to run, put BATCH=YES into /etc/make.conf
+(this will install all KDE modules).
+
+If you do not want the menu to run AND you do not want specific
+modules to be installed, put lines reading 'WITHOUT_<Name-of-Module>=YES'
+into /etc/make.conf (for example WITHOUT_KOFFICE=YES).
+
diff --git a/x11/kde4/pkg-plist b/x11/kde4/pkg-plist
index 549a621fec0c..d5d8d29f02ca 100644
--- a/x11/kde4/pkg-plist
+++ b/x11/kde4/pkg-plist
@@ -1 +1 @@
-@comment this plist intentionally left empty
+%%IS_INTERACTIVE%%etc/kde-meta.conf
diff --git a/x11/kde4/scripts/configure.kde3 b/x11/kde4/scripts/configure.kde3
new file mode 100644
index 000000000000..d7a418ba9cdf
--- /dev/null
+++ b/x11/kde4/scripts/configure.kde3
@@ -0,0 +1,128 @@
+#!/bin/sh
+
+## Create four tempfiles: A tempfile to store the selection from the menu in,
+## one to store the same selection after some transformation (for comm), one to
+## store the contents of ${ALL_MODULES} (also for comm) and one to store
+## the output of pkg_info.
+
+tempselection=`mktemp -t selection`
+tempprocessed=`mktemp -t processed`
+tempallmodules=`mktemp -t allmodules`
+tempinstalled=`mktemp -t installed`
+
+## By default, preselect all modules.
+
+for i in `${ECHO} "${ALL_MODULES}" | ${TR} '[:upper:]' '[:lower:]'`
+ do
+ eval status_$i=ON
+ done
+
+## If a configfile exists and has actual content, parse it and un-select
+## modules accordingly (the configfile is supposed to contain WITHOUT_FOO=yes)
+## lines. We don't check what's really in there, it shouldn't do harm when we
+## set bogus shell variables.
+
+if [ -s "${CONFIG_FILE}" ]; then
+ for i in `${CAT} ${CONFIG_FILE} | ${TR} '[:upper:]' '[:lower:]' \
+ | ${SED} -E -e 's/without_//g' -e 's/=yes//g'`
+ do
+ eval status_$i=OFF
+ done
+
+ ## Try to be ubersmart: Check for all installed packages and preselect
+ ## them. This catches the case where people have added ports without the
+ ## the metaport, run the metaport again and wonder why they have parts
+ ## of KDE installed afterwards that were not selected.
+ ##
+ ## Bugs: This metaport can check for existing packages, but it cannot
+ ## remove packages the user explicitly unselects, but which are
+ ## already installed.
+
+ if [ -f $tempinstalled ];then
+ ${ECHO_MSG}
+ ${ECHO_MSG} -n " Looking for installed modules."
+
+ for i in `${ECHO} "${ALL_MODULES}" | ${TR} '[:upper:]' '[:lower:]'`
+ do
+ ${PKG_INFO} | ${GREP} $i | ${SED} -e 's/-.*//g' >> $tempinstalled
+ ${ECHO_MSG} -n "."
+ done
+
+ for i in `${CAT} $tempinstalled`
+ do
+ eval status_$i=ON
+ done
+ fi
+fi
+
+## Run the menu dialog, except BATCH is defined. We define BATCH automatically
+## if people have WITH_FOO* set in their make.conf or on the commandline.
+## Actually, we don't even run this whole script at all if BATCH is defined...
+## But I'll leave it in just in case, and also as a reference to andreas@
+## who came up with this kind of configuration magic first and from whose ports
+## I've stolen it all. Save the results in the tempselection tempfile.
+
+if [ -z "${BATCH}" ]; then
+ /usr/bin/dialog --title "K Desktop Environment Customized Installation" --clear \
+ --checklist "\n\
+Please select what additional KDE modules you would like to install.\n\n" \
+-1 -1 15 \
+"KDEADDONS" "Additional plugins and scripts for some KDE applications" "$status_kdeaddons" \
+"KDEADMIN" "KDE applications related to system administration" "$status_kdeadmin" \
+"KDEARTWORK" "Additional themes, sounds, wallpapers and window styles" "$status_kdeartwork" \
+"KDEVELOP" "Powerful IDE for developing KDE/Qt-based applications" "$status_kdevelop" \
+"KDEEDU" "Collection of entertaining, educational programs" "$status_kdeedu" \
+"KDEGAMES" "Games like kolf, patience, atlantik, etc" "$status_kdegames" \
+"KDEGRAPHICS" "Graphics utilities like kview, kpaint, kghostview, etc" "$status_kdegraphics" \
+"KDEMULTIMEDIA" "Multimedia utilities like noatun, kmix, etc" "$status_kdemultimedia" \
+"KDENETWORK" "Network-related programs like kmail, knode, kppp, etc" "$status_kdenetwork" \
+"KOFFICE" "Office Suite including wordprocessor, spreadsheet, etc" "$status_koffice" \
+"KDEPIM" "Personal Information Management" "$status_kdepim" \
+"KDESDK" "KDE software development kit" "$status_kdesdk" \
+"KDETOYS" "Miscellaneous small applications" "$status_kdetoys" \
+"KDEUTILS" "Utilities like kcalc, kcharselect, ark, kedit, etc" "$status_kdeutils" \
+"QUANTA" "Comprehensive website development environment" "$status_quanta" \
+2> $tempselection
+
+ ## Save the return value from dialog.
+
+ retval=$?
+
+ ## Write out all the module names into a newline-delimited list...
+
+ if [ -f $tempallmodules ]; then
+ ${ECHO} "$ALL_MODULES" | ${SED} -E -e 's/[[:space:]]+/ /g' | ${TR} '[:space:]' '\n' > $tempallmodules
+ fi
+
+ ## ...do the same for the selection made in the dialog, comm -23 the
+ ## two files to get the delta and set that as shell variables.
+
+ if [ -s $tempselection ]; then
+ ${CAT} $tempselection | ${SED} -E -e 's/[[:space:]]+/ /g' \
+ -e 's/"//g' | ${TR} '[:space:]' '\n' > $tempprocessed
+ set `/usr/bin/comm -23 $tempallmodules $tempprocessed`
+ fi
+
+ ## Clean out the tempfiles.
+
+ rm -f $tempselection $tempprocessed $tempallmodules $tempinstalled
+
+ ## If the user selected "Cancel" in the dialog, exit.
+
+ if [ $retval = 1 ]; then
+ ${ECHO_MSG} "Aborting"
+ exit 1
+ fi
+fi
+
+## Create Makefile.inc
+
+${MKDIR} -p ${WRKDIRPREFIX}${CURDIR}
+${TOUCH} ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
+
+## Populate Makefile.inc by writing out the delta we saved above.
+
+while [ $1 ]; do
+ ${ECHO} "WITHOUT_$1=yes" >> ${WRKDIRPREFIX}${CURDIR}/Makefile.inc;
+ shift
+done