Re: [gentoo-portage-dev] New emerge --mindeps option for exclusion of build time dependencies (bug #132355)

2006-07-12 Thread Drake Wyrm
Zac Medico [EMAIL PROTECTED] wrote:
 The attached patch for bug #132355 [1] adds a --mindeps option for
 emerge that effectively allows build time dependencies to be excluded
 from dependency calculations involving binary and installed packages.
 With this patch, it's possible to remove all build time dependencies
 from a system with the command `emerge --depclean --mindeps`.  When
 --mindeps is used to install packages, it causes build time
 dependencies to be excluded for binary packages and packages that are
 already installed.

Consider this a suggestion disguised as a question: why not make that
the overall default instead of enabled with a command-line switch? It
makes sense. Don't install the packages that aren't needed. Simple.

-- 
I used to think romantic love was a neurosis shared by two, a supreme
foolishness. I no longer thought that. There's nothing foolish in
loving anyone. Thinking you'll be loved in return is what's foolish.
  -- Rita Mae Brown


pgpBrWUoe71FW.pgp
Description: PGP signature


Re: [gentoo-portage-dev] New emerge --mindeps option for exclusion of build time dependencies (bug #132355)

2006-07-12 Thread Ned Ludd
On Tue, 2006-07-11 at 22:32 -0700, Zac Medico wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Hi everyone,
 
 The attached patch for bug #132355 [1] adds a --mindeps option for emerge 
 that effectively allows build time dependencies to be excluded from 
 dependency calculations involving binary and installed packages.  With this 
 patch, it's possible to remove all build time dependencies from a system with 
 the command `emerge --depclean --mindeps`.  When --mindeps is used to install 
 packages, it causes build time dependencies to be excluded for binary 
 packages and packages that are already installed.  This patch will change the 
 previous default behavior for `emerge --usepkg package list`, but if 
 desired, the user will be able use --mindeps together with --usepkg.  

 Are there any suggestions to improve on this idea or is it fine the way that 
 it is?

Please invert the logic so that rather than changing default behavior 
you add a new option choose the types of deps to include.

I was in favor and thought we were going to do it after 2.1 and the 2006
release under the idea of the variable ACCEPT_DEPENDS

export ACCEPT_DEPENDS=DEPEND RDEPEND PDEPEND 
emerge -K system

Whatever we do in the end does not really matter as long 
as we don't change default expected behaviors.



 
 Zac
 
 [1] http://bugs.gentoo.org/show_bug.cgi?id=132355
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.4 (GNU/Linux)
 
 iD8DBQFEtIlf/ejvha5XGaMRAo26AKCovCALx/VDIft6e+0lh+FI7IQsoQCg8o6M
 UW+dnXPwMe/tIje1A4RYqRs=
 =9uIv
 -END PGP SIGNATURE-
-- 
Ned Ludd [EMAIL PROTECTED]
Gentoo Linux

-- 
gentoo-portage-dev@gentoo.org mailing list



Re: [gentoo-portage-dev] New emerge --mindeps option for exclusion of build time dependencies (bug #132355)

2006-07-12 Thread Zac Medico
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Ned Ludd wrote:
 Please invert the logic so that rather than changing default behavior 
 you add a new option choose the types of deps to include.

Can you explain how my proposed change in the default behavior of --usepkg is 
going to hurt things?  The current default behavior is inconsistent because 
build time dependencies are considered for packages that are installed but not 
for binary packages that are about to be installed.  By doing away with this 
one special case for binary packages, the dependency calculation will be 
consistent for installed vs. binary packages.

 I was in favor and thought we were going to do it after 2.1 and the 2006
 release under the idea of the variable ACCEPT_DEPENDS
 
 export ACCEPT_DEPENDS=DEPEND RDEPEND PDEPEND 
 emerge -K system

While I admire the flexibility of your ACCEPT_DEPENDS proposal, I feel that it 
exposes far too much complexity to the user.  Eventually, the functionality of 
emerge will be available as part of the portage api and people will probably be 
able to exploit it to do all kinds of crazy things like that.  I just don't 
feel that it's appropriate to expose something like that through the emerge 
interface.  Can you explain why we should expose that much complexity through 
the emerge interface?

 Whatever we do in the end does not really matter as long 
 as we don't change default expected behaviors.

Again, can you explain how my proposed change is going to hurt things?

Zac

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.4 (GNU/Linux)

iD8DBQFEtRPH/ejvha5XGaMRAkICAKCutrtehYGHyHN+UQUDjTRvUWxDqwCff4Fv
6Z2UUrFPD4UP9aCD2QHi2XM=
=tRS4
-END PGP SIGNATURE-
-- 
gentoo-portage-dev@gentoo.org mailing list



Re: [gentoo-portage-dev] New emerge --mindeps option for exclusion of build time dependencies (bug #132355)

2006-07-12 Thread Zac Medico
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Ned Ludd wrote:
 On Wed, 2006-07-12 at 08:22 -0700, Zac Medico wrote:
  Ned Ludd wrote:
   Please invert the logic so that rather than changing default behavior
   you add a new option choose the types of deps to include.
 
  Can you explain how my proposed change in the default behavior of
  --usepkg is going to hurt things? The current default behavior is
  inconsistent because build time dependencies are considered for
  packages that are installed but not for binary packages that are about
  to be installed.

 And nor should they be unless the user explicitly asks for it.
 There basically should be no valid reason to look at build
 deps as we are dealing with a binary pkg because the package
 is already built.

Updates are most often performed from source, are they not?  If the build deps 
are already merged then they'll be ready and waiting for the next source based 
update or rebuild.

   export ACCEPT_DEPENDS=DEPEND RDEPEND PDEPEND
   emerge -K system
 
  While I admire the flexibility of your ACCEPT_DEPENDS proposal, I feel
  that it exposes far too much complexity to the user.

 Really? To me it would seem very natural to the Gentoo user who is
 already familiar with ACCEPT_KEYWORDS.

For the type of functionality that we're after, a simple boolean option should 
suffice. ACCEPT_DEPENDS exposes implementation details that go far beyond the 
required information. For example, RDEPEND and PDEPEND can actually be 
collapsed together, so DEPEND and RDEPEND are the only real choices that are 
currently available.

 To me it seems like the wrong fix for the problem at hand and
 changes portage's default behavior in an undesired way.
 Don't get me wrong I'm definitely in favor of finer grained control
 over all the dep handling in general, but don't think this option
 should become the default. I'd invert your logic like in Kumba's
 proposed patch did and run with that.

What about this functionality as it applies to packages that are already 
installed?  If we invert the logic in that case, build deps will no longer be 
considered by default when the user runs `emerge -uD world` or `emerge 
--depclean`.  That's an even larger change in behavior and, like I said in my 
reply to Drake, I'm afraid that it would cause lots of complaints and/or bugs 
filed. My proposed change will provide consistency in all cases with a change 
in the default --usepkg behavior that I feel will be acceptable to the vast 
majority of portage users.

Zac
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.4 (GNU/Linux)

iD8DBQFEtTz//ejvha5XGaMRAk+uAJ9PwwvS9tOupY8K8g661FHF92vinQCgw9t/
GUsyhoTbR0GDpzxOsVFTfgE=
=D6MW
-END PGP SIGNATURE-
-- 
gentoo-portage-dev@gentoo.org mailing list



[gentoo-portage-dev] New emerge --mindeps option for exclusion of build time dependencies (bug #132355)

2006-07-11 Thread Zac Medico
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi everyone,

The attached patch for bug #132355 [1] adds a --mindeps option for emerge that 
effectively allows build time dependencies to be excluded from dependency 
calculations involving binary and installed packages.  With this patch, it's 
possible to remove all build time dependencies from a system with the command 
`emerge --depclean --mindeps`.  When --mindeps is used to install packages, it 
causes build time dependencies to be excluded for binary packages and packages 
that are already installed.  This patch will change the previous default 
behavior for `emerge --usepkg package list`, but if desired, the user will be 
able use --mindeps together with --usepkg.  Are there any suggestions to 
improve on this idea or is it fine the way that it is?

Zac

[1] http://bugs.gentoo.org/show_bug.cgi?id=132355
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.4 (GNU/Linux)

iD8DBQFEtIlf/ejvha5XGaMRAo26AKCovCALx/VDIft6e+0lh+FI7IQsoQCg8o6M
UW+dnXPwMe/tIje1A4RYqRs=
=9uIv
-END PGP SIGNATURE-
Index: bin/emerge
===
--- bin/emerge	(revision 3836)
+++ bin/emerge	(working copy)
@@ -190,7 +190,7 @@
 --fetchonly,--fetch-all-uri,
 --getbinpkg,--getbinpkgonly,
 --help, --ignore-default-opts,
---noconfmem,
+--mindeps,  --noconfmem,
 --newuse,   --nocolor,
 --nodeps,   --noreplace,
 --nospinner,--oneshot,
@@ -352,6 +352,7 @@
 	# recurse:   go into the dependencies
 	# deep:  go into the dependencies of already merged packages
 	# empty: pretend nothing is merged
+	# minimal:   exclude dependencies that aren't strictly required.
 	myparams=[self,recurse]
 	add=[]
 	sub=[]
@@ -366,6 +367,8 @@
 		add.extend([selective])
 	if --deep in myopts:
 		add.extend([deep])
+	if --mindeps in myopts:
+		add.append(minimal)
 	if --selective in myopts:
 		add.extend([selective])
 	if myaction in [world,system]:
@@ -755,8 +758,14 @@
 			edepend[depkeys[i]] = depvalues[i]
 
 		if mytype == binary:
-			edepend[DEPEND] = 
+			if minimal in self.myparams:
+edepend[DEPEND] = 
 		elif mytype == ebuild:
+			# minimal + empty implies depclean
+			if minimal in self.myparams and \
+(empty in self.myparams or \
+mybigkey[-1] == nomerge):
+edepend[DEPEND] = 
 			if --buildpkgonly in self.myopts:
 edepend[RDEPEND] = 
 edepend[PDEPEND] =