Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Is portage too symbolic in displaying errors?
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  

Could portage output be more descriptive?
Yes - Should be more detailed
37%
 37%  [ 6 ]
No - Fine the way it is
62%
 62%  [ 10 ]
Total Votes : 16

Author Message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Sun Mar 11, 2018 2:00 pm    Post subject: Is portage too symbolic in displaying errors? Reply with quote

Here is my bug with description:

https://bugs.gentoo.org/650210

there is NO online documentation detailing its symbolism anywhere and it has plenty of different error types.
Back to top
View user's profile Send private message
blopsalot
Apprentice
Apprentice


Joined: 28 Jan 2017
Posts: 231

PostPosted: Sun Mar 11, 2018 2:14 pm    Post subject: Reply with quote

it says you changed multilib settings on a running system for some reason. it is not a bug, nor is it difficult to understand. it is stopping you before you breaks things.
Back to top
View user's profile Send private message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Sun Mar 11, 2018 3:56 pm    Post subject: Reply with quote

blopsalot wrote:
it says you changed multilib settings on a running system for some reason. it is not a bug, nor is it difficult to understand. it is stopping you before you breaks things.


No kidding would be nice to have it in plain English instead of symbolic statements.
Back to top
View user's profile Send private message
Mr. T.
Guru
Guru


Joined: 26 Dec 2016
Posts: 477

PostPosted: Sun Mar 11, 2018 4:28 pm    Post subject: Reply with quote

I have no opinion regarding the display of "emerge". I have looked at the documentation therefore I know that the documentation is not suitable.

Wiki

Knowledge Base
Portage: Portage category, emerge
Handbook: Portage complaints, USE conditions
Troubleshooting

Man pages

emerge
ebuild.1
ebuild.5

HTML pages

/usr/share/doc/portage-<version>/html/
devmanual.gentoo.org

The developers are surely busy. Same for advanced users.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22812

PostPosted: Sun Mar 11, 2018 4:47 pm    Post subject: Reply with quote

I think any prose elaboration should be in Latin, not English. As a living language, putting it in English could be exclusive of users who prefer other languages. As a dead language, Latin is equally inaccessible to all.

As for the specific error message, my only complaint with it is the first line:
Code:
(net-libs/gnutls-3.5.15:0/30::gentoo, ebuild scheduled for merge) conflicts with
In my opinion, the package should show also its enabled USE flags in that statement, in addition to the version, slot, subslot, and repository already shown. For example, if ABI_X86=64 for that package, it ought to say:
Code:
(net-libs/gnutls-3.5.15:0/30::gentoo[abi_x86_64], ebuild scheduled for merge) conflicts with
This would clarify that it has enabled 64 and disabled 32, which would immediately stand out against the following lines that say 32 must be enabled.

I have no opinion whether the displayed USE flags should be:
  • all defined flags (with disabled and enabled annotated)
  • all enabled flags
  • relevant defined flags (with annotations)
  • relevant enabled flags
"Defined" means any flag to which the package responds. In the latter two cases, a flag is "relevant" if the following lines will describe a constraint on it. For the example in the bug report, ABI_X86 flags are relevant, but USE=cxx is not relevant, because while net-libs/gnutls responds to that flag, flipping it has no impact on the dependency conflict.
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Sun Mar 11, 2018 7:16 pm    Post subject: Reply with quote

Portage is not symbolic enough. I want it to give me the raw line-number-annotated source when there's an unsatisfied REQUIRED_USE, not some pseudo-english translation with all the dumb python flags expanded and filling 10 lines.
Back to top
View user's profile Send private message
The_Document
Apprentice
Apprentice


Joined: 03 Feb 2018
Posts: 275

PostPosted: Sun Mar 11, 2018 11:06 pm    Post subject: Reply with quote

Ant P. wrote:
Portage is not symbolic enough. I want it to give me the raw line-number-annotated source when there's an unsatisfied REQUIRED_USE, not some pseudo-english translation with all the dumb python flags expanded and filling 10 lines.


I understand you rather have more symbolisms however I don't see any reason why extreme and minimal symbolism isn't possible to have simultaneously with the help of simple command line arguments.
Back to top
View user's profile Send private message
Naib
Watchman
Watchman


Joined: 21 May 2004
Posts: 6069
Location: Removed by Neddy

PostPosted: Mon Mar 12, 2018 9:36 am    Post subject: Reply with quote

The_Document wrote:
Ant P. wrote:
Portage is not symbolic enough. I want it to give me the raw line-number-annotated source when there's an unsatisfied REQUIRED_USE, not some pseudo-english translation with all the dumb python flags expanded and filling 10 lines.


I understand you rather have more symbolisms however I don't see any reason why extreme and minimal symbolism isn't possible to have simultaneously with the help of simple command line arguments.
What do you propose? Don't get me wrong, when portage spews stuff like this I need to scratch my head and it is the primary reason I deal with them immediatly even if I can build because 1 become 2 becomes 100 and inability to resolve ... DAMN I hate ruby.

The problem is how to improve. Portage abstracts alot to USE variables so it doesn't need to know whether it is an abi thing or a dependancy thing
_________________
#define HelloWorld int
#define Int main()
#define Return printf
#define Print return
#include <stdio>
HelloWorld Int {
Return("Hello, world!\n");
Print 0;
Back to top
View user's profile Send private message
luiztux
n00b
n00b


Joined: 31 Aug 2015
Posts: 27
Location: /usr/portage/distfiles

PostPosted: Mon Mar 12, 2018 5:20 pm    Post subject: Reply with quote

blopsalot wrote:
it says you changed multilib settings on a running system for some reason. it is not a bug, nor is it difficult to understand. it is stopping you before you breaks things.


+1
Back to top
View user's profile Send private message
pun_guin
Apprentice
Apprentice


Joined: 06 Feb 2018
Posts: 204

PostPosted: Mon Mar 19, 2018 2:08 pm    Post subject: Reply with quote

I find Portage to be too verbose: When it cannot build something because I made a mistake in my ebuild, I have to scroll twice to read the complete error message to find that one line that is relevant for me to fix the mistake...

Javaism, I'd say.
_________________
I already use the new Genthree.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Mon Mar 19, 2018 2:21 pm    Post subject: Reply with quote

Hu wrote:
As for the specific error message, my only complaint with it is the first line:
Code:
(net-libs/gnutls-3.5.15:0/30::gentoo, ebuild scheduled for merge) conflicts with
In my opinion, the package should show also its enabled USE flags in that statement, in addition to the version, slot, subslot, and repository already shown.

I agree, it only tell you what stop it from doing it, not what was asked.
It would be better to get "someone has asked <that> +this -other" than the current "someone has asked <that> and i won't do it because <stuff> need +this +other"...
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22812

PostPosted: Tue Mar 20, 2018 2:05 am    Post subject: Reply with quote

pun_guin wrote:
I find Portage to be too verbose: When it cannot build something because I made a mistake in my ebuild, I have to scroll twice to read the complete error message to find that one line that is relevant for me to fix the mistake...
It is verbose, but long experience debugging problems, particularly other people's problems, leads me to believe that it is better to err on the side of being slightly too verbose. I wouldn't want to use the results of emerge --debug to chase down a USE flag dependency, but the existing output is close to the right level of verbosity for that task.
Back to top
View user's profile Send private message
ct85711
Veteran
Veteran


Joined: 27 Sep 2005
Posts: 1791

PostPosted: Tue Mar 20, 2018 4:35 am    Post subject: Reply with quote

While I agree with Hu, in that I prefer emerge to be verbose; I will also say it could be more clearer on what it is saying. I know for me, I always hate on trying to figure out what portage is complaining about with it includes every possible abi_x86 stuff in a package, when half the time it's only complaining about a regular use flag. The other big area that I see is more of dealing around the slot and especially subslot conflicts. A good time portage complains about a subslot conflict/change. That problem I see could be better dealt differently than changing that message. From what I've been seeing, is that a good portion subslotting issues is more of a chance that it needs to be rebuilt with some other stuff.

From what I see, the subslot issue, could very well be taken care of as it is; and it's only a little bit more work. As it is, portage already gets a list of all the packages complaining, but I don't see it trying by adding that entire list into the rebuild chain to see if it will clear or not (that ends up being how I tend to clear them, so obviously it should fix a good portion of that area).
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Tue Mar 20, 2018 5:38 am    Post subject: Reply with quote

krinn wrote:
Hu wrote:
As for the specific error message, my only complaint with it is the first line:
Code:
(net-libs/gnutls-3.5.15:0/30::gentoo, ebuild scheduled for merge) conflicts with
In my opinion, the package should show also its enabled USE flags in that statement, in addition to the version, slot, subslot, and repository already shown.

I agree, it only tell you what stop it from doing it, not what was asked.
It would be better to get "someone has asked <that> +this -other" than the current "someone has asked <that> and i won't do it because <stuff> need +this +other"...

That error is awful for another reason: it uses colours to convey information (state of the package installed or not).
Back to top
View user's profile Send private message
Mr. T.
Guru
Guru


Joined: 26 Dec 2016
Posts: 477

PostPosted: Tue Mar 20, 2018 12:42 pm    Post subject: Reply with quote

Emerge's display can be puzzling.

Quote:
[ebuild______U_ ] sys-apps/portage-2.3.24-r1 [2.3.19-r1] USE="doc (ipc) native-extensions xattr -build -epydoc -gentoo-dev% (-rsync-verify) (-selinux)" PYTHON_TARGETS="python2_7
python3_5 python3_6
(-pypy) -python3_4"


Package Manager Specification wrote:
5.2.11 USE masking and forcing

This section covers the eight files use.mask, use.force, use.stable.mask, use.stable.force,
package.use.mask, package.use.force, package.use.stable.mask, and package.use.stable.force.
They are described together because they interact in a non-trivial manner.


Ugh!
Back to top
View user's profile Send private message
i4dnf
Apprentice
Apprentice


Joined: 18 Sep 2005
Posts: 271
Location: Bucharest, Romania

PostPosted: Tue Mar 20, 2018 2:35 pm    Post subject: Reply with quote

and what is the problem with understanding the output above?

btw:
Code:
man emerge

really helps
_________________
"The only difference between me and a madman is that I am not MAD" (SALVATOR DALI)
Back to top
View user's profile Send private message
Mr. T.
Guru
Guru


Joined: 26 Dec 2016
Posts: 477

PostPosted: Tue Mar 20, 2018 3:08 pm    Post subject: Reply with quote

A user must read the specification to enable/disable some USE flags. The manual pages explain nothing about "forced, masked or removed" flags so
the user must look for information and decrypt it.

man emerge wrote:
--verbose
() circumfix forced, masked, or removed


helecho
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 9319

PostPosted: Tue Mar 20, 2018 3:16 pm    Post subject: Reply with quote

Code:
man portage

also helps.
Back to top
View user's profile Send private message
i4dnf
Apprentice
Apprentice


Joined: 18 Sep 2005
Posts: 271
Location: Bucharest, Romania

PostPosted: Tue Mar 20, 2018 3:45 pm    Post subject: Reply with quote

Understanding the output and changing the state of the flags are two different things. (Granted you can't have the later without the former).
Regardless of the semantics, no, you don't have to read the PMS, you just have to read the relevant man pages:
Code:
man emerge

to understand it and (as asturm pointed out)
Code:
man portage

to understand how to change the state of the flags.

P.S. FTR, I have no clue where the PMS is or what it says, nor did I need to reach for it in 12+ years of gentoo, as I'm not writing a PMS compatible PM.
_________________
"The only difference between me and a madman is that I am not MAD" (SALVATOR DALI)
Back to top
View user's profile Send private message
Mr. T.
Guru
Guru


Joined: 26 Dec 2016
Posts: 477

PostPosted: Tue Mar 20, 2018 4:03 pm    Post subject: Reply with quote

The documentation is disorganized or improperly structured.

man portage wrote:
DESCRIPTION

The current portage code uses many different configuration files, most of which are unknown to users and normal developers. Here we will try to collect all the odds and ends so as to help users more effectively utilize portage. This is a reference only for files which do not already have a man page.

[...]

Note: If you are looking for information on how to emerge something, please see emerge(1).


helecho
Back to top
View user's profile Send private message
i4dnf
Apprentice
Apprentice


Joined: 18 Sep 2005
Posts: 271
Location: Bucharest, Romania

PostPosted: Tue Mar 20, 2018 4:23 pm    Post subject: Reply with quote

That means that users and normal developers (a.k.a most of the ebuild developers, as opposed to portage developers) do not know or come into contact with some of the said configuration files, not that they're undocumented/esoteric/or_other_such_thing. It's written in the voice of a portage developer
_________________
"The only difference between me and a madman is that I am not MAD" (SALVATOR DALI)
Back to top
View user's profile Send private message
Mr. T.
Guru
Guru


Joined: 26 Dec 2016
Posts: 477

PostPosted: Tue Mar 20, 2018 5:43 pm    Post subject: Reply with quote

Most of the confirmed users had to exploit the existing documentation so I will arrive too. Nevertheless, this has side effects.

man portage wrote:
Wildcard Patterns

Atoms containing wildcard patterns are of the form category/package, where the special '*' wildcard character
substitutes for an arbitrary number of normal characters. More than one '*' character is allowed, but not two
next to each other.

Examples:

# match anything with a version containing 9999, which can be used in
# package.mask to prevent emerge --autounmask from selecting live ebuilds
=*/*-*9999*
# match anything with a version containing _beta
=*/*-*_beta*
# match anything from the 'sys-apps' category
sys-apps/*
# match packages named 'zlib' from any category
*/zlib
# match any package from a category that begins with 'net-'
net-*/*
# match any package name from any category
*/*
# match any package from the 'gentoo' repository
*/*::gentoo


man pkgcore wrote:
ATOM SYNTAX
In addition to the atom specification enhancements defined in various supported EAPIs, pkgcore provides several syntax extensions
mostly relating to globbing- examples are provided below.

This form can be used in configuration files, but in doing so portage will have issues with the syntax. To maintain configuration
compatibility, limit extended syntax usage to the commandline only.


* ________________________ match anything
portage ________________________ package name must be portage
dev-util/* ________________________ category must be dev-util, any package
dev-*/* ________________________ category must start with dev-, any package name
dev-* ________________________ package must start with dev-, any category
*cgi* ________________________ package name must have cgi in it
*x11*/X* ________________________ category must have x11 in it, package must start with X
*-apps/portage* ________________________ category must end in -apps, package must start with portage
dev-vcs/*bzr*tools* ________________________ category must be dev-vcs, and the globbing there is like shell globbing (bzr and tools must be in the package name, and bzr must pro‐ceed tools)
=portage-1.0 ________________________ match version 1.0 of any ‘portage’ package


I stop criticizing otherwise I would not be welcome!!
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Tue Mar 20, 2018 5:53 pm    Post subject: Reply with quote

You are harder to follow than any documentation helecho :)
What's the deal there? pkgcore tells you it extend the syntax and also warn you: don't use that extend syntax in configuration files if you want still ability to also use portage, because portage will not understand that ; so keep extend syntax to command line (and of course command line of pkgcore, not portage).
Or use extend syntax in configuration, but use only pkgcore then.
Back to top
View user's profile Send private message
Mr. T.
Guru
Guru


Joined: 26 Dec 2016
Posts: 477

PostPosted: Tue Mar 20, 2018 6:12 pm    Post subject: Reply with quote

Yeah, I should have added some precisions!

The developers of Pkgcore (a package manager) are former Portage developers. The documentation of Pkgcore seems up to date: Copyright (C) 2017.
It seems that both package managers have similar features concerning atom specification. However, it seems that the developers of Pkgcore believe that
Portage does not have the features of Pkgcore, features mentioned previously. The side effect is that they believe that Pkgcore must maintain compatibility with
Portage configuration files.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Tue Mar 20, 2018 6:20 pm    Post subject: Reply with quote

helecho wrote:
The side effect is that they believe that Pkgcore must maintain compatibility with Portage configuration files.

They didn't say that at all, and actually just said the contrary.
Quote:
This form can be used in configuration files,

And this just say it, you can use it in configuration files, which "should" break compatibility with portage, so it up to you to decide if you want do it or not ; they just tell you the obvious: if you do, portage shouldn't be able any more to work with them if portage cannot understand their content.

If they would care to remain compatible with portage, they would had allow extend syntax in command line while pkgcore would refuse extend syntax coming from a configuration file, but pkgcore is happy to get it from configuration files...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum