View previous topic :: View next topic |
Could portage output be more descriptive? |
Yes - Should be more detailed |
|
37% |
[ 6 ] |
No - Fine the way it is |
|
62% |
[ 10 ] |
|
Total Votes : 16 |
|
Author |
Message |
The_Document Apprentice
Joined: 03 Feb 2018 Posts: 275
|
Posted: Sun Mar 11, 2018 2:00 pm Post subject: Is portage too symbolic in displaying errors? |
|
|
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 |
|
|
blopsalot Apprentice
Joined: 28 Jan 2017 Posts: 231
|
Posted: Sun Mar 11, 2018 2:14 pm Post subject: |
|
|
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 |
|
|
The_Document Apprentice
Joined: 03 Feb 2018 Posts: 275
|
Posted: Sun Mar 11, 2018 3:56 pm Post subject: |
|
|
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 |
|
|
Mr. T. Guru
Joined: 26 Dec 2016 Posts: 477
|
Posted: Sun Mar 11, 2018 4:28 pm Post subject: |
|
|
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 |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22771
|
Posted: Sun Mar 11, 2018 4:47 pm Post subject: |
|
|
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 |
|
|
Ant P. Watchman
Joined: 18 Apr 2009 Posts: 6920
|
Posted: Sun Mar 11, 2018 7:16 pm Post subject: |
|
|
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 |
|
|
The_Document Apprentice
Joined: 03 Feb 2018 Posts: 275
|
Posted: Sun Mar 11, 2018 11:06 pm Post subject: |
|
|
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 |
|
|
Naib Watchman
Joined: 21 May 2004 Posts: 6070 Location: Removed by Neddy
|
Posted: Mon Mar 12, 2018 9:36 am Post subject: |
|
|
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 |
|
|
luiztux n00b
Joined: 31 Aug 2015 Posts: 27 Location: /usr/portage/distfiles
|
Posted: Mon Mar 12, 2018 5:20 pm Post subject: |
|
|
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 |
|
|
pun_guin Apprentice
Joined: 06 Feb 2018 Posts: 204
|
Posted: Mon Mar 19, 2018 2:08 pm Post subject: |
|
|
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 |
|
|
krinn Watchman
Joined: 02 May 2003 Posts: 7470
|
Posted: Mon Mar 19, 2018 2:21 pm Post subject: |
|
|
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 |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22771
|
Posted: Tue Mar 20, 2018 2:05 am Post subject: |
|
|
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 |
|
|
ct85711 Veteran
Joined: 27 Sep 2005 Posts: 1791
|
Posted: Tue Mar 20, 2018 4:35 am Post subject: |
|
|
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 |
|
|
Ant P. Watchman
Joined: 18 Apr 2009 Posts: 6920
|
Posted: Tue Mar 20, 2018 5:38 am Post subject: |
|
|
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 |
|
|
Mr. T. Guru
Joined: 26 Dec 2016 Posts: 477
|
Posted: Tue Mar 20, 2018 12:42 pm Post subject: |
|
|
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 |
|
|
i4dnf Apprentice
Joined: 18 Sep 2005 Posts: 271 Location: Bucharest, Romania
|
Posted: Tue Mar 20, 2018 2:35 pm Post subject: |
|
|
and what is the problem with understanding the output above?
btw:
really helps _________________ "The only difference between me and a madman is that I am not MAD" (SALVATOR DALI) |
|
Back to top |
|
|
Mr. T. Guru
Joined: 26 Dec 2016 Posts: 477
|
Posted: Tue Mar 20, 2018 3:08 pm Post subject: |
|
|
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 |
|
|
asturm Developer
Joined: 05 Apr 2007 Posts: 9317
|
Posted: Tue Mar 20, 2018 3:16 pm Post subject: |
|
|
also helps. |
|
Back to top |
|
|
i4dnf Apprentice
Joined: 18 Sep 2005 Posts: 271 Location: Bucharest, Romania
|
Posted: Tue Mar 20, 2018 3:45 pm Post subject: |
|
|
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:
to understand it and (as asturm pointed out)
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 |
|
|
Mr. T. Guru
Joined: 26 Dec 2016 Posts: 477
|
Posted: Tue Mar 20, 2018 4:03 pm Post subject: |
|
|
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 |
|
|
i4dnf Apprentice
Joined: 18 Sep 2005 Posts: 271 Location: Bucharest, Romania
|
Posted: Tue Mar 20, 2018 4:23 pm Post subject: |
|
|
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 |
|
|
Mr. T. Guru
Joined: 26 Dec 2016 Posts: 477
|
Posted: Tue Mar 20, 2018 5:43 pm Post subject: |
|
|
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 |
|
|
krinn Watchman
Joined: 02 May 2003 Posts: 7470
|
Posted: Tue Mar 20, 2018 5:53 pm Post subject: |
|
|
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 |
|
|
Mr. T. Guru
Joined: 26 Dec 2016 Posts: 477
|
Posted: Tue Mar 20, 2018 6:12 pm Post subject: |
|
|
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 |
|
|
krinn Watchman
Joined: 02 May 2003 Posts: 7470
|
Posted: Tue Mar 20, 2018 6:20 pm Post subject: |
|
|
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 |
|
|
|