Closed alerque closed 1 month ago
Are you using the last commit hyprland-git ?
expo needs today's git. Add -v
to your hyprpm command to see what went wrong
This issue is more about the UX of what do do. The "failed to build" error should probably include a "rerun with --verbose to see messages" if they are not logged somewhere you can tell the user to find them.
And the verbose log gives no useful clues at all, "directory not found" without even saying what directory it expects where.
But no I'm not running Hyprland Git HEAD, I have the latest tagged release (I'm the packager for Arch Linux, so I typically dogfood that package). The plugins repo said it needed at least v0.33 so I figured I was fine. I suppose each plugin should have something that identifies a minimum supported version.
can you paste the output of the verbose run?
The plugins repo said it needed at least v0.33 so I figured I was fine. I suppose each plugin should have something that identifies a minimum supported version.
That is there, if you're on tagged then hyprpm will checkout to a pin for that release and compile all plugins there.
I agree with the UX part, though.
hyprpm update -v
output
well your output just shows you're on an outdated git
what about this build error?
✔ built hyprbars into hyprbars/hyprbars.so
→ Building hyprexpo
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━━━━━━━━━━━ 3 / 5 Building plugin(s)[v] shell returned: -> cd /tmp/hyprpm/new && PKG_CONFIG_PATH="/home/yusuf/.local/share/hyprpm/headersRoot/share/pkgconfig" make -C hyprexpo all
make: Entering directory '/tmp/hyprpm/new'
make: *** hyprexpo: No such file or directory. Stop.
make: Leaving directory '/tmp/hyprpm/new'
✖ Plugin hyprexpo failed to build.
Includes the directory not found error
this is odd.. Do you perhaps have a /tmp cleaner or something? hyprpm uses /tmp/hyprpm/new
to store the source to build while it's doing so.
this is odd.. Do you perhaps have a /tmp cleaner or something? hyprpm uses
/tmp/hyprpm/new
to store the source to build while it's doing so.
shouldn't be, this is a rather fresh arch install. Is there a way to check if I do?
oh wait, I misread the thing.
Uhh yeah hyprexpo won't build cuz you're on tagged. hyprexpo is -git only. (or, well future 0.39)
I tried hyprland-git and barely anything built so I tried hyprland. Lemme try hyprland-git again and see if this changes anything brb
oh wait, I misread the thing.
Uhh yeah hyprexpo won't build cuz you're on tagged. hyprexpo is -git only. (or, well future 0.39)
❯ hyprpm add https://github.com/hyprwm/hyprland-plugins.git --verbose
[v] version returned: Hyprland, built from branch main at commit 10146f5ec50caeae2d835f5f6296137e2ac6f243 dirty (core: fix some crash conditions around workspace ptrs in CWindow).
Date: Wed Apr 3 21:42:38 2024
Tag: v0.38.0-18-g10146f5e
flags: (if any)
[v] parsed commit 10146f5ec50caeae2d835f5f6296137e2ac6f243 at branch main
[...]
→ Building hyprexpo
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━━━━━━━━━━━ 3 / 5 Building plugin(s)[v] shell returned: -> cd /tmp/hyprpm/new && PKG_CONFIG_PATH="/home/yusuf/.local/share/hyprpm/headersRoot/share/pkgconfig" make -C hyprexpo all
make: Entering directory '/tmp/hyprpm/new/hyprexpo'
g++ -shared -fPIC --no-gnu-unique main.cpp overview.cpp -o hyprexpo.so -g `pkg-config --cflags pixman-1 libdrm hyprland` -std=c++2b -Wno-narrowing
overview.cpp: In constructor ‘COverview::COverview(PHLWORKSPACE, bool)’:
overview.cpp:144:37: error: ‘struct SCurrentRenderData’ has no member named ‘blockScreenShader’
144 | g_pHyprOpenGL->m_RenderData.blockScreenShader = true;
| ^~~~~~~~~~~~~~~~~
overview.cpp: In member function ‘void COverview::redrawID(int, bool)’:
overview.cpp:261:33: error: ‘struct SCurrentRenderData’ has no member named ‘blockScreenShader’
261 | g_pHyprOpenGL->m_RenderData.blockScreenShader = true;
| ^~~~~~~~~~~~~~~~~
make: *** [Makefile:2: all] Error 1
make: Leaving directory '/tmp/hyprpm/new/hyprexpo'
✖ Plugin hyprexpo failed to build.
also about the "it only builds for the newest version", shouldn't hyprpm skip the plugin then if it isn't for the version?
it does that. "failed to build" isn't fatal. You can still use those that did.
also about the "it only builds for the newest version"
error indicates you're not on newest. The missing prop the compiler is complaining about is from like ~15 mins ago
Def the error message isn't fatal. Everything else that can build builds, so you can use the plugins that you can. My problem is rather (and prob that of @alerque I think) is that the error messages could be clearer on letting the user know it is not a problem on the code's end but rather on their end (for having a too low version).
yea that's fine and I agreed with that, but if it's just UX, then it's something to do in hyprpm, so it doesn't relate to this repo (plugins don't have anything to do with this)
Ok yeah that is valid, should I create an issue at the hyprland repo then?
Given the UX issue actually belongs on a different repo I guess we can consider keeping this issue for the build problem.
I've just switch to the hyprland-git
package from the AUR on Arch built about an hour ago and am still having the same issue:
$ hyprpm update --verbose
...
Tag: v0.38.0-18-g10146f5e
...
→ Building hyprexpo
━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━━━━━━━━━━━━━━━━ 2 / 4 Updating hyprland-plugins[v] shell returned: -> cd /tmp/hyprpm/update && PKG_CONFIG_PATH="/home/caleb/.local/share/hyprpm/headersRoot/share/pkgconfig" make -C hyprexpo all
make: Entering directory '/tmp/hyprpm/update/hyprexpo'
g++ -shared -fPIC --no-gnu-unique main.cpp overview.cpp -o hyprexpo.so -g `pkg-config --cflags pixman-1 libdrm hyprland` -std=c++2b -Wno-narrowing
overview.cpp: In constructor ‘COverview::COverview(PHLWORKSPACE, bool)’:
overview.cpp:144:37: error: ‘struct SCurrentRenderData’ has no member named ‘blockScreenShader’
144 | g_pHyprOpenGL->m_RenderData.blockScreenShader = true;
| ^~~~~~~~~~~~~~~~~
overview.cpp: In member function ‘void COverview::redrawID(int, bool)’:
overview.cpp:261:33: error: ‘struct SCurrentRenderData’ has no member named ‘blockScreenShader’
261 | g_pHyprOpenGL->m_RenderData.blockScreenShader = true;
| ^~~~~~~~~~~~~~~~~
make: *** [Makefile:2: all] Error 1
make: Leaving directory '/tmp/hyprpm/update/hyprexpo'
✖ Plugin hyprexpo failed to build.
This is a different error than I was seeing before the update, but still not a success.
seems to be the same issue as mine, that is simply because the git package isn't on the newest version yet (the one that is like 1h old). Just wait for an update on the package
@Yusuf-Duran I don't think you understand how *-git
packages work in the Arch Linux AUR. They build directly from a fresh clone of the upstream repo default branch, so the version is updated whenever you build it, not when the packaging info was last updated.
My version is quite fresh and was built after @vaxerski said I needed a current one, so presumable whatever commits were needed for support would have been included as of then.
Okay several issues:
Tag: v0.38.0-21-g36a8ae9b
works (to build at least, haven't tried using it) given those other points.
This brings us back to UX. The experience of trying to build plugins is quite opaque and the errors point nowhere useful for any of this. The running sessions vs. downloaded vendored copy of hyprland source code needs to be explained, as does the issue wind needing to be in a running copy, and of course plugins should clearly identify a minimum version and that should produce a different error than any of the above.
makes sense. I'll try to do something about the UX tomorrow.
I've added some stuff so that it's like this now:
worth noting it won't work retroactively, it's available in git now. Is that enough?
Ignore the duplicate bars its me being a bit goof
not working for me
deleted /usr/include/hyprland and switched to hyprland-git solved it for me just now
Build failing for me even in hyprland-git.
build failing for me on latest hyprland built from source
Build if failing for me too. The versbose command outputs the same thing as @Mr-Ples
yes maybe because I havent updated them 2 seconds after a breaking hyprland change. Can we stop the spam? If you want your plugins to build 100% of the time, stick to releases
As a follow up to #105, hyprexpo is now in the manifest, but it doesn't build. All the other plugins in the manifest seem to have built, and no logs or useful errors are output:
Perhaps a user hint for what to do next when a build fails would be a good thing to add to the output. Is there a place to find build logs even?