View previous topic :: View next topic |
Author |
Message |
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Mon Aug 19, 2024 10:53 am Post subject: What's an 'inspector'? |
|
|
Hi folks
'emerge @world' has punched me in the face again. It wants to update nodejs, but it won't use the binary, for this reason:
Code: |
!!! The following binary packages have been ignored due to non matching USE:
=net-libs/nodejs-22.4.1-r1 -inspector
|
What's an 'inspector'? I neither set nor unset this USE flag, so far as I know.
My computer has been running at 100% CPU now for more than three hours, just on nodejs. I'm happy to use the binary version if one is available but, presumably, one is not.
Why is that? Is there something about my hardware that means that this has to be compiled?
BR, Lars. |
|
Back to top |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22649
|
Posted: Mon Aug 19, 2024 12:04 pm Post subject: |
|
|
equery use nodejs tells me: Code: | - - inspector : Enable V8 inspector | Your local setting for the flag must disagree with the flag setting from the binhost. Maybe the binhost enabled a non-default flag to make something else work. Maybe the flag is enabled because the binhost maintainer thought this is something most people would want.
If you want to use the binary, you need to use the same USE flags as the package from the binhost. If you are in a hurry, Portage's advice printed alongside this message may be helpful: Code: | writemsg(
"\n!!! The following binary packages have been ignored "
+ "due to non matching USE:\n\n",
noiselevel=-1,
)
for line in messages:
writemsg(line, noiselevel=-1)
msg = [
"",
"NOTE: The --binpkg-respect-use=n option will prevent emerge",
" from ignoring these binary packages if possible.",
" Using --binpkg-respect-use=y will silence this warning.",
] |
|
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2419
|
Posted: Mon Aug 19, 2024 12:22 pm Post subject: |
|
|
I think it is that same functionality that you get when you select Inspect on something in a web page in Chrome. Or part of it. Some sort of debug functionality.
What does
Code: |
USE="-inspector" emerge -pv --getbinpkg nodejs |
say?
I personally don't have it enabled. I think you have something that has enabled it because it had a default use flag that pulled it in. I see I have a commented entry about it in my package.use but what I have had it enabled for I don't remember. I remember adjusting use flags for the same reason - to use the binhost and that is when I commented that entry. So I'm pretty certain something else in your setup has pulled nodejs[inspector] in. Hopefully the output of the above command will give you a clue.
Hu wrote: | Maybe the binhost enabled a non-default flag to make something else work. Maybe the flag is enabled because the binhost maintainer thought this is something most people would want. |
No, what portage says with that output is what should be done, not what it is. If there are multiple flags it sometimes will offer you multiple lines like that, all containing a possible solution.
Best Regards,
Georgi |
|
Back to top |
|
|
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Mon Aug 19, 2024 1:40 pm Post subject: |
|
|
Hi folks
Thanks. "emerge --info" does not show anything about "inspector". I haven't set it, and yet (IIUC) emerge thinks I have, right?
I've no idea how to troubleshoot this. nodejs did eventually compile, after about five hours. Next up is wxGTK, because I have USE=-wayland. I imagine that will take another few hours.
I'm increasingly of the opinion that Gentoo just isn't going to work for me, but I've been suspecting that for a while.
BR, Lars. |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2419
|
Posted: Mon Aug 19, 2024 1:46 pm Post subject: |
|
|
lars_the_bear wrote: | Hi folks
Thanks. "emerge --info" does not show anything about "inspector". I haven't set it, and yet (IIUC) emerge thinks I have, right?
|
No, it doesn't. But if it was once enabled for whatever reason and other things have already settled with it, then emerge wants you to explicitly tell it to disable it. It won't adjust anything to defaults until everything involved is covered by the depgraph produced by the same query and nothing is explicitly set in /etc/portage or, profile or recorded in world.
Code: | USE="-inspector" emerge -pv --getbinpkg nodejs |
will give you more information, not emerge --info.
Best Regards,
Georgi |
|
Back to top |
|
|
John R. Graham Administrator
Joined: 08 Mar 2005 Posts: 10655 Location: Somewhere over Atlanta, Georgia
|
Posted: Mon Aug 19, 2024 1:49 pm Post subject: |
|
|
lars_the_bear wrote: | ...I'm increasingly of the opinion that Gentoo just isn't going to work for me, but I've been suspecting that for a while. | I really don't understand how this is a big problem for you. You can set your USE flags to match the requirements of pulling in the binary packages—and then you'll get the binary packages. Dormant features (for instance, Wayland support, from your example) don't typically affect performance in a meaningful way. There will be some disk space taken up, but that's a very low cost commodity. Gentoo is still going to be a leaner solution for you than essentially anything else.
One thing occurred to me. Is is possible that you don't understand the negative USE flags syntax? USE flags can bet actively set (inspector), actively unset (-inspector), or allowed to remain at the profile and/or package default. This works everywhere USE flags can be specified. For example: Code: | ~ # emerge -1vp nodejs
These are the packages that would be merged, in reverse order:
Calculating dependencies... done!
Dependency resolution took 4.02 s (backtrack: 0/30).
[ebuild R ] net-libs/nodejs-22.4.1-r1:0/22::gentoo USE="-corepack -debug -doc icu inspector (-lto) npm -pax-kernel snapshot ssl system-icu system-ssl -test" CPU_FLAGS_X86="sse2" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB
~ # USE="-inspector" emerge -1vp nodejs
These are the packages that would be merged, in reverse order:
Calculating dependencies... done!
Dependency resolution took 9.98 s (backtrack: 0/30).
[ebuild R ] net-libs/nodejs-22.4.1-r1:0/22::gentoo USE="-corepack -debug -doc icu -inspector* (-lto) npm -pax-kernel snapshot ssl system-icu system-ssl -test" CPU_FLAGS_X86="sse2" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB |
- John _________________ I can confirm that I have received between 0 and 499 National Security Letters. |
|
Back to top |
|
|
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Mon Aug 19, 2024 2:31 pm Post subject: |
|
|
John R. Graham wrote: | I really don't understand how this is a big problem for you. You can set your USE flags to match the requirements of pulling in the binary packages—and then you'll get the binary packages. Dormant features (for instance, Wayland support, from your example) don't typically affect performance in a meaningful way. |
That hasn't been my experience in the past. For example, I've found that using a build of XFce4 with Wayland support simply doesn't work on my system. It isn't just a matter of taking extra disk space -- it just doesn't work, because it fails to link Wayland libraries. I have to build from source.
I don't know enough about Gentoo to know when I can fiddle the USE flags to get a specific binary build, and not break the rest of the system.
Am I just missing something?
BR, Lars. |
|
Back to top |
|
|
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Mon Aug 19, 2024 2:34 pm Post subject: |
|
|
logrusx wrote: | But if it was once enabled for whatever reason and other things have already settled with it, then emerge wants you to explicitly tell it to disable it. |
Thank, but I've never set it, or unset it, or touched it in any way explicitly. I'd never heard of that USE flag before today. If it got set, or unset, indirectly as a result of some action I took, how can I find out what that action was? I'm totally baffled.
BR, Lars |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2419
|
Posted: Mon Aug 19, 2024 3:54 pm Post subject: |
|
|
lars_the_bear wrote: | logrusx wrote: | But if it was once enabled for whatever reason and other things have already settled with it, then emerge wants you to explicitly tell it to disable it. |
Thank, but I've never set it, or unset it, or touched it in any way explicitly. |
That doesn't matter in this case. What matters is it was at some point enabled for whatever reason, not necessarily you being aware of it.
Run the command I posted twice already and it would give you more information on what's preventing from that happening or if it was the case that portage needed it explicitly stated that you want inspector disabled. If not for this run, for the next time when you would otherwise spent 5 hours waiting for it to compile. Even now, if it installs it from binary, you lose nothing and will be all set for the next time.
Best Regards,
Georgi |
|
Back to top |
|
|
John R. Graham Administrator
Joined: 08 Mar 2005 Posts: 10655 Location: Somewhere over Atlanta, Georgia
|
Posted: Mon Aug 19, 2024 4:09 pm Post subject: |
|
|
lars_the_bear wrote: | That hasn't been my experience in the past. For example, I've found that using a build of XFce4 with Wayland support simply doesn't work on my system. It isn't just a matter of taking extra disk space -- it just doesn't work, because it fails to link Wayland libraries. I have to build from source. | When that sort of thing happens, that's a Gentoo bug, specifically a failure on a Gentoo developer's part to properly enumerate all the dependencies in some related package. It's worth reporting, but it's certainly the exception rather than the rule. Fiddling with USE flags is typically safe and, anyway, it's obvious how to un-fiddle them, right?
- John _________________ I can confirm that I have received between 0 and 499 National Security Letters. |
|
Back to top |
|
|
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2179
|
Posted: Mon Aug 19, 2024 7:12 pm Post subject: |
|
|
Just passing, thought I'd comment that nodejs takes about 30 seconds to compile on my box. Maybe it's a heck of a lot faster than the lars_the_bear's, but 360 times faster seems unlikely... (I'd guess it should be more like 20:1).
I used to run compilations on my laptop, with a twin core AMD chipset running at a nominal 3.6 GHz, no hyperthreading, 4GB ram and a 1TB 2.5" hard drive. It was slowish, but not as terrible as lars seems to be getting. I feel Lars ought to be getting better results than reported. Whatever OS I'd go for, if I could afford it, I'd (1) add memory - 16 GB would release the brake pedal, and (2) replace any hard drive with an SSD (if not already done so) - I put a 440GB SSD in mine, still only half full, and the speedup was immense. The other thing, if this has not already been investigated to death, is check the various portage tuning options (--jobs, --load, (non-)use of tmpfs and --pipe, -O, etc. etc.) _________________ Greybeard |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2419
|
Posted: Mon Aug 19, 2024 7:22 pm Post subject: |
|
|
Goverp wrote: | Just passing, thought I'd comment that nodejs takes about 30 seconds to compile on my box. |
That's impossible. Ryzen 7 5800H 16T/32GB here, last time it took 15 minutes. Even if you have a 128 threads monster, you can't feed them all with jobs. On the other hand it takes several seconds to merge the binary package, so we can't say you're mistakenly merging a binary package. Or can we?
Best Regards,
Georgi |
|
Back to top |
|
|
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Tue Aug 20, 2024 8:31 am Post subject: |
|
|
John R. Graham wrote: | Fiddling with USE flags is typically safe and, anyway, it's obvious how to un-fiddle them, right?
|
I can see why that would be true for a more knowledgeable user. I'm already starting to find out the hard way which packages I can force the use of binaries for, and which I can't. And, as you say, it should be possible to revert a mistake of that kind.
Except...
I guess it's easier to experiment with that kind of thing, if it's a package you're actually installing explicitly. I suspect it's harder, when that package is a dependency that's four levels deep in the dependency tree.
For example, as I said in another thread, I'm currently stuck building qtwebengine from source, which I suspect will take a day or more. It's building from source because I have 'USE=-pulseaudio'. If I forced the binary version to install, by setting a specific USE for pulseaudio on that one package, I suspect it would work (maybe) without Pulse. This is the case for the Firefox binary, for example. Having Pulse support enabled doesn't prevent ALSA working.
But, here's the point: I didn't choose to install qtwebengine, and I don't even know why it's being installed. I could find out, I guess; but the damage is already done -- I don't want to stop a compilation that is already about twelve hours underway, and experiment with the settings. I don't know in advance how long it's going to take to compile a particular package. I know now, but I didn't know ahead of time, so I had no reason to fiddle.
So it is with this 'inspector' thing. I didn't choose to install nodejs, and I don't know what chain of dependencies is leading to it needing to be updated. I had no idea, ahead of time, that nodejs would take hours to compile, so the fact that it needed to be compiled wouldn't have raised any alarm at that time.
I guess I can fix this specific problem, but it's just one example of a problem that I get every time I do an update.
BR, Lars. |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2419
|
Posted: Tue Aug 20, 2024 11:13 am Post subject: |
|
|
lars_the_bear wrote: | I don't know in advance how long it's going to take to compile a particular package. |
One thing that might help you is checking the download size for the package in emerge -v output.
For me, qtwebengine exists on my system because of calibre, which pulls in PyQt6-WebEngine, which in turn pulls qtwebengine.
Qtwebengine however has a default enabled pulseaudio and nothing requires it. It might be the case with you too. Another thing is the knowledge qtwebengine is in fact modified chromium. Yes, qt developers are perverts.
Nodejs is a requirement of Firefox. I could skip it if I used the binary package, but if I want to run the latest Firefox I have to compile it and in the same time the binary package does not have some features I want enabled.
Best Regards,
Georgi |
|
Back to top |
|
|
szatox Advocate
Joined: 27 Aug 2013 Posts: 3430
|
Posted: Tue Aug 20, 2024 11:32 am Post subject: |
|
|
Quote: | It's building from source because I have 'USE=-pulseaudio'. If I forced the binary version to install, by setting a specific USE for pulseaudio on that one package, I suspect it would work (maybe) without Pulse. | Emereg has a flag --binpkg-respect-use=<y|n> which allows it to accept a binary package even though use flags don't match.
You'll still need to fix the mess it's going to make with package.use, but it might make starting out easier.
There's also package-provided, which is admittedly a hack, but it could let you prune some branches from dependency graph (though you have to be careful with it, because it is still a hack) without writing your own ebuilds. _________________ Make Computing Fun Again |
|
Back to top |
|
|
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Tue Aug 20, 2024 1:08 pm Post subject: |
|
|
logrusx wrote: | Another thing is the knowledge qtwebengine is in fact modified chromium. Yes, qt developers are perverts.
|
Yes, that would have been a red flag, had I known in advance.
In fact, I got past that stage (now two days into the update), but I'm stuck building FreeCAD from source. I know from experience that this takes three days -- it's a monster. And I don't think there actually is a binary of the version I need, so I'm stuck with building it. I suppose I could dig up an appimage or something, if all else fails.
I don't think I'll be updating this system again, when this update has finished. When it gets too out of date that I can't use it any more, I'll install something else. It works really well with Gentoo, but keeping it up to date is just too, too painful. Life's too short.
BR, Lars. |
|
Back to top |
|
|
pjp Administrator
Joined: 16 Apr 2002 Posts: 20485
|
Posted: Tue Aug 20, 2024 4:03 pm Post subject: |
|
|
lars_the_bear wrote: | Except... | I don't think I've seen this suggested. What about using the USE settings to match the Gentoo built binaries, and then tweak them closer to your liking? You'll probably have to compromise some on what you want and what you can reasonably get as far as not compiling packages that take a long time. I think you said you had multiple laptops, so it could be worth experimenting with one that isn't your main system.
Hypothetical example: You decide you want to change a USE flag for gcc. Using --buildpkgonly, you can see how long it will take to build without installing the result. Since --buildpkonly doesn't install to the live file system after being built, I _think_ it should be safe to cancel the build at any time if you decide it's taking too long. If you decide it's worth the time to compile, then you can install the binary. Bonus, it's built for other systems (provided you build it for common hardware). _________________ Quis separabit? Quo animo? |
|
Back to top |
|
|
eschwartz Developer
Joined: 29 Oct 2023 Posts: 220
|
Posted: Wed Aug 21, 2024 5:10 am Post subject: |
|
|
lars_the_bear wrote: | John R. Graham wrote: | I really don't understand how this is a big problem for you. You can set your USE flags to match the requirements of pulling in the binary packages—and then you'll get the binary packages. Dormant features (for instance, Wayland support, from your example) don't typically affect performance in a meaningful way. |
That hasn't been my experience in the past. For example, I've found that using a build of XFce4 with Wayland support simply doesn't work on my system. It isn't just a matter of taking extra disk space -- it just doesn't work, because it fails to link Wayland libraries. I have to build from source.
|
There is an overly specific bug which I fixed this month: https://bugs.gentoo.org/873520
It causes libxfce4ui to depend on wayland when it should not -- when the user's USE flags say that it should not. It's a gtk ecosystem thing.
If there are any further packages out there that are still broken when GTK is built without wayland support, I very much want to know about them so that I can fix them. We should NEVER be delivering binpackages that have broken automagic dependencies like this.
See for more details: https://public-inbox.gentoo.org/gentoo-dev/20240623173646.3368935-1-eschwartz93@gmail.com/T/ |
|
Back to top |
|
|
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Wed Aug 21, 2024 8:26 am Post subject: |
|
|
pjp wrote: | lars_the_bear wrote: | Except... | I don't think I've seen this suggested. What about using the USE settings to match the Gentoo built binaries, and then tweak them closer to your liking? |
Fair point, but I'm not sure I have the skill for something like this.
Please bear in mind that I've only been using Gentoo for a couple of months. I've learned a little about it, but there's still more I don't understand about it than what I do.
Perhaps there could/should be something in the installation documentation that explains what specific initial settings are required, if you suspect you'll need to use mostly binaries?
Of course, on its own that wouldn't have helped me, because I had no idea how much compilation was going to be required, so I wouldn't have known the extent to which I'd need to rely on binaries.
BR, Lars. |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2419
|
Posted: Wed Aug 21, 2024 8:33 am Post subject: |
|
|
lars_the_bear wrote: | pjp wrote: | lars_the_bear wrote: | Except... | I don't think I've seen this suggested. What about using the USE settings to match the Gentoo built binaries, and then tweak them closer to your liking? |
Fair point, but I'm not sure I have the skill for something like this. |
You don't need to, you have the forums. And IRC.
Best Regards,
Georgi |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1961
|
Posted: Wed Aug 21, 2024 10:27 am Post subject: |
|
|
The binhost tries to stick to defaults on the profiles it builds for as much as possible (with some overlap between different profiles to cover common needs). Everything you configure (either enabling or disabling) is an additional constraint, whether you're using the binhost or not, and making use of the power to customise. By using that power, you then have to accept e.g. building more. |
|
Back to top |
|
|
John R. Graham Administrator
Joined: 08 Mar 2005 Posts: 10655 Location: Somewhere over Atlanta, Georgia
|
Posted: Wed Aug 21, 2024 3:03 pm Post subject: |
|
|
lars_the_bear wrote: | ... Perhaps there could/should be something in the installation documentation that explains what specific initial settings are required, if you suspect you'll need to use mostly binaries? ... | Perhaps there should be. In the meantime, to interpret what sam_ said above a little bit, that makes the requirement absolutely simple: don't set any USE flags in /etc/portage/*.
- John _________________ I can confirm that I have received between 0 and 499 National Security Letters. |
|
Back to top |
|
|
eschwartz Developer
Joined: 29 Oct 2023 Posts: 220
|
Posted: Wed Aug 21, 2024 3:59 pm Post subject: |
|
|
John R. Graham wrote: | lars_the_bear wrote: | ... Perhaps there could/should be something in the installation documentation that explains what specific initial settings are required, if you suspect you'll need to use mostly binaries? ... | Perhaps there should be. In the meantime, to interpret what sam_ said above a little bit, that makes the requirement absolutely simple: don't set any USE flags in /etc/portage/*.
- John |
... or just update your USE flags with the example package.use lines that portage prints by default as suggestions for "if you want to change your USE flags and get a binpackage, here are some options".
But as suggested earlier in the thread, the OP may be concerned that large builds get started in an unattended fashion and get 12 hours underway before the necessity of setting a USE flag is recognized. |
|
Back to top |
|
|
pjp Administrator
Joined: 16 Apr 2002 Posts: 20485
|
Posted: Wed Aug 21, 2024 5:10 pm Post subject: |
|
|
lars_the_bear wrote: | Fair point, but I'm not sure I have the skill for something like this. | Great timing! Now you have the opportunity to learn something you (presumably) want to do.
lars_the_bear wrote: | Please bear in mind that I've only been using Gentoo for a couple of months. I've learned a little about it, but there's still more I don't understand about it than what I do. | If you can use a spare laptop, that makes it even easier. The worst that happens is you don't get it right the first time.
I just checked the installation handbook, and it includes how to configure a binhost. In "25 Configuring Portage" subsection "25.6 Optional: Adding a binary package host"
https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation#Optional:_Adding_a_binary_package_host
Since you've installed at least once, this method is likely to be faster, if for no other reason than not compiling everything.
lars_the_bear wrote: | Perhaps there could/should be something in the installation documentation that explains what specific initial settings are required, if you suspect you'll need to use mostly binaries? | Unless you have something else in mind, I think that previous section should cover it?
lars_the_bear wrote: | Of course, on its own that wouldn't have helped me, because I had no idea how much compilation was going to be required, so I wouldn't have known the extent to which I'd need to rely on binaries. | To paraphrase NeddySeagoon, experience is what you get right after you needed it. So now you know, and you can use that to try this other option. During the process you'll become more familiar with what you've already done by going through it again. Then when you see something new, it's only one or a few things, rather than everything when you first did it.
So get a favorite beverage, read through the install Handbook and make notes on what you'll be doing this time around. You may be surprised how much you've already learned.
And when in doubt, ask for help. That's another advantage of being able to use a secondary system. Less urgency to get it working if something happens. _________________ Quis separabit? Quo animo? |
|
Back to top |
|
|
lars_the_bear Guru
Joined: 05 Jun 2024 Posts: 520
|
Posted: Wed Aug 21, 2024 6:07 pm Post subject: |
|
|
John R. Graham wrote: | In the meantime, to interpret what sam_ said above a little bit, that makes the requirement absolutely simple: don't set any USE flags in /etc/portage/*.
|
As I recall, all I have is Code: | +alsa -pulseaudio -gnome -kde -systemd -wayland | .
These don't seem extraordinary settings to me, and I would have thought they were essential on a system where I never intend to run a full-scale integrated desktop.
But it's been suggested that Gentoo shouldn't break if I allow applications to have Wayland and Pulse support to be built, even if I don't (can't) use either of these. I can certainly try this, whilst I still have big machines to try it on in a reasonable time. But my gut feeling is that it will be problematic.
Or am I just being pessimistic?
BR, Lars. |
|
Back to top |
|
|
|
|
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
|
|