Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 499744 - `emerge <ebuild>` should work
Summary: `emerge <ebuild>` should work
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Ebuild Support (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-30 07:03 UTC by Tom Wijsman (TomWij) (RETIRED)
Modified: 2014-01-31 20:44 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-01-30 07:03:42 UTC
If dependencies are unsatisfied, it can lead to be impressed that there is a bug with the package; whereas actually the dependencies just weren't emerged. `ebuild ...` should bail out early if dependencies are missing, to avoid problems...

See bug #499742 comment #1 for an example of how I am fooled by this.
Comment 1 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2014-01-30 07:30:11 UTC
I hope that doesn't include "ebuild ... manifest" or else I see my workflow becoming uselessly complicated.

To be honest I see the "ebuild" command as a low level tool for handling ebuilds, so making it check dependencies is out of that program's scope IMHO.
"emerge" already does that perfectly fine and if you want to make sure a package's dependencies are satisfied, use "emerge -1ov $pkg".

In the end if this gets implemented I hope it will be optional so people who prefer current behavior of "ebuild" still can use it that way.
Comment 2 Brian Dolbec (RETIRED) gentoo-dev 2014-01-30 14:51:16 UTC
I agree with Poly-C.  The ebuild command was never meant to be a package manager but just a low level ebuild handler.  Running ebuild manually to install is only meant for debugging purposes so that a dev can run thru the stages manually.  They can then work in the code, find out what is going wrong, create patches,...

Running ebuild manually has always been "User BEWARE".
Comment 3 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-01-30 18:40:18 UTC
But can we improve the development workflow here? (`emerge ...` is tedious)

Is there an actual reason to not ensure proper dependencies?
Comment 4 Alec Warner (RETIRED) archtester gentoo-dev Security 2014-01-30 20:51:53 UTC
Hi Tom,

Can you describe the workflow, including its deficiencies? Improving the workflow is perhaps orthogonal to adding dependency resolution to the 'ebuild' tool; perhaps we can focus this bug around what we want to improve, and less on how exactly we might accomplish it.

-A
Comment 5 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-01-30 22:24:10 UTC
`emerge -1 FULLATOMANDVERSION` is more tedious to type than `ebuild TABCOMPLETE`; on top of that, you need to unmask and/or accept keywords in the former case. Whereas the latter just proceeds.

Hence, it would be nice that the latter would do dependency checking (not dependency resolution, which is different and rather costly) such that one cannot run `ebuild TABCOMPLETE` without the dependencies being present.

Why list dependencies in an ebuild and not check them?

Is there a reason against implementing? I haven't heard any such reason yet...
Comment 6 SpanKY gentoo-dev 2014-01-31 04:36:17 UTC
`ebuild` is a direct tool.  it should not be doing dependency checks as the normal course of things.  it's way too slow for it and most of the time, it's not even wanted/needed.  it's like saying "why does `rm /lib/libc.so.6` let me delete the library even though /bin/bash needs it".

in the past, we had support for `emerge <ebuild>`.  i used to use it a lot.  has that rotted since ?  if not, use that.  if it has, let's fix that.
Comment 7 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-01-31 20:44:57 UTC
(In reply to SpanKY from comment #6)
> `ebuild` is a direct tool.  it should not be doing dependency checks as the
> normal course of things.  it's way too slow for it and most of the time,
> it's not even wanted/needed.  it's like saying "why does `rm /lib/libc.so.6`
> let me delete the library even though /bin/bash needs it".

We came down to this in #gentoo-portage, I agree; I just want to have a workflow that works properly again. But a workflow that doesn't induce too much waiting time if possible, as that's why I moved to ebuild as my main ebuild testing tool.

I will look into switching to emerge, given that we can make it work again.

> in the past, we had support for `emerge <ebuild>`.  i used to use it a lot. 
> has that rotted since ?  if not, use that.  if it has, let's fix that.

+1 It gives odd errors but seems to work in the Portage tree, but doesn't seem to work outside of that, it also breaks when you pass a path I think; it thus handles less than ebuild handles.

Regardless of that, to spare out time that the command takes, I would appreciate a way to only check the immediate dependencies instead of resolving the dependency tree; is this already possible using current parameters?

Given it has broken, and thus is a regression; this is more than an enhancement.