* [gentoo-dev] problems with need-kde/qt and possible solutions
@ 2004-07-31 0:22 Carsten Lohrke
2004-08-06 10:52 ` Paul de Vrieze
0 siblings, 1 reply; 3+ messages in thread
From: Carsten Lohrke @ 2004-07-31 0:22 UTC (permalink / raw
To: kde, portage; +Cc: gentoo-dev
[-- Attachment #1: Type: Text/Plain, Size: 2070 bytes --]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I played with the kde.eclass today, to be sure what can/has to be done, to
remove the problematic need-kde/qt functions from ebuilds. For reasons see
Bug 25013 (comment 50 ff.) and Bug 58819.
Solution A (the quick and dirty one):
Introducing a NEED_KDE variable and calling need-kde ${NEED_KDE} inside of the
kde.eclass.
advantage:
- - that simple, that it is "implemented" already
disadvantages:
- - NEED_KDE has to be set before the ebuild inherits its eclass, which is not
better than having to put need-kde/qt after R/DEPEND
- - need-kde is still called outside of "portage functions"
- - disadvantages of need-kde remain; It always adds a >=kdelibs-x.y dependency,
even though it may be implied by <=kde-base/kdegraphics-x.z. This behaviour
can be overridden by setting NEED_KDE_DONT_ADD_KDELIBS_DEP, but it's hard to
find an ebuild which is using it (not even the kde-base/* ebuilds). So the
dependencies are often not "clean".
Solution B (my favorite):
Parsing simplified (w/o conditionals) ebuild R/DEPEND variables, which have to
be provided by Portage, inside of kde.eclass in a function
"set_dependencies()" that has to be executed, before Portage evaluates eclass
R/DEPEND variables.
advantages:
- - no extra NEED_KDE varible needed
- - all disadvantages of solution A do not apply
disadvantages:
- - need simplified ebuild variables provided by portage
- - need another function provided by portage
Both solutions are simply backwards compatible by setting a flag, if need-kde
is called.
Attachments:
- - modified kde{,functions}2.eclass which implement solution A, only renamed to
make sure not to interfere with the eclasses in cvs
- - eclasses.diff - for your convenience ;)
- - knemo-0.2.0.ebuild, which makes use of the change
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFBCuZEVwbzmvGLSW8RAo6+AKCeB3VxVyQB9hltzYnqM9m+5UmLNgCcCpMW
y9Hc9ddzrmkchlemZGZu/rk=
=79gS
-----END PGP SIGNATURE-----
[-- Attachment #2: eclasses.diff --]
[-- Type: text/x-diff, Size: 1600 bytes --]
--- /usr/portage/eclass/kde-functions.eclass 2004-06-25 03:13:00.000000000 +0200
+++ kde-functions2.eclass 2004-07-31 02:06:24.000000000 +0200
@@ -10,6 +10,9 @@
ECLASS=kde-functions
INHERITED="$INHERITED $ECLASS"
# convinience functions for requesting autotools versions
+
+NEED_CALLED=0
+
need-automake() {
debug-print-function $FUNCNAME $*
@@ -50,7 +53,8 @@
# ---------------------------------------------------------------
need-kde() {
-
+ # set this variable for backwards compatibility
+ NEED_CALLED=1
debug-print-function $FUNCNAME $*
KDEVER="$1"
@@ -207,7 +211,7 @@
}
need-qt() {
-
+ NEED_CALLED=1
debug-print-function $FUNCNAME $*
QTVER="$1"
--- /usr/portage/eclass/kde.eclass 2004-07-27 18:12:06.000000000 +0200
+++ kde2.eclass 2004-07-31 02:11:04.000000000 +0200
@@ -7,7 +7,7 @@
# Revisions Caleb Tennis <caleb@gentoo.org>
# The kde eclass is inherited by all kde-* eclasses. Few ebuilds inherit straight from here.
-inherit base kde-functions
+inherit base kde-functions2
ECLASS=kde
INHERITED="$INHERITED $ECLASS"
DESCRIPTION="Based on the $ECLASS eclass"
@@ -26,6 +26,25 @@
# overridden in other places like kde-dist, kde-source and some individual ebuilds
SLOT="0"
+
+# Solution A
+if [ ${NEED_CALLED} == 0 ] ; then
+ need-kde ${NEED_KDE}
+fi
+
+# Solution B (can't be written without changes in portage)
+
+#kde_set_dependencies()() {
+# resolve_kde_ver() {
+# # local PREFIX_OPS="~ < > <= => = ! !="
+# #
+# #}
+# if [ ${NEED_CALLED} == 0 ] ; then
+# do some parsing
+# fi
+#
+#}
+
kde_src_unpack() {
debug-print-function $FUNCNAME $*
[-- Attachment #3: kde2.eclass --]
[-- Type: text/plain, Size: 5498 bytes --]
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/kde.eclass,v 1.101 2004/07/27 15:52:25 caleb Exp $
#
# Author Dan Armak <danarmak@gentoo.org>
#
# Revisions Caleb Tennis <caleb@gentoo.org>
# The kde eclass is inherited by all kde-* eclasses. Few ebuilds inherit straight from here.
inherit base kde-functions2
ECLASS=kde
INHERITED="$INHERITED $ECLASS"
DESCRIPTION="Based on the $ECLASS eclass"
HOMEPAGE="http://www.kde.org/"
IUSE="${IUSE} debug arts"
DEPEND=">=sys-devel/automake-1.7.0
sys-devel/autoconf
sys-devel/make
dev-util/pkgconfig
dev-lang/perl
~kde-base/kde-env-3"
RDEPEND="~kde-base/kde-env-3"
# overridden in other places like kde-dist, kde-source and some individual ebuilds
SLOT="0"
# Solution A
if [ ${NEED_CALLED} == 0 ] ; then
need-kde ${NEED_KDE}
fi
# Solution B (can't be written without changes in portage)
#kde_set_dependencies()() {
# resolve_kde_ver() {
# # local PREFIX_OPS="~ < > <= => = ! !="
# #
# #}
# if [ ${NEED_CALLED} == 0 ] ; then
# do some parsing
# fi
#
#}
kde_src_unpack() {
debug-print-function $FUNCNAME $*
# call base_src_unpack, which implements most of the functionality and has sections,
# unlike this function. The change from base_src_unpack to kde_src_unpack is thus
# wholly transparent for ebuilds.
base_src_unpack $*
# kde-specific stuff stars here
# fix the 'languageChange undeclared' bug group: touch all .ui files, so that the
# makefile regenerate any .cpp and .h files depending on them.
cd $S
debug-print "$FUNCNAME: Searching for .ui files in $PWD"
UIFILES="`find . -name '*.ui' -print`"
debug-print "$FUNCNAME: .ui files found:"
debug-print "$UIFILES"
# done in two stages, because touch doens't have a silent/force mode
if [ -n "$UIFILES" ]; then
debug-print "$FUNCNAME: touching .ui files..."
touch $UIFILES
fi
# shorthand for removing specified subdirectories fom the build process
[ -n "$KDE_REMOVE_DIR" ] && kde_remove_dir $KDE_REMOVE_DIR
}
kde_src_compile() {
debug-print-function $FUNCNAME $*
[ -z "$1" ] && kde_src_compile all
cd ${S}
export kde_widgetdir="$KDEDIR/lib/kde3/plugins/designer"
# fix the sandbox errors "can't writ to .kde or .qt" problems.
# this is a fake homedir that is writeable under the sandbox, so that the build process
# can do anything it wants with it.
REALHOME="$HOME"
mkdir -p $T/fakehome/.kde
mkdir -p $T/fakehome/.qt
export HOME="$T/fakehome"
addwrite "${QTDIR}/etc/settings"
# things that should access the real homedir
[ -d "$REALHOME/.ccache" ] && ln -sf "$REALHOME/.ccache" "$HOME/"
[ -n "$UNSERMAKE" ] && addwrite "/usr/kde/unsermake"
while [ "$1" ]; do
case $1 in
myconf)
debug-print-section myconf
myconf="$myconf --host=${CHOST} --prefix=${PREFIX} --with-x --enable-mitshm --with-xinerama --with-qt-dir=${QTDIR} --enable-mt"
# calculate dependencies separately from compiling, enables ccache to work on kde compiles
[ -z "$UNSERMAKE" ] && myconf="$myconf --disable-dependency-tracking"
if use debug ; then
myconf="$myconf --enable-debug=full --with-debug"
else
myconf="$myconf --disable-debug --without-debug"
fi
[ "$KDEMINORVER" -ge 3 ] && myconf="$myconf `use_with arts`"
debug-print "$FUNCNAME: myconf: set to ${myconf}"
;;
configure)
debug-print-section configure
debug-print "$FUNCNAME::configure: myconf=$myconf"
# rebuild configure script, etc
# This can happen with e.g. a cvs snapshot
if [ ! -f "./configure" ] || [ -n "$UNSERMAKE" ]; then
for x in Makefile.cvs admin/Makefile.common; do
if [ -f "$x" ] && [ -z "$makefile" ]; then makefile="$x"; fi
done
if [ -f "$makefile" ]; then
debug-print "$FUNCNAME: configure: generating configure script, running make -f $makefile"
make -f $makefile
fi
[ -f "./configure" ] || die "no configure script found, generation unsuccessful"
fi
export PATH="${KDEDIR}/bin:${PATH}"
# configure doesn't need to know about the other KDEs installed.
# in fact, if it does, it sometimes tries to use the wrong dcopidl, etc.
# due to the messed up way configure searches for things
export KDEDIRS="${PREFIX}:${KDEDIR}"
cd $S
./configure ${myconf} || die "died running ./configure, $FUNCNAME:configure"
# Seems ./configure add -O2 by default but hppa don't want that but we need -ffunction-sections
if [ "${ARCH}" = "hppa" ]
then
einfo Fixating Makefiles
find ${S} -name Makefile | while read a; do sed -e s/-O2/-ffunction-sections/ -i "${a}" ; done
fi
;;
make)
export PATH="${KDEDIR}/bin:${PATH}"
debug-print-section make
emake || die "died running emake, $FUNCNAME:make"
;;
all)
debug-print-section all
kde_src_compile myconf configure make
;;
esac
shift
done
}
kde_src_install() {
debug-print-function $FUNCNAME $*
[ -z "$1" ] && kde_src_install all
cd ${S}
while [ "$1" ]; do
case $1 in
make)
debug-print-section make
make install DESTDIR=${D} destdir=${D} || die "died running make install, $FUNCNAME:make"
;;
dodoc)
debug-print-section dodoc
for doc in AUTHORS ChangeLog* README* COPYING NEWS TODO; do
[ -s "$doc" ] && dodoc $doc
done
;;
all)
debug-print-section all
kde_src_install make dodoc
;;
esac
shift
done
}
EXPORT_FUNCTIONS src_unpack src_compile src_install
[-- Attachment #4: kde-functions2.eclass --]
[-- Type: text/plain, Size: 11489 bytes --]
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/kde-functions.eclass,v 1.71 2004/06/25 00:39:48 vapier Exp $
#
# Author Dan Armak <danarmak@gentoo.org>
#
# This contains everything except things that modify ebuild variables
# and functions (e.g. $P, src_compile() etc.)
ECLASS=kde-functions
INHERITED="$INHERITED $ECLASS"
# convinience functions for requesting autotools versions
NEED_CALLED=0
need-automake() {
debug-print-function $FUNCNAME $*
unset WANT_AUTOMAKE_1_4
unset WANT_AUTOMAKE_1_5
unset WANT_AUTOMAKE_1_6
unset WANT_AUTOMAKE
case $1 in
1.4) export WANT_AUTOMAKE_1_4=1;;
1.5) export WANT_AUTOMAKE_1_5=1;;
1.6) export WANT_AUTOMAKE_1_6=1;;
1.7) export WANT_AUTOMAKE='1.7';;
*) echo "!!! $FUNCNAME: Error: unrecognized automake version $1 requested";;
esac
}
need-autoconf() {
debug-print-function $FUNCNAME $*
unset WANT_AUTOCONF_2_1
unset WANT_AUTOCONF_2_5
case $1 in
2.1) export WANT_AUTOCONF_2_1=1;;
2.5) export WANT_AUTOCONF_2_5=1;;
*) echo "!!! $FUNCNAME: Error: unrecognized autoconf version $1 requested";;
esac
}
# ---------------------------------------------------------------
# kde/qt directory management etc. functions, was kde-dirs.ebuild
# ---------------------------------------------------------------
need-kde() {
# set this variable for backwards compatibility
NEED_CALLED=1
debug-print-function $FUNCNAME $*
KDEVER="$1"
# determine install locations
set-kdedir $KDEVER
# ask for autotools
case "$KDEVER" in
3.1.[234]) # Newer 3.1.x versions are built with automake 1.7, and have errors when using 1.6
need-automake 1.7
need-autoconf 2.5
;;
3.1*) # actually, newer 3.0.x stuff uses this too, but i want to make a clean switch
need-automake 1.6
need-autoconf 2.5
;;
3.2*)
need-autoconf 2.5
need-automake 1.7
;;
3*) # a generic call for need-kde 3 - automake 1.4 works most often
need-autoconf 2.5
need-automake 1.4
;;
5*)
need-autoconf 2.5
need-automake 1.7
;;
esac
# Things that need more special handling can just set NEED_KDE_DONT_ADD_KDELIBS_DEP
# and add one of their own manually.
if [ -n "$NEED_KDE_DONT_ADD_KDELIBS_DEP" ]; then
# do nothing
debug-print "$FUNCNAME: NEED_KDE_DONT_ADD_KDELIBS_DEP set, complying with request"
elif [ "${INHERITED//kde-dist}" != "$INHERITED" ]; then
# if we're a kde-base package, we need an exact version of kdelibs
# to compile correctly.
# all kinds of special cases live here.
# goes to show this code is awfully inflexible, i guess.
# maybe i should look at relocating it...
RDEPEND="${RDEPEND} ~kde-base/kdelibs-${KDEVER}"
DEPEND="${DEPEND} ~kde-base/kdelibs-${KDEVER}"
else
# everything else only needs a minimum version
min-kde-ver $KDEVER
RDEPEND="${RDEPEND} >=kde-base/kdelibs-${selected_version}"
DEPEND="${DEPEND} >=kde-base/kdelibs-${selected_version}"
fi
qtver-from-kdever $KDEVER
need-qt $selected_version
if [ -n "$KDEBASE" ]; then
SLOT="$KDEMAJORVER.$KDEMINORVER"
else
SLOT="0"
fi
}
set-kdedir() {
debug-print-function $FUNCNAME $*
# set install location:
# - 3rd party apps go into /usr, and have SLOT="0".
# - kde-base category ebuilds go into /usr/kde/$MAJORVER.$MINORVER,
# and have SLOT="$MAJORVER.$MINORVER".
# - kde-base category cvs ebuilds have major version 5 and go into
# /usr/kde/cvs; they have SLOT="cvs".
# - Backward-compatibility exceptions: all kde2 packages (kde-base or otherwise)
# go into /usr/kde/2. kde 3.0.x goes into /usr/kde/3 (and not 3.0).
# - kde-base category ebuilds always depend on their exact matching version of
# kdelibs and link against it. Other ebuilds link aginst the latest one found.
# - This function exports $PREFIX (location to install to) and $KDEDIR
# (location of kdelibs to link against) for all ebuilds.
#
# -- Overrides - deprecated but working for now: --
# - If $KDEPREFIX is defined (in the profile or env), it overrides everything
# and both base and 3rd party kde stuff goes in there.
# - If $KDELIBSDIR is defined, the kdelibs installed in that location will be
# used, even by kde-base packages.
# get version elements
IFSBACKUP="$IFS"
IFS=".-_"
for x in $1; do
if [ -z "$KDEMAJORVER" ]; then KDEMAJORVER=$x
else if [ -z "$KDEMINORVER" ]; then KDEMINORVER=$x
else if [ -z "$KDEREVISION" ]; then KDEREVISION=$x
fi; fi; fi
done
[ -z "$KDEMINORVER" ] && KDEMINORVER="0"
[ -z "$KDEREVISION" ] && KDEREVISION="0"
IFS="$IFSBACKUP"
debug-print "$FUNCNAME: version breakup: KDEMAJORVER=$KDEMAJORVER KDEMINORVER=$KDEMINORVER KDEREVISION=$KDEREVISION"
# install prefix
if [ -n "$KDEPREFIX" ]; then
export PREFIX="$KDEPREFIX"
elif [ "$KDEMAJORVER" == "2" ]; then
export PREFIX="/usr/kde/2"
else
if [ -z "$KDEBASE" ]; then
export PREFIX="/usr"
else
case $KDEMAJORVER.$KDEMINORVER in
3.0) export PREFIX="/usr/kde/3";;
3.1) export PREFIX="/usr/kde/3.1";;
3.2) export PREFIX="/usr/kde/3.2";;
3.3) export PREFIX="/usr/kde/3.3";;
5.0) export PREFIX="/usr/kde/cvs";;
esac
fi
fi
# kdelibs location
if [ -n "$KDELIBSDIR" ]; then
export KDEDIR="$KDELIBSDIR"
elif [ "$KDEMAJORVER" == "2" ]; then
export KDEDIR="/usr/kde/2"
else
if [ -z "$KDEBASE" ]; then
# find the latest kdelibs installed
for x in /usr/kde/{cvs,3.3,3.2,3.1,3.0,3} $PREFIX $KDE3LIBSDIR $KDELIBSDIR $KDE3DIR $KDEDIR /usr/kde/*; do
if [ -f "${x}/include/kwin.h" ]; then
debug-print found
export KDEDIR="$x"
break
fi
done
else
# kde-base ebuilds msut always use the exact version of kdelibs they came with
case $KDEMAJORVER.$KDEMINORVER in
3.0) export KDEDIR="/usr/kde/3";;
3.1) export KDEDIR="/usr/kde/3.1";;
3.2) export KDEDIR="/usr/kde/3.2";;
3.3) export KDEDIR="/usr/kde/3.3";;
5.0) export KDEDIR="/usr/kde/cvs";;
esac
fi
fi
# check that we've set everything
[ -z "$PREFIX" ] && debug-print "$FUNCNAME: ERROR: could not set install prefix"
[ -z "$KDEDIR" ] && debug-print "$FUNCNAME: ERROR: couldn't set kdelibs location"
debug-print "$FUNCNAME: Will use the kdelibs installed in $KDEDIR, and install into $PREFIX."
}
need-qt() {
NEED_CALLED=1
debug-print-function $FUNCNAME $*
QTVER="$1"
QT=qt
case $QTVER in
2*)
RDEPEND="${RDEPEND} =x11-libs/${QT}-2.3*"
DEPEND="${DEPEND} =x11-libs/${QT}-2.3*"
;;
3*)
RDEPEND="${RDEPEND} >=x11-libs/${QT}-${QTVER}"
DEPEND="${DEPEND} >=x11-libs/${QT}-${QTVER}"
;;
*) echo "!!! error: $FUNCNAME() called with invalid parameter: \"$QTVER\", please report bug" && exit 1;;
esac
set-qtdir $QTVER
}
set-qtdir() {
debug-print-function $FUNCNAME $*
# select 1st element in dot-separated string
IFSBACKUP=$IFS
IFS="."
QTMAJORVER=""
for x in $1; do
[ -z "$QTMAJORVER" ] && QTMAJORVER=$x
done
IFS=$IFSBACKUP
export QTDIR="/usr/qt/$QTMAJORVER"
# i'm putting this here so that the maximum amount of qt/kde apps gets it -- danarmak
# if $QTDIR/etc/settings/qtrc file exists, the qt build tools try to create
# a .qtrc.lock file in that directory. It's easiest to allow them to do so.
[ -d "$QTDIR/etc/settings" ] && addwrite "$QTDIR/etc/settings"
addpredict "$QTDIR/etc/settings"
}
# returns minimal qt version needed for specified kde version
qtver-from-kdever() {
debug-print-function $FUNCNAME $*
local ver
case $1 in
2*) ver=2.3.1;;
3.1*) ver=3.1;;
3.2*) ver=3.2;;
3.3*) ver=3.3;;
3*) ver=3.0.5;;
5) ver=3.2;; # cvs version
*) echo "!!! error: $FUNCNAME called with invalid parameter: \"$1\", please report bug" && exit 1;;
esac
selected_version="$ver"
}
# compat - not used anymore, but old ebuilds that once used this fail if it's not present
# when they are unmerged
need-kdelibs() {
echo "WARNING: need-kdelibs() called, where need-kde() is correct.
If this happens at the unmerging of an old ebuild, disregard; otherwise report."
need-kde $*
}
min-kde-ver() {
debug-print-function $FUNCNAME $*
case $1 in
2*) selected_version="2.2.2";;
3.0*) selected_version="3.0";;
3.1*) selected_version="3.1";;
3.2*) selected_version="3.2";;
3*) selected_version="3.0";;
5) selected_version="5";;
*) echo "!!! error: $FUNCNAME() called with invalid parameter: \"$1\", please report bug" && exit 1;;
esac
}
# This function should fix the broken automake detection in the detect-autoconf file
# This is only in use in arts-1.1.5.
kde_fix_autodetect() {
cd ${S}/admin
patch -p0 <<EOF
--- arts-1.1.3/admin/detect-autoconf.sh 2003-05-07 13:50:14.000000000 +0200
+++ detect-autoconf.sh 2003-07-29 12:21:39.000000000 +0200
@@ -52,7 +52,10 @@
checkAutomakeAclocal ()
{
if test -z "\$UNSERMAKE"; then
- if test -x "\`\$WHICH automake-1.5\`" ; then
+ if test -x "\`\$WHICH automake\`" ; then
+ AUTOMAKE="\`\$WHICH automake\`"
+ ACLOCAL="\`\$WHICH aclocal\`"
+ elif test -x "\`\$WHICH automake-1.5\`" ; then
AUTOMAKE="\`\$WHICH automake-1.5\`"
ACLOCAL="\`\$WHICH aclocal-1.5\`"
elif test -x "\`\$WHICH automake-1.6\`" ; then
EOF
cd -
}
# generic makefile sed for sandbox compatibility. for some reason when the kde makefiles (of many packages
# and versions) try to chown root and chmod 4755 some binaries (after installing, target isntall-exec-local),
# they do it to the files in $(bindir), not $(DESTDIR)/$(bindir). Most of these have been fixed in latest cvs
# but a few remain here and there.
# Pass a list of dirs to sed, Makefile.{am,in} in these dirs will be sed'ed.
# This should be harmless if the makefile doesn't need fixing.
kde_sandbox_patch() {
debug-print-function $FUNCNAME $*
while [ -n "$1" ]; do
# can't use dosed, because it only works for things in ${D}, not ${S}
cd $1
for x in Makefile.am Makefile.in Makefile
do
if [ -f "$x" ]; then
echo Running sed on $x
cp $x ${x}.orig
sed -e 's: $(bindir): $(DESTDIR)/$(bindir):g' -e 's: $(kde_datadir): $(DESTDIR)/$(kde_datadir):g' -e 's: $(TIMID_DIR): $(DESTDIR)/$(TIMID_DIR):g' ${x}.orig > ${x}
rm ${x}.orig
fi
done
shift
done
}
# remove an optimization flag from a specific subdirectory's makefiles.
# currently kdebase and koffice use it to compile certain subdirs without
# -fomit-frame-pointer which breaks some things.
# Parameters:
# $1: subdirectory
# $2: flag to remove
kde_remove_flag() {
debug-print-function $FUNCNAME $*
cd ${S}/${1} || die
[ -n "$2" ] || die
cp Makefile Makefile.orig
sed -e "/CFLAGS/ s/${2}//g
/CXXFLAGS/ s/${2}//g" Makefile.orig > Makefile
cd $OLDPWD
}
# disable a subdir of a module from building.
# used by kdemultimedia et al
# autorun from kde_src_compile:configure if $KDE_REMOVE_DIR is set;
# $KDE_REMOVE_DIR is then passed as parameter
kde_remove_dir(){
debug-print-function $FUNCNAME $*
cd ${S}
while [ -n "$1" ]; do
for dir in $1; do
debug-print "$FUNCNAME: removing subdirectory $dir"
rm -rf $dir
if [ -f subdirs ]; then
mv subdirs subdirs.orig
grep -v $dir subdirs.orig > subdirs
fi
rm -f configure configure.in
export DO_NOT_COMPILE="$DO_NOT_COMPILE $dir"
done
shift
done
}
# is this a kde-base ebuid?
case $PN in kde-i18n|arts|kdeaccessibility|kdeaddons|kdeadmin|kdeartwork|kdebase|kdebindings|kdeedu|kdegames|kdegraphics|kdelibs|kdemultimedia|kdenetwork|kdepim|kdesdk|kdetoys|kdeutils|kdelibs-apidocs)
debug-print "$ECLASS: KDEBASE ebuild recognized"
export KDEBASE="true"
;;
esac
[-- Attachment #5: knemo-0.2.0.ebuild --]
[-- Type: text/plain, Size: 651 bytes --]
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
NEED_KDE=3.2
inherit kde2
DESCRIPTION="KNemo - the KDE Network Monitor"
SRC_URI="http://kde-apps.org/content/files/12956-${P}.tar.bz2"
HOMEPAGE="http://kde-apps.org/content/show.php?content=12956"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86 ~ppc"
IUSE="wifi"
RDEPEND="sys-apps/net-tools
wifi? ( net-wireless/wireless-tools )"
#need-kde 3.2
pkg_postinst() {
einfo ""
einfo "KNemo is not an executable but an KDED service. Therefore it has to"
einfo "be started using Control Center/KDE Components/Service Manager."
einfo ""
}
[-- Attachment #6: Type: text/plain, Size: 37 bytes --]
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [gentoo-dev] problems with need-kde/qt and possible solutions
2004-07-31 0:22 [gentoo-dev] problems with need-kde/qt and possible solutions Carsten Lohrke
@ 2004-08-06 10:52 ` Paul de Vrieze
2004-08-10 23:34 ` Carsten Lohrke
0 siblings, 1 reply; 3+ messages in thread
From: Paul de Vrieze @ 2004-08-06 10:52 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 676 bytes --]
On Saturday 31 July 2004 02:22, Carsten Lohrke wrote:
> I played with the kde.eclass today, to be sure what can/has to be done, to
> remove the problematic need-kde/qt functions from ebuilds. For reasons see
> Bug 25013 (comment 50 ff.) and Bug 58819.
>
What about having different eclasses for the different versions? If those
eclasses inherit a common one, this would probably be the cleanest solution.
To introduce a set_dependencies() function would only have the problem appear
somewhere else. It still would break the cache and/or partial parsing
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [gentoo-dev] problems with need-kde/qt and possible solutions
2004-08-06 10:52 ` Paul de Vrieze
@ 2004-08-10 23:34 ` Carsten Lohrke
0 siblings, 0 replies; 3+ messages in thread
From: Carsten Lohrke @ 2004-08-10 23:34 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Friday 06 August 2004 12:52, Paul de Vrieze wrote:
> What about having different eclasses for the different versions? If those
> eclasses inherit a common one, this would probably be the cleanest
> solution.
Then a simple variable would be better, since we cannot prefix an eclass like
e.g. "inherit <=kde-3.3". Both have in common that you still have more
dependencies than necessary, because the minimum is to inherit kdelibs, but
an application may depend on kdegraphics, which depends on kdelibs alrady.
Multiple eclasses would only be dupes, imho. Best would be, if Portage would
be smart enough to detect the minimum dependency set.
> To introduce a set_dependencies() function would only have the
> problem appear somewhere else. It still would break the cache and/or
> partial parsing
We'll have similar problems, when implementing a proper i18n solution. ~30
SRC_URI's in kde-i18n are not funny, k3b is another (different) sample.
Either we get a function to modify such stuff or Portage has to provide
decent support, but that's post .51 stuff.
Carsten
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFBGVuiVwbzmvGLSW8RAl43AJ9F+jPpYZOHfl6FI3Mb6iAtTtjUvQCdGR4/
GM8+MYja2JosoA1B++LTu20=
=dDJV
-----END PGP SIGNATURE-----
--
gentoo-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-08-10 23:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-31 0:22 [gentoo-dev] problems with need-kde/qt and possible solutions Carsten Lohrke
2004-08-06 10:52 ` Paul de Vrieze
2004-08-10 23:34 ` Carsten Lohrke
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox