Makrennel / hyprland-void

void linux hyprland templates for building with xbps-src
Other
132 stars 15 forks source link

build error while updating, missing hyprlang even tho its installed #21

Closed zmeyka3310 closed 8 months ago

zmeyka3310 commented 8 months ago

-- Checking for modules 'wayland-client;wayland-protocols;libpipewire-0.3;libspa-0.2;libdrm;gbm;hyprlang>=0.2.0' -- No package 'hyprlang' found CMake Error at /usr/share/cmake-3.27/Modules/FindPkgConfig.cmake:607 (message): A required package was not found Call Stack (most recent call first): /usr/share/cmake-3.27/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal) CMakeLists.txt:43 (pkg_check_modules)

-- Configuring incomplete, errors occurred! => ERROR: xdg-desktop-portal-hyprland-1.3.1_1: do_configure: 'CFLAGS="-DNDEBUG ${CFLAGS/ -pipe / }" CXXFLAGS="-DNDEBUG ${CXXFLAGS/ -pipe / }" cmake ${cmake_args} ${configure_args} ${LIBS:+-DCMAKE_C_STANDARD_LIBRARIES="$LIBS"} ${LIBS:+-DCMAKE_CXX_STANDARD_LIBRARIES="$LIBS"} ${wrksrc}/${build_wrksrc}' exited with 1 => ERROR: in do_configure() at common/build-style/cmake.sh:77 => ERROR: xbps-src: failed to build xdg-desktop-portal-hyprland-1.3.1_1 pkg!

basically this

zmeyka3310 commented 8 months ago

removing hyprlang and then building from source and installing it again didnt help

zmeyka3310 commented 8 months ago

built every package one by one, the issue is in hyprpaper

zmeyka3310 commented 8 months ago

removing hyprpaper from the source packages and running the update after that didnt help

zmeyka3310 commented 8 months ago

the issue is xdg-portal-hyprland too

celediel commented 8 months ago

I was able to get everything to build on glibc by adding a few dependencies like so:

diff --git a/srcpkgs/hyprpaper/template b/srcpkgs/hyprpaper/template
index b02e380..b30a890 100644
--- a/srcpkgs/hyprpaper/template
+++ b/srcpkgs/hyprpaper/template
@@ -2,7 +2,7 @@
 pkgname=hyprpaper
 version=0.6.0
 revision=1
-hostmakedepends="pkg-config cmake wayland-devel"
+hostmakedepends="pkg-config cmake wayland-devel hyprlang"
 makedepends="
    pango-devel
    cairo-devel
@@ -11,6 +11,11 @@ makedepends="
    wayland-protocols
    wlroots-devel
    hyprland-protocols
+   file-devel
+   libwebp-devel
+"
+depends="
+   libwebp 
 "
 short_desc="A blazing fast wallpaper utility for wlroots compositors with IPC controls"
 maintainer="Makrennel <makrommel@protonmail.ch>"
diff --git a/srcpkgs/xdg-desktop-portal-hyprland/template b/srcpkgs/xdg-desktop-portal-hyprland/template
index 6cac6be..ef2ec66 100644
--- a/srcpkgs/xdg-desktop-portal-hyprland/template
+++ b/srcpkgs/xdg-desktop-portal-hyprland/template
@@ -9,6 +9,8 @@ hostmakedepends="
    scdoc
    cmake
    git
+   hyprlang
+   sdbus-cpp
 "
 makedepends="
    wayland-devel

Unfortunately, hyprland itself will not build on musl:

[62/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/SessionLockManager.cpp.o                                                                          [17/3812][63/94] Building CXX object CMakeFiles/Hyprland.dir/src/plugins/HookSystem.cpp.o
FAILED: CMakeFiles/Hyprland.dir/src/plugins/HookSystem.cpp.o
/usr/bin/g++ -DHAS_EXECINFO -DHyprland_EXPORTS -DWLR_USE_UNSTABLE -I/builddir/hyprland-0.34.0/. -I/builddir/hyprland-0.34.0/src -I/builddir/hyprland-0.34.0/subprojects/wlroots/include -I/builddir/hyprland-0.34.0/subprojects/wlroots/build/include -I/builddir/hyprland-0.34.0/subprojects/udis86 -I/builddir/hyprland-0.34.0/protocols -I/builddir/hyprland-0.34.0/subprojects/udis86/libudis86 -isystem /usr/include/libdrm -isystem /usr/include/pango-1.0 -isystem /usr/include/harfbuzz -isystem /usr/include/libmount -isystem /usr/include/blkid -isystem /usr/include/fribidi -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -isystem /usr/include/cairo -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -isystem /usr/include/pixman-1 -lexecinfo -O3 -DNDEBUG -std=gnu++23 -O3 -Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith -pthread -Winvalid-pch -include /builddir/hyprland-0.34.0/build/CMakeFiles/Hyprland.dir/cmake_pch.hxx -MD -MT CMakeFiles/Hyprland.dir/src/plugins/HookSystem.cpp.o -MF CMakeFiles/Hyprland.dir/src/plugins/HookSystem.cpp.o.d -o CMakeFiles/Hyprland.dir/src/plugins/HookSystem.cpp.o -c /builddir/hyprland-0.34.0/src/plugins/HookSystem.cpp
In file included from /usr/include/limits.h:8,
                 from /usr/include/c++/13.2/climits:42,
                 from /usr/include/c++/13.2/bits/atomic_wait.h:43,
                 from /usr/include/c++/13.2/bits/atomic_base.h:42,
                 from /usr/include/c++/13.2/bits/shared_ptr_atomic.h:33,
                 from /usr/include/c++/13.2/memory:81,
                 from /builddir/hyprland-0.34.0/src/Compositor.hpp:3,
                 from /builddir/hyprland-0.34.0/./src/pch/pch.hpp:1,
                 from /builddir/hyprland-0.34.0/build/CMakeFiles/Hyprland.dir/cmake_pch.hxx:5,
                 from <command-line>:
/builddir/hyprland-0.34.0/src/plugins/HookSystem.cpp: In member function 'bool CFunctionHook::hook()':
/builddir/hyprland-0.34.0/src/plugins/HookSystem.cpp:193:20: error: expected unqualified-id before numeric constant
  193 |     const auto     PAGESIZE  = sysconf(_SC_PAGE_SIZE);
      |                    ^~~~~~~~
[64/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/input/Touch.cpp.o
[65/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/input/IdleInhibitor.cpp.o
[66/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/XWaylandManager.cpp.o
[67/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/input/InputMethodRelay.cpp.o
[68/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/input/Swipe.cpp.o
[69/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/KeybindManager.cpp.o
[70/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/input/Tablets.cpp.o
[71/94] Building CXX object CMakeFiles/Hyprland.dir/src/config/ConfigManager.cpp.o
[72/94] Building CXX object CMakeFiles/Hyprland.dir/src/protocols/FractionalScale.cpp.o
[73/94] Building CXX object CMakeFiles/Hyprland.dir/src/protocols/GlobalShortcuts.cpp.o
[74/94] Building CXX object CMakeFiles/Hyprland.dir/src/plugins/PluginSystem.cpp.o
[75/94] Building CXX object CMakeFiles/Hyprland.dir/src/plugins/PluginAPI.cpp.o
[76/94] Building CXX object CMakeFiles/Hyprland.dir/src/protocols/Screencopy.cpp.o
[77/94] Building CXX object CMakeFiles/Hyprland.dir/src/managers/input/InputManager.cpp.o
[78/94] Building CXX object CMakeFiles/Hyprland.dir/src/protocols/TextInputV1.cpp.o
ninja: build stopped: subcommand failed.
=> ERROR: hyprland-0.34.0_1: do_build: 'cmake --build ./build --config Release --target all -j${XBPS_MAKEJOBS}' exited with 1
=> ERROR:   in do_build() at srcpkgs/hyprland/template:69

Everything else builds on musl with the above patch, but I am unsure about the hyprland issue.

Makrennel commented 8 months ago

Yeah there were a few makedepends missing across both hyprpaper and xdph, should be resolved now.

Unfortunately, hyprland itself will not build on musl:

I'm not really knowledgeable enough on musl to fix musl related issues, but I'd be happy to accept a merge request for it if anyone does know what's going on.

KaiJan57 commented 8 months ago

Concerning the musl problem, upstream has fixed this already; seems like PAGESIZE is already a musl macro. If I find the time I'll try to create a PR