shezdy / hyprsplit

hyprland plugin for separate sets of workspaces on each monitor
BSD 3-Clause "New" or "Revised" License
74 stars 3 forks source link

hyprsplit fails to build on Hyprland cba1ade848feac44b2eda677503900639581c3f4 #18

Closed lukeemhigh closed 1 month ago

lukeemhigh commented 1 month ago

Here's the output of hyprpm update -v:

[v] version returned: Hyprland, built from branch  at commit cba1ade848feac44b2eda677503900639581c3f4  (props: bump version to 0.40.0).
Date: Sat May 4 15:42:32 2024
Tag: v0.40.0, commits: 4606

flags: (if any)

[v] parsed commit cba1ade848feac44b2eda677503900639581c3f4 at branch  on Sat May 4 15:42:32 2024, commits 4606

✔ Headers up to date.

 → checking for updates for hyprsplit                                                                                                                                                                           
 → Cloning https://github.com/shezdy/hyprsplit                                                                                                                                                                  
✔ repository hyprsplit has updates.                                                                                                                                                                             
 → Building hyprsplit                                                                                                                                                                                           
✔ found hyprpm manifest                                                                                                                                                                                         
 → Manifest has 8 pins, checking                                                                                                                                                                                
✔ commit pin ed317e19a8a4e46b339b2d28d1380b5ad1c24eaf matched hl, resetting                                                                                                                                     
 → Building hyprsplit                                                                                                                                                                                           
 ━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━━━━━━━━━━━━━━━━  2 / 4  Updating hyprsplit[v] shell returned:  -> cd /tmp/hyprpm/lukeemhigh && PKG_CONFIG_PATH="/home/lukeemhigh/.local/share/hyprpm/headersRoot/share/pkgconfig" make all
g++ -shared -fPIC --no-gnu-unique -Wall -g -DWLR_USE_UNSTABLE -std=c++23 -O2 `pkg-config --cflags pixman-1 libdrm hyprland` src/main.cpp -o hyprsplit.so
In file included from /home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/src/includes.hpp:52,
                 from /home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/src/defines.hpp:1,
                 from /home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/src/Compositor.hpp:7,
                 from src/main.cpp:1:
/home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/wlroots-hyprland/wlr/types/wlr_layer_shell_v1.h:16:10: fatal error: wlr-layer-shell-unstable-v1-protocol.h: No such file or directory
   16 | #include "wlr-layer-shell-unstable-v1-protocol.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:7: all] Error 1

✖ Plugin hyprsplit failed to build.
  This likely means that the plugin is either outdated, not yet available for your version, or broken.
  If you are on -git, update first.
  Try re-running with -v to see more verbose output.
✔ updated hyprsplit                                                                                                                                                                                             
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  4 / 4  Done!                                                                                                                                               
✔ Ensuring plugin load state
✔ Plugin load state ensured
FlorianPallas commented 1 month ago

You need to install hyprwayland-scanner, since it is a new make dependency for Hyprland 0.40 ^^

lukeemhigh commented 1 month ago

I installed hyprwayland-scanner but got the same result. Plugin fails to build. Here's the log of a failing fresh installation:

$ hyprwayland-scanner --version
0.3.6

$ hyprpm add https://github.com/shezdy/hyprsplit -v
[v] version returned: Hyprland, built from branch  at commit cba1ade848feac44b2eda677503900639581c3f4  (props: bump version to 0.40.0).
Date: Sat May 4 15:42:32 2024
Tag: v0.40.0, commits: 4606

flags: (if any)

[v] parsed commit cba1ade848feac44b2eda677503900639581c3f4 at branch  on Sat May 4 15:42:32 2024, commits 4606
✔ adding a new plugin repository from https://github.com/shezdy/hyprsplit
  MAKE SURE that you trust the authors. DO NOT install random plugins without verifying the code and author.
  Are you sure? [Y/n] y

 → Cloning https://github.com/shezdy/hyprsplit                                                                                                                                                                  
✔ cloned                                                                                                                                                                                                        
✔ found hyprpm manifest                                                                                                                                                                                         
✔ parsed manifest, found 1 plugins:                                                                                                                                                                             
 → hyprsplit by shezdy version                                                                                                                                                                                  
 → Manifest has 8 pins, checking                                                                                                                                                                                
✔ commit pin ed317e19a8a4e46b339b2d28d1380b5ad1c24eaf matched hl, resetting                                                                                                                                     
✔ Hyprland headers OK                                                                                                                                                                                           
 → Building hyprsplit                                                                                                                                                                                           
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━━━━━━━━━━━  3 / 5  Building plugin(s)[v] shell returned:  -> cd /tmp/hyprpm/lukeemhigh && PKG_CONFIG_PATH="/home/lukeemhigh/.local/share/hyprpm/headersRoot/share/pkgconfig" make all
g++ -shared -fPIC --no-gnu-unique -Wall -g -DWLR_USE_UNSTABLE -std=c++23 -O2 `pkg-config --cflags pixman-1 libdrm hyprland` src/main.cpp -o hyprsplit.so
In file included from /home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/src/includes.hpp:52,
                 from /home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/src/defines.hpp:1,
                 from /home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/src/Compositor.hpp:7,
                 from src/main.cpp:1:
/home/lukeemhigh/.local/share/hyprpm/headersRoot/include/hyprland/wlroots-hyprland/wlr/types/wlr_layer_shell_v1.h:16:10: fatal error: wlr-layer-shell-unstable-v1-protocol.h: No such file or directory
   16 | #include "wlr-layer-shell-unstable-v1-protocol.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:7: all] Error 1

✖ Plugin hyprsplit failed to build.                                                                                                                                                                             
  This likely means that the plugin is either outdated, not yet available for your version, or broken.
  If you are on -git, update first.
  Try re-running with -v to see more verbose output.

✔ all plugins built                                                                                                                                                                                             
✔ installed repository                                                                                                                                                                                          
✔ you can now enable the plugin(s) with hyprpm enable                                                                                                                                                           
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Done!                                                                                                                                               

Let me know if I can provide any more meaningful info about my system

FlorianPallas commented 1 month ago

Hmm, that's odd. Sadly I'm no expert when it comes to building C, or Hyprland for that matter. Installing the dependency was the fix for me.. Your logs also show the same commit and pin I have running.

Even though you already tried a fresh plugin install you might try hyprpm update -v -f to force a complete rebuild of headers, hyprland and hyprsplit. If that doesn't help I have no clue :( Good luck!

shezdy commented 1 month ago

you can also try deleting $XDG_DATA_HOME/hyprpm before adding the plugin

lukeemhigh commented 1 month ago

Hmm, that's odd. Sadly I'm no expert when it comes to building C, or Hyprland for that matter. Installing the dependency was the fix for me.. Your logs also show the same commit and pin I have running.

Even though you already tried a fresh plugin install you might try hyprpm update -v -f to force a complete rebuild of headers, hyprland and hyprsplit. If that doesn't help I have no clue :( Good luck!

That did the trick for me, thanks!