gui-wm/hyprland-0.20.1-r1 fails to build. The relevant error message is the following: Dependency xcb found: YES 1.15 (cached) Dependency libsystemd skipped: feature systemd disabled Dependency wayland-protocols found: YES 1.31 (cached) Run-time dependency hyprland-protocols found: YES 0.1 Dependency wayland-scanner found: YES 1.21.0 (cached) Program /usr/bin/wayland-scanner found: YES (/usr/bin/wayland-scanner) protocols/meson.build:37:1: ERROR: File //usr/share/hyprland-protocols/protocols/hyprland-toplevel-export-v1.xml does not exist. Obviously a "//usr" directory doesn't exist, but also, after checking, the "/usr/share/hyprland-protocols" directory is inexistent. Reproducible: Always Steps to Reproduce: 1. emerge --sync 2. emerge -uD @world Actual Results: Hyprland fails to build Expected Results: Hyprland updated
// will be normalised to /, so that's fine. Obviously the protocols path in full not existing is an issue thuogh.
Can you post the build log please? Did -20.1 build for you and only since -r1 it fails?
Created attachment 849117 [details] hyprland-0.20.1-r1 build log
The version 0.20.1 is the one I'm currently running and it built flawlessly
It appears to be looking on the system for it rather than looking at the bundled copy.
Created attachment 849155 [details] ebuild Could you try the attached ebuild? I'm not sure why it's not working for you (can't reproduce on my side), but I see that upstream has changed the meson.build file and it looks like it just might fix your problem. I update the ebuild to use those commits. ref. https://github.com/hyprwm/hyprland-protocols/commit/ff2a291512c14c035c4b935575f27dc8ee9e0f3f and https://github.com/hyprwm/hyprland-protocols/commit/b8f55e02a328c47ed373133c52483bbfa20a1b75
Thanks! How exactly could I try that ebuild? I never manually applied one myself
The good way is to follow this guide: https://wiki.gentoo.org/wiki/Creating_an_ebuild_repository The quick and dirty way is to cd in /var/db/repos/guru/gui-wm/hyprland extract the ebuild I attached run the command: ebuild hyprland-0.21.1-r2.ebuild digest then you can run: emerge -a hyprland (make sure it is emerging -r2) Note that if you follow the quick & dirty way, the next time you sync ::guru it will warn you about git conflicts, so you must the -r2 ebuild and the Manifest file once you're done
* so you must remove the -r2 ebuild and the Manifest file once you're done
Thanks Julien. I followed the quick & dirty steps and emerged the r2 version, but it failed again. I'm attaching the build log.
Created attachment 849157 [details] hyprland-0.20.1-r2 build log
Created attachment 849165 [details, diff] patch Can you put the attached patch to /etc/portage/patches/gui-wm/hyprland/ (create the directory) Then emerge hyprland-0.21.1-r1
It worked! I forgot to remove the custom ebuild tho, so now I'm running hyprland-0.20.1-r2 hehe. Should I remove it and rebuild?
Great Yes, remove the -r2 from /var/db/repos/guru/gui-wm/hyprland/ Also remove the Manifest, otherwise portage will refuse to sync guru since it will conflict with git
Done. Now when I run emerge --sync && emerge -auDN @world I get the error message as before applying the patch. Is it alright?
The patch should apply to -r1 as well can you run these commands: emerge --sync guru emerge -1 hyprland confirm that it's emerging -0.20.1-r1 Once done (hopefully it compiles correctly), run emerge -auDN @world
Unfortunately not. >>> Verifying ebuild manifests >>> Emerging (1 of 1) gui-wm/hyprland-0.20.1-r1::guru * Applying user patches from /etc/portage/patches ... * Applying 0.21.1-meson.patch protocols/meson.build:37:1: ERROR: File /usr/share/protocols/hyprland-toplevel-export-v1.xml does not exist. The content of /etc/portage/patches/gui-wm/hyprland/0.21.1-meson.patch is diff --git a/protocols/meson.build b/protocols/meson.build index 9d47e0a..d9fc8a6 100644 --- a/protocols/meson.build +++ b/protocols/meson.build @@ -29,7 +29,7 @@ protocols = [ ['pointer-constraints-unstable-v1.xml'], ['tablet-unstable-v2.xml'], ['idle.xml'], - [hl_protocol_dir, 'protocols/hyprland-toplevel-export-v1.xml'] + ['/usr/share', 'protocols/hyprland-toplevel-export-v1.xml'] ] wl_protos_src = [] wl_protos_headers = [] It seems that only with your r2 version was working correctly
uh... but it's looking at the right place now.. I'm confused /usr/share/protocols/hyprland-toplevel-export-v1.xml does not exist. Initial error was: //usr/share/hyprland-protocols/protocols/hyprland-toplevel-export-v1.xml does not exist. Can you paste here the result of: ls /usr/share/*protocols Also, try to remove the patch, and emerge hyprland-0.20.1-r1
For reference, this is what I get: $ ls /usr/share/*protocols /usr/share/protocols: hyprland-toplevel-export-v1.xml /usr/share/wayland-protocols: stable staging unstable
The only matching directory in /usr/share is wayland-protocols, none hyprland-protocols. After removing the patch, now it magically works [ebuild UD ] gui-wm/hyprland-0.20.1-r1 [0.20.1-r2] Would you like to merge these packages? [Yes/No] Yes >>> Verifying ebuild manifests >>> Emerging (1 of 1) gui-wm/hyprland-0.20.1-r1::guru >>> Installing (1 of 1) gui-wm/hyprland-0.20.1-r1::guru >>> Jobs: 1 of 1 complete Load avg: 1.66, 1.66, 1.54
Can you try to emerge -r1 again? I suspect it will fail the second time
You were right: protocols/meson.build:37:1: ERROR: File //usr/share/hyprland-protocols/protocols/hyprland-toplevel-export-v1.xml does not exist. A full log can be found at /var/tmp/portage/gui-wm/hyprland-0.20.1-r1/work/hyprland-0.20.1-build/meson-logs/meson-log.txt
and can you post the output of `ls /usr/share/*protocols` again?
Its this: sicro@sicro ~ $ ls /usr/share/*protocols /usr/share/protocols: hyprland-toplevel-export-v1.xml /usr/share/wayland-protocols: stable staging unstable
I update the ebuild to version 0.21.0 Can you reproduce on this version?
I got a checksum failure >>> Downloading 'https://gentoo.c3sl.ufpr.br/distfiles/e5/hyprland-0.21.0.tar.gz' --2023-01-29 18:18:48-- https://gentoo.c3sl.ufpr.br/distfiles/e5/hyprland-0.21.0.tar.gz Resolving gentoo.c3sl.ufpr.br... 200.236.31.1, 2801:82:80ff:8000::2 Connecting to gentoo.c3sl.ufpr.br|200.236.31.1|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2023-01-29 18:18:49 ERROR 404: Not Found. >>> Downloading 'https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz' --2023-01-29 18:18:49-- https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz Resolving github.com... 20.201.28.151 Connecting to github.com|20.201.28.151|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/hyprwm/Hyprland/tar.>>> Downloading 'https://gentoo.c3sl.ufpr.br/distfiles/e5/hyprland-0.21.0.tar.gz' --2023-01-29 18:18:48-- https://gentoo.c3sl.ufpr.br/distfiles/e5/hyprland-0.21.0.tar.gz Resolving gentoo.c3sl.ufpr.br... 200.236.31.1, 2801:82:80ff:8000::2 Connecting to gentoo.c3sl.ufpr.br|200.236.31.1|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2023-01-29 18:18:49 ERROR 404: Not Found. >>> Downloading 'https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz' --2023-01-29 18:18:49-- https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz Resolving github.com... 20.201.28.151 Connecting to github.com|20.201.28.151|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/hyprwm/Hyprland/tar.gz/refs/tags/v0.21.0beta [following] --2023-01-29 18:18:49-- https://codeload.github.com/hyprwm/Hyprland/tar.gz/refs/tags/v0.21.0beta Resolving codeload.github.com... 20.201.28.149 Connecting to codeload.github.com|20.201.28.149|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/x-gzip] Saving to: ‘/var/cache/distfiles/hyprland-0.21.0.tar.gz.__download__’ 0K .......... .......... .......... .......... .......... 453K 50K .......... .......... .......... .......... .......... 884K 100K .......... .......... .......... .......... .......... 23.9M 150K .......... .......... .......... .......... .......... 825K 200K .......... .......... .......... .......... .......... 54.6M 250K .......... .......... .......... .......... .......... 9.59M 300K .......... .......... .......... .......... .......... 941K 350K .......... .......... .......... .......... .......... 23.2M 400K .......... .......... .......... .......... .......... 17.6M 450K .......... .......... .......... .......... .......... 11.2M 500K .......... .......... .......... .......... .......... 279M 550K .......... .......... .......... .......... .......... 17.6M 600K .......... .......... .......... .......... .......... 43.3M 650K .......... .......... .......... .......... ....... 20.3M=0.3s 2023-01-29 18:18:50 (2.24 MB/s) - ‘/var/cache/distfiles/hyprland-0.21.0.tar.gz.__download__’ saved [714570] !!! Fetched file: hyprland-0.21.0.tar.gz VERIFY FAILED! !!! Reason: Filesize does not match recorded size !!! Got: 714570 !!! Expected: 714547 Refetching... File renamed to '/var/cache/distfiles/hyprland-0.21.0.tar.gz._checksum_failure_.pm74g34f' !!! Couldn't download 'hyprland-0.21.0.tar.gz'. Aborting. * Fetch failed for 'gui-wm/hyprland-0.21.0', Log file: * '/var/tmp/portage/gui-wm/hyprland-0.21.0/temp/build.log'gz/refs/tags/v0.21.0beta [following] --2023-01-29 18:18:49-- https://codeload.github.com/hyprwm/Hyprland/tar.gz/refs/tags/v0.21.0beta Resolving codeload.github.com... 20.201.28.149 Connecting to codeload.github.com|20.201.28.149|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/x-gzip] Saving to: ‘/var/cache/distfiles/hyprland-0.21.0.tar.gz.__download__’ 0K .......... .......... .......... .......... .......... 453K 50K .......... .......... .......... .......... .......... 884K 100K .......... .......... .......... .......... .......... 23.9M 150K .......... .......... .......... .......... .......... 825K 200K .......... .......... .......... .......... .......... 54.6M 250K .......... .......... .......... .......... .......... 9.59M 300K .......... .......... .......... .......... .......... 941K 350K .......... .......... .......... .......... .......... 23.2M 400K .......... .......... .......... .......... .......... 17.6M 450K .......... .......... .......... .......... .......... 11.2M 500K .......... .......... .......... .......... .......... 279M 550K .......... .......... .......... .......... .......... 17.6M 600K .......... .......... .......... .......... .......... 43.3M 650K .......... .......... .......... .......... ....... 20.3M=0.3s 2023-01-29 18:18:50 (2.24 MB/s) - ‘/var/cache/distfiles/hyprland-0.21.0.tar.gz.__download__’ saved [714570] !!! Fetched file: hyprland-0.21.0.tar.gz VERIFY FAILED! !!! Reason: Filesize does not match recorded size !!! Got: 714570 !!! Expected: 714547 Refetching... File renamed to '/var/cache/distfiles/hyprland-0.21.0.tar.gz._checksum_failure_.pm74g34f' !!! Couldn't download 'hyprland-0.21.0.tar.gz'. Aborting. * Fetch failed for 'gui-wm/hyprland-0.21.0', Log file: * '/var/tmp/portage/gui-wm/hyprland-0.21.0/temp/build.log'
Oh, that's because upstream re-released 0.21.0, resulting in a different checksum. I updated the ebuild, but until guru dev is merged into master, it won't be installable. I'll let you know when to try again
Alright! Thanks :D
The new manifest is now in master so if you sync ::guru you should be able to upgrade to 0.21.0 now Let me know if the original issue is still happening and post the build.log again Also, the output of `emerge --info` would be helpful as well. Thanks!
The original error persists also with 0.21.0. There is an open issue upstream: https://github.com/hyprwm/Hyprland/issues/1207 The problem needs to be fixed upstream but in the mean time you could try to identify where the meson build tries to access this file and create a patch to fix it.
Julien, I synced all my repositories but I still get the checksum error. This is the relevant output: >>> Downloading 'https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz' --2023-01-30 18:05:32-- https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz Resolving github.com... 20.201.28.151 Connecting to github.com|20.201.28.151|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/hyprwm/Hyprland/tar.gz/refs/tags/v0.21.0beta [following] --2023-01-30 18:05:33-- https://codeload.github.com/hyprwm/Hyprland/tar.gz/refs/tags/v0.21.0beta Resolving codeload.github.com... 20.201.28.149 Connecting to codeload.github.com|20.201.28.149|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/x-gzip] Saving to: ‘/var/cache/distfiles/hyprland-0.21.0.tar.gz.__download__’ 0K .......... .......... .......... .......... .......... 520K 50K .......... .......... .......... .......... .......... 1.91M 100K .......... .......... .......... .......... .......... 1.73M 150K .......... .......... .......... .......... .......... 12.0M 200K .......... .......... .......... .......... .......... 1.07M 250K .......... .......... .......... .......... .......... 16.8M 300K .......... .......... .......... .......... .......... 10.7M 350K .......... .......... .......... .......... .......... 15.1M 400K .......... .......... .......... .......... .......... 1.39M 450K .......... .......... .......... .......... .......... 8.66M 500K .......... .......... .......... .......... .......... 23.4M 550K .......... .......... .......... .......... .......... 13.6M 600K .......... .......... .......... .......... .......... 6.42M 650K .......... .......... .......... .......... ........ 198M=0.3s 2023-01-30 18:05:33 (2.58 MB/s) - ‘/var/cache/distfiles/hyprland-0.21.0.tar.gz.__download__’ saved [715422] !!! Fetched file: hyprland-0.21.0.tar.gz VERIFY FAILED! !!! Reason: Filesize does not match recorded size !!! Got: 715422 !!! Expected: 714570 Refetching... File renamed to '/var/cache/distfiles/hyprland-0.21.0.tar.gz._checksum_failure_.w3l6dyoa' !!! Couldn't download 'hyprland-0.21.0.tar.gz'. Aborting. * Fetch failed for 'gui-wm/hyprland-0.21.0', Log file: * '/var/tmp/portage/gui-wm/hyprland-0.21.0/temp/build.log'
That's unfortunate. I guess I should've rev-bumped the ebuild. (I will do that) Meanwhile, you can remove /var/db/cache/distfiles/hyprland-0.21.0.gh.tar.gz That should clear the manifest issue On a side note, I was able to reproduce your issue, so that will make it easier to troubleshoot.
Like I explained in my previous post, I was able to reproduce the error. The ebuild installed hyprland-protocols, which I assume it shouldn't have, because when installed, pkg-config reported the following path as hyprland-protocols' directory: /usr/share/hyprland-protocols when in actuality, it installs it in /usr/share/protocols/ This is fine on the first install, but on subsequent installations, meson detects that hyprland-protocols is already installed so it looks for it in the directory reported by pkg-config, and since it doesn't find it there it gives the error. Now, to fix this, there are two parts: the first is it not install hyprland-protocols during meson_src_install This alone would fix the problem for fresh installs, but if you already have hyprland installed, you'll still have the problem during src_configure To fix that, I included a patch that changes the meson.build in the protocols subdirectory, so that it looks for the protocols in the source folders rather than in the system. With those two fixes in place, I could not reproduce the issue anymore, so I assume it's fixed. The fix is only in guru's dev branch for now, so I will let you know when it's merged to master so you can sync and re-try.
The patch shouldn't be needed after its first use, but since it doesn't hurt to have it, I will keep it in the ebuild for a little while, I think at least for 60 days (assuming there are releases before then), to give everyone who might have this "broken" ebuild installed a change to update with the fix. Without the patch, the workaround is to emerge -C hyprland, then re-emerge it
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=feb04b9534db4886657316d519db700baf180880 commit feb04b9534db4886657316d519db700baf180880 Author: Julien Roy <julien@jroy.ca> AuthorDate: 2023-01-31 01:11:39 +0000 Commit: Julien Roy <julien@jroy.ca> CommitDate: 2023-01-31 01:12:31 +0000 gui-wm/hyprland: add patch for bug 891799 Also fix dependencies for USE="X" Closes: https://bugs.gentoo.org/891799 Signed-off-by: Julien Roy <julien@jroy.ca> gui-wm/hyprland/Manifest | 2 +- gui-wm/hyprland/files/0.21.0-meson.patch | 13 +++++++++++++ .../{hyprland-0.21.0.ebuild => hyprland-0.21.0-r1.ebuild} | 12 ++++++++++-- 3 files changed, 24 insertions(+), 3 deletions(-)
The updated ebuild is now available. Can you sync ::guru and emerge hyprland?
I synced and tried emerging, but I still get the checksum error. Could it be that I have something misconfigured? >>> Downloading 'https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz' --2023-01-31 14:14:51-- https://github.com/hyprwm/Hyprland/archive/v0.21.0beta.tar.gz Resolving github.com... 20.201.28.151 Connecting to github.com|20.201.28.151|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/hyprwm/Hyprland/tar.gz/refs/tags/v0.21.0beta [following] --2023-01-31 14:14:51-- https://codeload.github.com/hyprwm/Hyprland/tar.gz/refs/tags/v0.21.0beta Resolving codeload.github.com... 20.201.28.149 Connecting to codeload.github.com|20.201.28.149|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/x-gzip] Saving to: ‘/var/cache/distfiles/hyprland-0.21.0-r1.tar.gz.__download__’ 0K .......... .......... .......... .......... .......... 463K 50K .......... .......... .......... .......... .......... 921K 100K .......... .......... .......... .......... .......... 10.9M 150K .......... .......... .......... .......... .......... 1.03M 200K .......... .......... .......... .......... .......... 8.92M 250K .......... .......... .......... .......... .......... 12.2M 300K .......... .......... .......... .......... .......... 13.6M 350K .......... .......... .......... .......... .......... 1.26M 400K .......... .......... .......... .......... .......... 14.9M 450K .......... .......... .......... .......... .......... 4.40M 500K .......... .......... .......... .......... .......... 13.9M 550K .......... .......... .......... .......... .......... 13.9M 600K .......... .......... .......... .......... .......... 289M 650K .......... .......... .......... .......... ....... 16.0M=0.3s 2023-01-31 14:14:52 (2.35 MB/s) - ‘/var/cache/distfiles/hyprland-0.21.0-r1.tar.gz.__download__’ saved [714570] !!! Fetched file: hyprland-0.21.0-r1.tar.gz VERIFY FAILED! !!! Reason: Filesize does not match recorded size !!! Got: 714570 !!! Expected: 715422 Refetching... File renamed to '/var/cache/distfiles/hyprland-0.21.0-r1.tar.gz._checksum_failure_.w9z6fyz0' !!! Couldn't download 'hyprland-0.21.0-r1.tar.gz'. Aborting. * Fetch failed for 'gui-wm/hyprland-0.21.0-r1', Log file: * '/var/tmp/portage/gui-wm/hyprland-0.21.0-r1/temp/build.log'
Created attachment 849572 [details] Manifest Well, this is frustrating. It must be because of the (temporary) changes GitHub made yesterday regarding the checksums I commited the new Manifest to guru, but meanwhile, you can use the one attached to this message. Simply extract it to /var/db/repos/guru/gui-wm/hyprland/
Can you sync and try again?
It compiles fine now. I think we can maybe mark this as Resolved
Also, thanks Julien :D
Thanks! Can you compile it a second time just to make sure? :)
Compiled it again with "grimblast" flag and it worked fine
Glad to hear it
Thanks for fixing it :D