Package Details: hyprland-git 0.45.0.r18.3fb47372-1

Git Clone URL: https://aur.archlinux.org/hyprland-git.git (read-only, click to copy)
Package Base: hyprland-git
Description: Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks
Upstream URL: https://github.com/hyprwm/Hyprland
Licenses: BSD-3-Clause
Conflicts: hyprland
Provides: hyprland
Submitter: hertog
Maintainer: Vaxry (zjeffer, alba4k)
Last Packager: alba4k
Votes: 97
Popularity: 8.47
First Submitted: 2022-04-12 20:26 (UTC)
Last Updated: 2024-11-21 17:56 (UTC)

Dependencies (54)

Required by (59)

Sources (2)

Pinned Comments

zjeffer commented on 2024-07-17 16:50 (UTC) (edited on 2024-07-17 16:52 (UTC) by zjeffer)

Tips & tricks, common issues

using ccache/sccache

Precompiled headers (PCH) was enabled by default, this would most likely invalidate the compiler cache if any of the upstream header files change. To disable PCH, add the meson build option -Db_pch=false to build().

build() {
  ...
  meson setup build \
    -D b_pch=false
  ...
}

Build with specific pull requests

Use pick_mr <pull request number> at the end of prepare() to merge pull requests locally. For example, to merge https://github.com/hyprwm/Hyprland/pull/6268, use

prepare() {
    ...

    pick_mr 6268
}

Enable legacy renderer

In the build() function, add -D legacy_renderer=true to meson setup

Compilation errors

If you encounter compilation errors, try the following first:

  • If errors are raised by generated source files under protocols/, such as protocols/linux-dmabuf-v1.hpp, then rebuild or install hyprwayland-scanner-git;
  • Compile with makepkg --cleanbuild.

Symbol not declared

Errors like

  • <symbol> was not declared in this scope
  • <symbol> has not been declared

are usually caused by missing headers. Please consider reporting this upstream or creating a pull request if it has not already been done.

Latest Comments

« First ‹ Previous 1 .. 17 18 19 20 21 22 23 24 25 26 27 .. 32 Next › Last »

<deleted-account> commented on 2023-10-16 21:46 (UTC)

@therafal logs?

therafal commented on 2023-10-16 21:33 (UTC)

The latest update, which changes make to Meson, introduces a problem where this package cannot be built without libsystemd. Previously, if it couldn't be found, make simply threw out a warning, but now Meson demands it and terminates compilation. The hyprland-nvidia-git package compiles without any problems using make after today's update.

<deleted-account> commented on 2023-10-16 16:18 (UTC)

@dedguy21 Upstream issue. Someone included wlr header directly in the cpp file, resulting in mangled function names. Report upstream instead here, this is just a build script

EDIT: Fixed.

dedguy21 commented on 2023-10-15 22:45 (UTC)

I'm getting the following error trying to build most recent package: [438/438] Linking target src/Hyprland FAILED: src/Hyprland c++ -o src/Hyprland src/Hyprland.p/Compositor.cpp.o src/Hyprland.p/config_ConfigManager.cpp.o src/Hyprland.p/debug_CrashReporter.cpp.o src/Hyprland.p/debug_HyprCtl.cpp.o src/Hyprland.p/debug_HyprDebugOverlay.cpp.o src/Hyprland.p/debug_HyprNotificationOverlay.cpp.o src/Hyprland.p/debug_Log.cpp.o src/Hyprland.p/events_Devices.cpp.o src/Hyprland.p/events_Layers.cpp.o src/Hyprland.p/events_Misc.cpp.o src/Hyprland.p/events_Monitors.cpp.o src/Hyprland.p/events_Popups.cpp.o src/Hyprland.p/events_Windows.cpp.o src/Hyprland.p/helpers_AnimatedVariable.cpp.o src/Hyprland.p/helpers_BezierCurve.cpp.o src/Hyprland.p/helpers_Color.cpp.o src/Hyprland.p/helpers_MiscFunctions.cpp.o src/Hyprland.p/helpers_Monitor.cpp.o src/Hyprland.p/helpers_Region.cpp.o src/Hyprland.p/helpers_SubsurfaceTree.cpp.o src/Hyprland.p/helpers_Timer.cpp.o src/Hyprland.p/helpers_VarList.cpp.o src/Hyprland.p/helpers_Vector2D.cpp.o src/Hyprland.p/helpers_Watchdog.cpp.o src/Hyprland.p/helpers_WLClasses.cpp.o src/Hyprland.p/helpers_WLListener.cpp.o src/Hyprland.p/helpers_WLSurface.cpp.o src/Hyprland.p/helpers_Workspace.cpp.o src/Hyprland.p/hyprerror_HyprError.cpp.o src/Hyprland.p/init_initHelpers.cpp.o src/Hyprland.p/layout_DwindleLayout.cpp.o src/Hyprland.p/layout_IHyprLayout.cpp.o src/Hyprland.p/layout_MasterLayout.cpp.o src/Hyprland.p/main.cpp.o src/Hyprland.p/managers_AnimationManager.cpp.o src/Hyprland.p/managers_EventManager.cpp.o src/Hyprland.p/managers_HookSystemManager.cpp.o src/Hyprland.p/managers_input_IdleInhibitor.cpp.o src/Hyprland.p/managers_input_InputManager.cpp.o src/Hyprland.p/managers_input_InputMethodRelay.cpp.o src/Hyprland.p/managers_input_Swipe.cpp.o src/Hyprland.p/managers_input_Tablets.cpp.o src/Hyprland.p/managers_input_Touch.cpp.o src/Hyprland.p/managers_KeybindManager.cpp.o src/Hyprland.p/managers_LayoutManager.cpp.o src/Hyprland.p/managers_ProtocolManager.cpp.o src/Hyprland.p/managers_SessionLockManager.cpp.o src/Hyprland.p/managers_ThreadManager.cpp.o src/Hyprland.p/managers_XWaylandManager.cpp.o src/Hyprland.p/plugins_HookSystem.cpp.o src/Hyprland.p/plugins_PluginAPI.cpp.o src/Hyprland.p/plugins_PluginSystem.cpp.o src/Hyprland.p/protocols_FractionalScale.cpp.o src/Hyprland.p/protocols_GlobalShortcuts.cpp.o src/Hyprland.p/protocols_Screencopy.cpp.o src/Hyprland.p/protocols_TextInputV1.cpp.o src/Hyprland.p/protocols_ToplevelExport.cpp.o src/Hyprland.p/protocols_WaylandProtocol.cpp.o src/Hyprland.p/protocols_XDGOutput.cpp.o src/Hyprland.p/render_decorations_CHyprDropShadowDecoration.cpp.o src/Hyprland.p/render_decorations_CHyprGroupBarDecoration.cpp.o src/Hyprland.p/render_decorations_IHyprWindowDecoration.cpp.o src/Hyprland.p/render_Framebuffer.cpp.o src/Hyprland.p/render_OpenGL.cpp.o src/Hyprland.p/render_Renderer.cpp.o src/Hyprland.p/render_Shader.cpp.o src/Hyprland.p/render_Texture.cpp.o src/Hyprland.p/Window.cpp.o -flto -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -pie -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -march=native -O3 -pipe -fno-plt '-Wl,-rpath,$ORIGIN/../subprojects/wlroots' -Wl,-rpath-link,/home/air/.cache/paru/clone/hyprland-git/src/Hyprland/build/subprojects/wlroots -Wl,--start-group protocols/libserver_protos.a subprojects/wlroots/libwlroots.so.12032 subprojects/udis86/liblibudis86.a -rdynamic /usr/lib/libwayland-server.so /usr/lib/libwayland-client.so /usr/lib/libdrm.so /usr/lib/libxkbcommon.so /usr/lib/libpixman-1.so -lm -lrt /usr/lib/libEGL.so /usr/lib/libgbm.so /usr/lib/libGLESv2.so /usr/lib/libudev.so /usr/lib/libseat.so /usr/lib/libdisplay-info.so /usr/lib/libliftoff.so /usr/lib/libinput.so /usr/lib/libxcb.so /usr/lib/libxcb-dri3.so /usr/lib/libxcb-present.so /usr/lib/libxcb-render.so /usr/lib/libxcb-render-util.so /usr/lib/libxcb-shm.so /usr/lib/libxcb-xfixes.so /usr/lib/libxcb-xinput.so /usr/lib/libxcb-composite.so /usr/lib/libxcb-ewmh.so /usr/lib/libxcb-icccm.so /usr/lib/libxcb-res.so /usr/lib/libxcb-errors.so /usr/lib/libcairo.so /usr/lib/libsystemd.so /usr/lib/libGL.so -pthread /usr/lib/libpango-1.0.so /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libharfbuzz.so /usr/lib/libpangocairo-1.0.so -Wl,--end-group /usr/bin/ld: /tmp/ccGVrUDe.ltrans13.ltrans.o: in function `Debug::wlrLog(wlr_log_importance, char const*, __va_list_tag*)': <artificial>:(.text+0x16ba): undefined reference to `wlr_log_get_verbosity()' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed.

drphysics commented on 2023-10-15 19:23 (UTC)

@0xGingi Same thing happening here

0xGingi commented on 2023-10-15 19:11 (UTC) (edited on 2023-10-15 19:12 (UTC) by 0xGingi)

Failing to build

FAILED: src/Hyprland ...

/usr/bin/ld: /tmp/ccSngiPp.ltrans12.ltrans.o: in function `Debug::wlrLog(wlr_log_importance, char const, __va_list_tag)':

<artificial>:(.text+0x18fe): undefined reference to `wlr_log_get_verbosity()'

collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed.

<deleted-account> commented on 2023-10-14 21:16 (UTC)

@ezkha

Updated and switched to meson due to the ridiculous chmod -R 777 in the Makefile.

Currently meson build and cmake build install wlr headers inconsistently, but this shouldn't affect plugin compilation.

But there are still upstream issues that prevent building. If you can't build because of version.h, add pick_mr 3571 to prepare().

Try cleanbuild without ccache/sccache if you have problems.

EDIT: Works now, version.h problem fixed.

ezkha commented on 2023-10-14 18:11 (UTC) (edited on 2023-10-14 18:15 (UTC) by ezkha)

Fails to build on this commit because there is "No rule to make target 'fixwlr'". Might also fail on previous commits.

$ makepkg -si
[...]
==> Starting prepare()...
Submodule 'subprojects/hyprland-protocols' (https://github.com/hyprwm/hyprland-protocols) registered for path 'subprojects/hyprland-protocols'
Submodule 'subprojects/tracy' (https://github.com/wolfpld/tracy) registered for path 'subprojects/tracy'
Submodule 'subprojects/udis86' (https://github.com/canihavesomecoffee/udis86) registered for path 'subprojects/udis86'
Submodule 'wlroots' (https://gitlab.freedesktop.org/wlroots/wlroots.git) registered for path 'subprojects/wlroots'
Cloning into '/home/ezkha/Source/native/hyprland-git/src/Hyprland/subprojects/hyprland-protocols'...
done.
Cloning into '/home/ezkha/Source/native/hyprland-git/src/Hyprland/subprojects/tracy'...
done.
Cloning into '/home/ezkha/Source/native/hyprland-git/src/Hyprland/subprojects/udis86'...
done.
Cloning into '/home/ezkha/Source/native/hyprland-git/src/Hyprland/subprojects/wlroots'...
done.
Submodule path 'subprojects/hyprland-protocols': checked out '0c2ce70625cb30aef199cb388f99e19a61a6ce03'
Submodule path 'subprojects/tracy': checked out '897aec5b062664d2485f4f9a213715d2e527e0ca'
Submodule path 'subprojects/udis86': checked out '5336633af70f3917760a6d441ff02d93477b0c86'
Submodule path 'subprojects/wlroots': checked out '3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc'
make: *** No rule to make target 'fixwlr'.  Stop.
==> ERROR: A failure occurred in prepare().
    Aborting...

rpi2 commented on 2023-10-07 09:56 (UTC) (edited on 2023-10-07 09:58 (UTC) by rpi2)

sorry, clang-16 & libc++ did not work, maybe Aarch64 need different set options?

<deleted-account> commented on 2023-10-06 16:29 (UTC)

If you use clang, then yes.

Clang-16 cannot be used to build hyprland without using libc++ and some obscure flags. It doesn't work with libstdc++ (GNU's C++ library) for some reason.

Install libc++, then

CC="clang" CXX="clang++" CC_LD=lld CXX_LD=lld meson setup build -Dcpp_args="-stdlib=libc++ -fexperimental-library" -Dcpp_link_args="-stdlib=libc++ -fexperimental-library"

As a rule of thumb, you generally need these flags if you are using clang to build anything that uses C++20 or C++23 features such as ranges or format. You can create a meson native file, for example, to simplify the process

~/.local/share/meson/native/clang_release

[constants]
ldflags=['-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now']
cflags=['-march=native', '-mtune=native', '-O3', '-pipe',
    '-fno-plt', '-fstack-clash-protection', '-fcf-protection']
libcxx = ['-stdlib=libc++', '-fexperimental-library']

[binaries]
c_ld = 'lld'
cpp_ld = 'lld'
rust_ld = '/usr/bin/clang'

[built-in options]
b_lto = true
b_lto_mode = 'thin'
b_thinlto_cache = true
c_args = cflags 
c_link_args = ldflags
cpp_args = cflags + libcxx
cpp_link_args = ldflags + libcxx

Use it in meson like this: meson setup build --native-file=clang_release