kdebase ebuild tries to install kdm in a specific way in src_install() when it was ruled out by DO_NOT_COMPILE. The patch makes sure that DO_NOT_COMPILE is honoured. Reproducible: Always Steps to Reproduce: 1. DO_NOT_COMPILE=kdm emerge kdebase 2. 3. Actual Results: it compiles and installs kdm Expected Results: It should install kdebase without kdm.
Created attachment 34597 [details, diff] do not compile/install kdm if DO_NOT_COMPILE contains "kdm"
That's a lot of code! If only it could be possible to pass arguments for make to kde_src_install, something like kde_src_install GENKDMCONF_FLAGS="--no-old --no-backup" then there would be no need to install kdm separately and all problems could be solved immediately. Well... now that I think of it, one can just avoid using kde_src_install: --- kdebase-3.3.0_alpha1.ebuild.orig 2004-07-02 00:56:50.296380744 +0200 +++ kdebase-3.3.0_alpha1.ebuild 2004-07-02 00:55:30.628492104 +0200 @@ -53,8 +53,8 @@ } src_install() { - kde_src_install - cd ${S}/kdm && make DESTDIR=${D} GENKDMCONF_FLAGS="--no-old --no-backup" install + make DESTDIR=${D} GENKDMCONF_FLAGS="--no-old --no-backup" install + dodoc README* insinto /etc/pam.d newins ${FILESDIR}/kde.pam kde
two problems: 1. if kde_src_install does stuff in the future which requires you to call it, someone will just modify this ebuild and create problems with KDM again. kde_src_install in kde.eclass was written to take care of generic KDE stuff, right? we don't know where that will go. 2. you are still copying stuff like Xsetup, kdmrc few lines below, which might error out because kdm was not installed. You will need to take it out conditionally anyway.
any news on this bug?
Ebuilds depend on other ebuilds and not on ebuilds pruned by specific apps. Supporting this, would mean to let run users in dependency problems, which are hard to track down. DO_NOT_COMPILE is simply incompatible to Portage.
>> DO_NOT_COMPILE is simply incompatible to Portage. how so? everything that DO_NOT_COMPILE enforces is cleanly done by the PORTAGE except for kdm where your EBUILD has enforced it by itself. what dependency problems related to kdm are you talking about? If a user choses to not install kdm, KDE allows it and your ebuild forces it down his throat...wow!!
>how so? Ebuilds depend on that what Portage stores. And this is (in this case) kdebase/kdebase-x.y.z. If we have another ebuild, which needs kdm, then it depends on kdebase/kdebase. Portage cannot block such an ebuild, because there is no information stored, that you compiled kdebase w/o kdm. The ebuild will simply fail.
I don't think such an ebuild (needing kdm) exists, please list components in DO_NOT_COMPILE list which fit this criteria and list corresponding ebuilds. If they exist, then they need to be aware of the fact that bug 55815 made sure that kdm(e.g.) is not always there. So, they need to be aware of DO_NOT_COMPILE as well. it is not a big deal to write a few lines...I will post patches for all such ebuilds.
No, please don't post such patches. This is correctly handled by creating separate ebuilds for kdm etc. We will have such ebuilds for kde 3.4, and you can already get such ebuilds for 3.3 at http://kde-metaebuilds.berlios.de. Bug 11123 is about these split ebuilds - see there.