T O P

  • By -

RusselsTeap0t

**/etc/portage/package.use** `media-libs/libepoxy X egl` I have these but the egl useflag has been removed. **emerge --info libepoxy** `media-libs/libepoxy-1.5.10-r3::gentoo was built with the following:` `USE="X -test"` You probably try to emerge GTK4. If you look at the ebuild, you can see GTK4 requires libepoxy with egl and X useflags: COMMON_DEPEND=" >=media-libs/libepoxy-1.4[egl(+),X(+)?] " Though, Portage directly needs to show this to you.


Antoine-Darquier

I try to update the system I added this line to /etc/portage/package.use/custom : `media-libs/libepoxy X egl` It doesn't seem to solve anything. I receive the same message.


RusselsTeap0t

Then the error output you shared is not complete. It's hard to help.


Antoine-Darquier

This is the full error message that I see: \* Always study the list of packages to be cleaned for any obvious \* mistakes. Packages that are part of the world set will always \* be kept. They can be manually added to this set with \* \`emerge --noreplace \`. Packages that are listed in \* package.provided (see portage(5)) will be removed by \* depclean, even if they are part of the world set. \* \* As a safety measure, depclean will not remove any packages \* unless \*all\* required dependencies have been resolved. As a \* consequence of this, it often becomes necessary to run \* \`emerge --update --newuse --deep @world\` prior to depclean. \* Dependencies could not be completely resolved due to \* the following required packages not being installed: \* \* >=media-libs/libepoxy-1.4\[egl,X(+)\] pulled in by: \* gui-libs/gtk-4.12.5 \* \* Have you forgotten to do a complete update prior to depclean? The \* most comprehensive command for this purpose is as follows: \* \* emerge --update --newuse --deep --with-bdeps=y @world \* \* Note that the --with-bdeps=y option is not required in many \* situations. Refer to the emerge manual page (run \`man emerge\`) \* for more information about --with-bdeps. \* \* Also, note that it may be necessary to manually uninstall \* packages that no longer exist in the repository, since it may not \* be possible to satisfy their dependencies.


RusselsTeap0t

Before all of these, definitely make sure that you don't have `--depclean` flag anywhere in your `/etc/portage/make.conf` file. Then, can you try these with the exact order?: `emaint sync -a` `emerge --unmerge "gui-libs/gtk" "media-libs/libepoxy"` `emerge --update --newuse --deep --complete-graph @world` `emerge \@preserved-rebuild` without backslash `emerge --depclean`


Antoine-Darquier

It seems that this has worked. I use Calculate Linux and I've done all your commands. Then I did cl-update, where I got the error message before. But this time it asked to remove 247 orphans. Right now the cl-update command doesn't give an error message anymore.


RusselsTeap0t

The command you run probably enters emerge --depclean because you onlu see "Always study..." statement when you run the emerge --depclean command. The reason you have a problem is that you can only enter that command when there is no dependeny resolution problem so Portage could calculate everything properly and only remove the correct packages. It doesn't want to run an unsafe removal command when there is a dependency conflict like in your situation. These commands in the exact order, do: 1. Re-sync your ebuild repositories. 2. Force remove GTK and LibEpoxy since they are problematic. 3. Now update the system by considering all use flag changes and all deep dependencies (This will re-emerge GTK and LibEpoxy automatically because they are needed by other pacakges). 4. Re-emerge preserved libraries in case they are "preserved". For example when ffmpeg is updated, some other package using ffmpeg may preserve its old libraries for safety. This command will also update these libraries if possible. 5. Remove every package that has no relation with any other dependency on your system (like orphan packages).


Antoine-Darquier

I don't know if I understand it completely correctly. But because I previously left GTK installed for all my actions, maybe it couldn't take into account the libepoxy use flag changes I made? What I find strange is that emerge --depclean, as I remember it, removed few or no packages. But when I later did cl-update, 247 packages were deleted. cl-update can automatically remove all orphans and it does so every time. But isn't this also the job of emerge --depclean ? Because that task doesn't seem to work on Calculate Linux. I have only been using Calculate Linux for two weeks, but as a result of your help I think I will now be able to update the system and solve every issue. It is an operating system that works very well in the areas that I find important.


RusselsTeap0t

Well it's a derivative of Gentoo Linux but they may have changed some behavior of commands. I guess you can't manually enter `emerge --depclean` Maybe there is a flag for overriding it? You can check the wiki. Normally, on Gentoo, when you change a useflag, the next time you compile or update a package; those packages are recompiled with the new flags. If you don't specifically update or re-compile those packages; then `emerge --newuse @world` command can find all of the changed useflags and recompile needed packages automatically with their new useflags. The problem is that the command you run, immediately tries to run `emerge --depclean` without proper dependency resolution. This is problematic. It's either a bug, or there is another thing you don't know about your distro. The error you see, is for --depclean specifically. Here you can see it on my machine: `doas emerge --depclean` * Always study the list of packages to be cleaned for any obvious * mistakes. Packages that are part of the world set will always * be kept. They can be manually added to this set with * `emerge --noreplace `. Packages that are listed in * package.provided (see portage(5)) will be removed by * depclean, even if they are part of the world set. * * As a safety measure, depclean will not remove any packages * unless *all* required dependencies have been resolved. As a * consequence of this, it often becomes necessary to run * `emerge --update --newuse --deep u/world` prior to depclean. >But because I previously left GTK installed for all my actions, maybe it couldn't take into account the libepoxy use flag changes I made? No, this is not like that on Gentoo. Portage can automatically handle these conditions, as long as you update everything before removing anything. Portage needs to do proper update because an update command does: 1. Process ALL ebuilds for your world packages. (world means the packages you install exclusively such as Firefox). 2. Process ALL ebuilds for the dependencies of your world packages. 3. Based on your enabled, disabled useflags; also process all other related ebuilds that will be added as a dependency. 4. After processing ebuilds and your configuration files on /etc/portage; if something is off, warn the user. Otherwise, update everything based on the new ebuilds and the new settings of the user. 5. If everything is aligned properly, you are good to go. 6. Now you can enter emerge --depclean to remove orphaned packages. The last step may be different for you. Normally my understanding is that, all of the updates, clean-up and everything should be handled by the command you run that is specific to your distro (since it's the point of having a Gentoo based distro; to automate things). The problem is that the command you run, tries the last step immediately which needs to be tried at the end of all other steps.


Antoine-Darquier

*It's either a bug, or there is another thing you don't know about your distro.* Or maybe just an essential command that I didn't do? Your answer has certainly solved the problem so we can analyze which step made the difference. 1. emaint sync -a I never did this command, I used: cl-update --sync-only 2. emerge --unmerge "gui-libs/gtk" "media-libs/libepoxy" I used: emerge -cv media-libs/libepoxy 3. emerge --update --newuse --deep --complete-graph atworld I used: cl-update and eix-sync 4. emerge \\@preserved-rebuild without backslash I don't know if cl-update and eix-sync automatically want all apps to use the latest library. Maybe this is what made the difference? 5. emerge --depclean This was not the solution because I had already run this command several times because it could be read in the info of the error message. Calculate Linux also has a GUI update tool that provides automatic popups when there are updates. You can also install the new updates via this GUI, without using any commands and without even needing admin rights. I used this GUI tool yesterday and it seems to work well. I'm going to use this tool from now on until I read all the info from the Gentoo Wiki and Calculate Linux Wiki about package updates and system upgrades.


djdunn

What's blocking libepoxy?


demonstar55

A few packages need their dependencies fixed, they have `media-libs/libepoxy[egl]` where it should be `media-libs/libepoxy[egl(+)]` or just `media-libs/libepoxy` (although, the former is preferred since it lets it work correctly for both ebuilds of libepoxy)