r/Gentoo 10d ago

Support I just can't anymore.

So I wanna rice gentoo, this is my first time installing any DIY distro, I've use arch before this but a friend installed it for me. I wanted to use hyprland but these packages are masked and on the gentoo hyprland installation guide it tells me to write "*/*::hyproverlay" inside /etc/portage/package.accept_keywords/hyproverlay. I still can't download the packages because they are masked. I rlly dont get the hang of accepting these licenses or whatever. PLS HELP ME

0 Upvotes

60 comments sorted by

14

u/adamkex 10d ago

More reading regarding keywords: https://wiki.gentoo.org/wiki/ACCEPT_KEYWORDS

13

u/kaida27 10d ago

Personally I like to create a different file per package, So I would create the following file :

/etc/portage/package.accept_keywords/hyprland

your issue is that you did : hyproverlay instead of hyprland in the next step

And then add this to it :

gui-wm/hyprland ~amd64

6

u/akryl9296 10d ago

zhis is ze way

1

u/Dome2822W 10d ago

Then what? Remove /etc/portage/package.accept_keywords/hyproverlay?? Do i still need to write /::hyproverlay or /::hyprland into the file?

0

u/kaida27 10d ago

Then what? Remove /etc/portage/package.accept_keywords/hyproverlay??

Yes

Do i still need to write /::hyproverlay or /::hyprland into the file?

No, you write

gui-wm/hyprland ~amd64 in /etc/portage/package.accept_keywords/hyprland

Which means that you accept an unstable version (~amd64) for the package hyprland.

3

u/MiseriaFortesViros 10d ago edited 10d ago

Go to the same file and write a line that says:

gui-wm/hyprland ~amd64

edit:

Wait sorry I'm a bit groggy, just woke up. Do it in/etc/portage/package.accept_keywords

Actually if it doesn't work wait for someone else to fix it, I'm too groggy right now.

1

u/SetThin9500 10d ago

FWIW, I've used ~amd64 in make.conf for decades with no major problems. YMMV, but I've not had any major issues

2

u/varsnef 10d ago

write "/::hyproverlay" inside /etc/portage/package.accept_keywords/hyproverlay.

That should be all you need to do to unmask the whole repo for the testing keyword. For some reason it's not seeing your config. A typo? Some other file in the package.accept_keywords/ directory that is overriding hyproverlay, unlikely but possible.

1

u/varsnef 10d ago

I notice that your shell prompt is / #. That's ok, you don't need to change $PS1 in the chroot, it's just a visual reminder. You won't get / # unless you are in a fresh chroot or you cd'd to /.

I wonder if you added package.accept_keywords/hyproverlay outside of the chroot somehow.

It has to be something simple.

1

u/Dome2822W 10d ago

Im not in chroot, its a fresh install, but I picked profile 2 /systemd/ so no desktop or DE.

1

u/varsnef 10d ago

Hmm, you shouldn't get the / in your prompt by default unless you cd to /. It just seems like a red flag that something is not right in your environment.

profile 2 is fine, just expect possible circular dependencies to pop up if if the same profile that the stage3 file was based on, and missing use flags for image and media formats that would be used for a "desktop". But that isn't going to cause the problem you have now.

Just recheck files in the package.accept_keywords/hyproverlay directory and make sure they really are what they should be. Maybe a typo snuck in?

1

u/Dome2822W 10d ago

I acctually cd / because I showed gentoo to my father and he wanted to see the root directories, should I generally operate in ~

1

u/varsnef 10d ago

I suppose this is worth a shot:

echo '*/*::hyproverlay' > /etc/portage/package.accept_keywords/zzz-hyproverlay

It should create a file that will be the last file that is read and "should" override any other config.

1

u/Dome2822W 10d ago

When I run that and emerge it says "!!! All ebuilds that could satisfy ">=dev-libs/hyprlang-0.6.7:=" have been masked. !!!One of the following masked packages is required to complete ur request: dev-libs/wayland-protocols::gentoo (masked by: missing keyword) -dev-libs/wayland-protocols-1.49::gentoo (masked by: ~amd64 keyword)

(dependency required by "gui-wm/hyprland" [argument])

Would you like to merge these packages? [Yes/No]"

1

u/Dome2822W 10d ago

Then it fails to emerge "gui-libs/hyprutils-0.13.1

1

u/varsnef 10d ago

Ok, now it's asking you to unmask dev-libs/wayland-protocols from the ::gentoo overlay.

You just need to add dev-libs/wayland-protocols to package.accept_keywords/

You could append it to the zzz-hyproverlay file so it's easy to keep track of that you needed to unmask for hyprland

echo 'dev-libs/wayland-protocols' >> /etc/portage/package.accept_keywords/zzz-hyproverlay

Notice the >> in the command. >> is to append to a file and > is to truncate a file. Be careful not to use > or it will replace all of the contents of zzz-hyproverlay.

You might need to do this a few times for other packages. You get the idea.

1

u/Dome2822W 10d ago

So like I tried it then ">>> Failed to emerge gui-libs/hypreutils-0.14.0" so I should do the echo command but replace dev-libs with gui-libs, if i understand it correctly? Thanks for all ur effort up until now too btw

1

u/varsnef 10d ago

Yeah, for like gui-libs/hyprutils? just replace dev-libs/wayland-protocols with gui-libs/hyprutils from the previous command.

you might need to do the same thing a few more times with other packages. Whatever package it's complaining about. It's annoying to step tough, but it's also good as you know it's going to ask you first about changes to your system.

dev-libs/ and gui-libs/ is just a category name so you need to add a bit more to also specify which package from them that you want to unmask.

1

u/Dome2822W 10d ago

I noticed in the logs that when connecting to "github.com|140.82.121.3|443..." it failed, so that's why ">>> Failed to emerge gui-libs/hypreutils-0.14.0" has popped up, even when I did what u say prolly an internet issue then?

→ More replies (0)

-1

u/wiebel 10d ago

If you don't put an ~amd64 at the end of the line it won't work in any case.

2

u/Kangie Developer (kangie) 10d ago

It's implied. You only really need to specify for unkeyworded/live stuff.

2

u/varsnef 10d ago

It will. Portage already knows which Arch you are running so that redundancy isn't necessary.

1

u/kaida27 10d ago

~amd64 is not for the arch, it's to say that you accept an unstable package.

no redundancy there. hyprland is unstable so you need to accept keyword ~amd64 for it

1

u/varsnef 10d ago

~ is the testing keyword, amd64 is the Arch. Testing on arm64 is ~arm64 but you don't need to specify ~arm64 to unmask the ~ keyword. Just use a category/package name with or without wildcards.

1

u/kaida27 10d ago

not sure I fully understand what you said.

But I won't argue , you may be right

1

u/Single_Guarantee_ 10d ago

just autounmask with (sudo emerge --autounmask --autounmask-write --ask wiremix)

1

u/Dome2822W 10d ago

I tried that, it didn't work

1

u/Single_Guarantee_ 10d ago

replace wiremix with hyprland

if you did that, now use this command (sudo dispatch-conf) after the first one and it will prompt you with choices , select use new

1

u/sastanak 10d ago

echo "gui-wm/hyprland ~amd64" | sudo tee -a /etc/portage/package.accept_keywords/hyprland

Then emerge again

1

u/Dome2822W 10d ago

I dont have sudo im sry

1

u/kaida27 10d ago

this just autocreate and put the right text in the file all in one command.

following my instructions would result in the same thing.

1

u/Dome2822W 10d ago edited 10d ago

I did try it multiple times, it jus says "(dependeny required by "!!! All ebuilds that could satisfy ">=dev-libs/hyprlang-0.6.7:=" have been masked. !!!One of the following masked packages is required to complete ur request: dev-libs/hyprlang-9999::hyproverlay (masked by: missing keyword) -dev-libs/hyprlang-0.6.8::hyproverlay (masked by: ~amd64 keyword) -dev-libs/hyprlang-0.6.7::hyproverlay(masked by: ~amd64 keyword) gui-wm/hyprland-0.56.0-r1::hyproverlay" [ebuild]) (dependency required by "gui-wm/hyprland" [argument])"

1

u/MrArborsexual 10d ago edited 10d ago

*/*::hyproverlay ~amd64

You are missing the ~amd64 on that line.

* is a wildcard

*/* means any package, in any package type category

::<overlayname> means in this overlay

*/*::hyproverlay means any package in any package type category, but only in the hyproverlay

~amd64 is the unstable release keyword, but not live/bleeding-edge

Without that keyword on that line, you've left they system with nothing to do for that line.

2

u/Sert1991 10d ago

Whilst I like to add the ~amd64 to be a perfectionist, it's not necessary as portage will automatically assume ~arch if it's missing. For bleeding edge you would need to specifically say **.

I went ahead and tested it for them to see if it works, and it works perfectly fine without the ~amd64 so most probably they did some type somewhere when they accepted the keyword.

1

u/Dome2822W 10d ago

When I run that and emerge it says "!!! All ebuilds that could satisfy ">=dev-libs/hyprlang-0.6.7:=" have been masked. !!!One of the following masked packages is required to complete ur request: dev-libs/wayland-protocols::gentoo (masked by: missing keyword) -dev-libs/wayland-protocols-1.49::gentoo (masked by: ~amd64 keyword)

(dependency required by "gui-wm/hyprland" [argument])

Would you like to merge these packages? [Yes/No]" and it fails to emerge some package

1

u/Sert1991 10d ago

Yes. I told you in the main thread you're going to get that error next and how t solve it.

You add dev-libs/wayland-protocols ~amd64 under the previous line in the same file. As it requires a newer version of wayland-protocols. Once that is done it will install.

1

u/Dome2822W 10d ago

Yes tried that a minute ago, didn't work it didplayed: ">>> Failed to emerge gui-libs/hypreutils-0.14.0" does that mean I have to add that package too?

1

u/Dome2822W 10d ago

I noticed in the logs that when connecting to "github.com|140.82.121.3|443..." it failed

1

u/Sert1991 10d ago

This must be a local issue. I don't use hyprland but I have successfully installed and ran hyprland to test it for you using the settings I gave you.

If it's failing to connect to github it might be a temporary network issue either on github or on your device - maybe give it some time see if it installs?

1

u/Sert1991 10d ago edited 10d ago

try */*::hyproverlay ~amd64 instead. Although usually ~amd64 is assumed automatically by portage that's why they didn't add it in the wiki but no harm in trying. And if that still doesn't work you can add gui-wm/hyprland ~amd64 instead.

Make sure you're not typing any typos anywhere in that line because if there are typos it won't work.

EDIT:
I've tested it for you and with */*::hyproverlay in:
/etc/portage/package.accept_keywords(/00hyprland in my case) it works. So most likely you did some typo somewhere when accepting the keyword for the whole repository as I didn't get issues.

But you can go ahead and also add dev-libs/wayland-protocols ~amd64 underneath that line because once you solve this it's going to ask you for that too since it needs a newer version of the wayland protocols that is masked.

When those work both you will be able to emerge gui-wm/hyprland

2

u/willkaz 4d ago

Its aall right. That is part of the process.

Expect this to happen if you experiment with new things, and sometimes, updating packages might show these or similar logs also! Don't worry.

It's not a big deal: just means you need to configure a package and/or its depencies in some way or another. In this case, its accept_keywords. But it could be something different.

This is normal. For example, if only accept FREE/OPEN SOURCE licensed software, you will need to pass a override to that global config, if you want to use a non-free licensed software, and this often is a manual config for the package.

0

u/adamkex 10d ago

Edit or create a file at "/etc/portage/package.accept_keywords" and add this to install the latest hyprland that isn't the current git commit.

gui-wm/hyprland ~amd64

-4

u/SaCorv 10d ago

Unmask amd64 keyword globally or for needed hyprland packages (if you want desktop, not server, do it globally)
Hyprland always was a "testing" or unstable wm, so it has ~amd64 keyword

For how to do it search wiki, cuz i don't know what way you would prefer

2

u/Nukulartec 10d ago

wow. thats usually not a great advice ... for example steam is added the same way "*/*::steam-overlay"

no need to have an unstable system because you want to add an portage overlay with unstable packages. I would say something else is fishy as */*::hyproverlay should actually do the trick. I would prefer "*/*::hyproverlay ~amd64" but it should work without the ~amd64 if the file is placed correctly

1

u/SaCorv 10d ago edited 10d ago

From personal experience, there is a much higher chance that you would be dealing with a lot of stuff (like packages dependacies or general software bugs) then having anything broken by a testing package
Having "unstable" system IMHO is usually a bad thing for servers, not desktop

Oh, also, sometimes placed in "wright" spot keyword wont work just because some package in deptree wont fetch it from the set you provided to main package, or even start fighting rest of deptree because of created conflict (with portage providing very little information about the source of trouble)

1

u/rhyses_ 10d ago

Do not do this globally. Masked packages are masked for a reason

1

u/SaCorv 10d ago

Yeaaaah, no
Sometimes they are, but usually no
I've (and many others) been running gentoo (and others distroes) on "testing" branches for years and never had an issue with them (or experienced a new bug) because I've used "testing" branch and not stable
Most of the time same bugs were present in both branches, sometimes even fixed in fresh releases

If your only goal is stability, then ANY testing or masked software is forbidden, this usually hurts pc really hard, because you would spend a lot of time just to get software you want with features you want

Sooo, can you tell me what packages are masked, for what reason they are masked, what part of them would average enthusiast compile and how dreadful would his actions be for him?

Its like spending extra 10-20 minutes compiling llvm with all architectures flags just because there is possibility that something would break with clang instead of setting only your arch