anyc / steam-overlay

Gentoo overlay for Valve's Steam client and Steam-based games
GNU General Public License v2.0
202 stars 44 forks source link

games-util/steam-meta still need games-util/steam-games-meta that is masked for deprecation (60 days) #307

Closed JulienDlq closed 2 years ago

JulienDlq commented 2 years ago

Maybe something has to be done after masking games-util/steam-games-meta?

$ equery depgraph games-util/steam-meta                     
 * Searching for steam-meta in games-util ...

 * dependency graph for games-util/steam-meta-0-r20160817
 `--  games-util/steam-meta-0-r20160817  ~amd64 
   `--  games-util/steam-launcher-1.0.0.74-r1  (games-util/steam-launcher) ~amd64  [steamruntime?]
   `--  games-util/steam-client-meta-0-r20220212  (games-util/steam-client-meta) ~amd64  [steamruntime?]
   `--  games-util/steam-games-meta-0-r20211230  (games-util/steam-games-meta) M[package.mask]  [steamruntime]
   `--  games-util/esteam-0.20220219  (games-util/esteam) ~amd64 
[ games-util/steam-meta-0-r20160817 stats: packages (5), max depth (1) ]
$ sudo emerge -av1 --quiet-build games-util/steam-games-meta

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! All ebuilds that could satisfy "games-util/steam-games-meta" have been masked.
!!! One of the following masked packages is required to complete your request:
- games-util/steam-games-meta-0-r20211230::steam-overlay (masked by: package.mask)
/var/lib/layman/steam-overlay/profiles/package.mask:
# James Le Cuirot <chewi@gentoo.org>
# Only supports a small handful of games, is not scalable, and is unmaintained.
# Use games-util/esteam instead. Removal in 60 days.

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
chewi commented 2 years ago

steam-meta depends on steam-games-meta OR esteam, so I thought this would be fine. I can't actually see a problem with the above. Obviously if you try to install steam-games-meta directly, that message will appear.

JulienDlq commented 2 years ago

steam-games-meta is not installed directly on my gentoo, it is a dependency of steam-meta that is installed directly. This situation is still the case since the very beginning of my first install of steam, nearly 2 years ago. :wink: But what I didn't tried is to force uninstall of steam-games-meta, to see if, hopefully, esteam will install itself in place of steam-games-meta.

Actually, what I was showing using -av1 was just the message about the « 60 days », I was not trying to install directly steam-games-meta, sorry if that was confusing without explanation. :cry:

I will give a try and tell you.

JulienDlq commented 2 years ago

Ok, seems good to me, thanks for your help! Next time I'll try before asking (but it was scary to kill my steam install actually…)

$ sudo emerge -av --quiet-build games-util/steam-meta      

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ~] games-util/esteam-0.20220219::steam-overlay  USE="pulseaudio" 0 KiB
[ebuild   R   ~] games-util/steam-meta-0-r20160817::steam-overlay  USE="steamruntime" 0 KiB

Total: 2 packages (1 new, 1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] 
JulienDlq commented 2 years ago

Just for my understanding, if I use steamruntime library I don't need to do theses things?

 * Run esteam after installing or updating Steam games to have
 * Portage automatically install the necessary dependencies. Your
 * games will probably not start otherwise. See esteam -h for more
 * information.
The official Steam runtime can be safely enabled or disabled as
desired with no ill effects. If you wish to remove the libraries
installed by this tool in favor of the runtime then execute:
emerge --deselect @esteam && emerge --depclean
calzoneman commented 2 years ago

I think the issue here is that, like you said, games-util/steam-meta depends on games-util/esteam OR games-util/steam-games-meta, so for anyone who already has games-util/steam-games-meta installed (even if as a dependency and not in the world set), that dependency is satisfied so Portage keeps it but shows the deprecation notice.

I'm not sure if Portage would automatically pull in esteam on the deprecation date once steam-games-meta becomes unavailable, but in any case people who installed steam a while back may require manual intervention.

For me what worked was:

  1. Installing games-util/esteam with --oneshot
  2. Depcleaning games-util/steam-games-meta

If others run into the same confusion, it may be worth including a link to manual upgrade instructions in the deprecation notice.

chewi commented 2 years ago

Sorry for not handling this very well. I've now bumped steam-meta to remove the reference to steam-games-meta.

I was going to make esteam unconditional but I've changed my mind and made it !steamruntime only. You're still free to use it if you like though. Looking at the dependencies that steam-games-meta had, I'm really not sure what the point of it was. All those libraries do exist in the Steam runtime so that alone should be enough, at least in theory. While I don't use the runtime on Gentoo, my daughter has never had any problem using it on OpenSUSE.

calzoneman commented 2 years ago

No problem, I actually wasn't aware of esteam until this notice and from a cursory glance it seems like the script it runs to identify game dependencies might actually fix some of the problems I was having with certain games, so it's not necessarily a bad change, I just wasn't sure what I was supposed to do.

Thanks for your work maintaining this package, I've gotten a lot of use out of it.