hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.47k stars 898 forks source link

hyprpm update states headers missing #4682

Closed MindfulMinun closed 8 months ago

MindfulMinun commented 9 months ago

Hyprland Version

System/Version info ```sh Hyprland, built from branch HEAD at commit 84ab8d11e8951a6551d1e1bf87796a8589da6d47 (props: bump ver to 0.35.0). Date: Mon Feb 5 01:59:02 2024 Tag: v0.35.0 flags: (if any) System Information: System name: Linux Node name: woof Release: 6.7.4-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Mon, 05 Feb 2024 22:07:49 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo ```

Bug or Regression?

Regression

Description

I'm unable to update my plugins. Running hyprpm update asks me to update once more.

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.                                                                                        
✔ cloned                                                                                                                                                       
✔ checked out to running ver                                                                                                                                   
! configuring Hyprland                                                                                                                                         
✔ configured Hyprland                                                                                                                                          
✖ failed to install headers with error code 2                                                                                                                  
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Failed                                                                                             

✖ Headers missing. Please run hyprpm update to fix those.

How to reproduce

Install hy3, update Hyprland. You'll be unable to update.

Crash reports, logs, images, videos

No response

sevy2011 commented 9 months ago

look here

MindfulMinun commented 8 months ago

Thanks, the solution in the linked issue fixed my problem.

JPDucky commented 8 months ago

Incorrect link @sevy2011

link

tldr: make sure you have cpio installed

DHDcc commented 5 months ago

tldr: make sure you have cpio installed

I have cpio installed but I have the same problem :

❯ hyprpm -v update

[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

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.
[v] will shallow since: Sat Apr 27 15:42:32 2024

✔ cloned
[v] git returned (co): Your branch is up to date with 'origin/main'.

[v] git returned (rs): rm 'subprojects/tracy'
HEAD is now at cba1ade props: bump version to 0.40.0

✔ checked out to running ver
! configuring Hyprland
[v] setting PREFIX for cmake to /home/nathaniel/.local/share/hyprpm/headersRoot
[v] cmake returned: Not searching for unused variables given on the command line.
-- The C compiler identification is GNU 14.1.1
-- The CXX compiler identification is GNU 14.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /sbin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /sbin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Gathering git info
-- Found Python3: /sbin/python3.12 (found version "3.12.3") found components: Interpreter
Building itab.c/itab.h...
-- Setting up wlroots
-- Found PkgConfig: /sbin/pkg-config (found version "2.1.1")
-- Found WaylandScanner at /usr/bin/wayland-scanner
-- Found wayland-protocols at //usr/share/wayland-protocols
-- Configuring Hyprland in Release with CMake
-- Checking deps...
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found OpenGL: /usr/lib/libOpenGL.so  found components: GLES3
-- Checking for modules 'xkbcommon;uuid;wayland-server;wayland-client;wayland-cursor;wayland-protocols;cairo;pango;pangocairo;pixman-1;libdrm;libinput;hwdata;libseat;libdisplay-info;libliftoff;libudev;gbm;hyprwayland-scanner>=0.3.4;hyprlang>=0.3.2;hyprcursor>=0.1.7'
--   Package 'hyprwayland-scanner', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:634 (message):
  The following required packages were not found:

   - hyprwayland-scanner>=0.3.4

Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:862 (_pkg_check_modules_internal)
  CMakeLists.txt:107 (pkg_check_modules)

-- Configuring incomplete, errors occurred!

[v] meson returned: The Meson build system
Version: 1.4.0
Source dir: /tmp/hyprpm/hyprland-nathaniel/subprojects/wlroots-hyprland
Build dir: /tmp/hyprpm/hyprland-nathaniel/subprojects/wlroots-hyprland/build
Build type: native build
Project name: wlroots
Project version: 0.18.0-dev
C compiler for the host machine: cc (gcc 14.1.1 "cc (GCC) 14.1.1 20240507")
C linker for the host machine: cc ld.bfd 2.42.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Winit-self: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wimplicit-fallthrough=2: YES
Compiler for C supports arguments -Wendif-labels: YES
Compiler for C supports arguments -Wstrict-aliasing=2: YES
Compiler for C supports arguments -Woverflow: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Walloca: YES
Compiler for C supports arguments -Wno-missing-braces: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -fmacro-prefix-map=/prefix/to/hide=: YES
Found pkg-config: YES (/sbin/pkg-config) 2.1.1
Run-time dependency wayland-server found: YES 1.22.0
Run-time dependency libdrm found: YES 2.4.120
Run-time dependency xkbcommon found: YES 1.7.0
Run-time dependency pixman-1 found: YES 0.43.4
Library m found: YES
Library rt found: YES
Run-time dependency wayland-protocols found: YES 1.36
Build-time dependency wayland-scanner found: YES 1.22.0
Program /usr/bin/wayland-scanner found: YES (/usr/bin/wayland-scanner)
Has header "linux/dma-buf.h" : YES
Run-time dependency egl found: YES 1.5
Run-time dependency gbm found: YES 24.0.6-arch1.2
Run-time dependency glesv2 found: YES 3.2
Program ./embed.sh found: YES (/tmp/hyprpm/hyprland-nathaniel/subprojects/wlroots-hyprland/render/gles2/shaders/./embed.sh)
Dependency pixman-1 found: YES 0.43.4 (cached)
Dependency gbm found: YES 24.0.6-arch1.2 (cached)
Checking for function "gbm_bo_get_fd_for_plane" with dependency gbm: YES
Run-time dependency libudev found: YES 255
Run-time dependency libseat found: YES 0.8.0
Build-time dependency hwdata found: YES 0.382
Run-time dependency libdisplay-info found: YES 0.1.1
Run-time dependency libliftoff found: YES 0.4.1
Run-time dependency libinput found: YES 1.25.0
Run-time dependency xcb found: YES 1.17.0
Run-time dependency xcb-dri3 found: YES 1.17.0
Run-time dependency xcb-present found: YES 1.17.0
Run-time dependency xcb-render found: YES 1.17.0
Run-time dependency xcb-renderutil found: YES 0.3.10
Run-time dependency xcb-shm found: YES 1.17.0
Run-time dependency xcb-xfixes found: YES 1.17.0
Run-time dependency xcb-xinput found: YES 1.17.0
Run-time dependency wayland-client found: YES 1.22.0
Run-time dependency xwayland found: YES 23.2.6
Dependency xcb found: YES 1.17.0 (cached)
Run-time dependency xcb-composite found: YES 1.17.0
Run-time dependency xcb-ewmh found: YES 0.4.2
Run-time dependency xcb-icccm found: YES 0.4.2
Dependency xcb-render found: YES 1.17.0 (cached)
Run-time dependency xcb-res found: YES 1.17.0
Dependency xcb-xfixes found: YES 1.17.0 (cached)
Run-time dependency xcb-errors found: YES 1.0.1
Checking for function "xcb_xfixes_set_client_disconnect_mode" with dependencies xcb, xcb-composite, xcb-ewmh, xcb-icccm, xcb-render, xcb-res, xcb-xfixes, xcb-errors: YES
Configuring config.h using configuration
Configuring version.h using configuration
Configuring config.h using configuration
Message: Patches found. Applying...
Build targets in project: 136

wlroots 0.18.0-dev

    drm-backend     : YES
    x11-backend     : YES
    libinput-backend: YES
    xwayland        : YES
    gles2-renderer  : YES
    vulkan-renderer : NO
    gbm-allocator   : YES
    session         : YES
    xcb-errors      : YES
    egl             : YES
    libliftoff      : YES

  User defined options
    examples        : false
    renderers       : gles2

Found ninja-1.12.0 at /sbin/ninja

✔ configured Hyprland
[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/nathaniel/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-nathaniel/Makefile && cd /tmp/hyprpm/hyprland-nathaniel && make installheaders
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━  4 / 5  Installing sources[v] installer returned: rm -fr /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland/protocols
mkdir -p /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland/wlroots-hyprland
mkdir -p /home/nathaniel/.local/share/hyprpm/headersRoot/share/pkgconfig
find src -name '*.h*' -print0 | cpio --quiet -0dump /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland
cd subprojects/wlroots-hyprland/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland/wlroots-hyprland && cd ../../..
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland/wlroots-hyprland && cd ../../../..
cp ./protocols/*.h /home/nathaniel/.local/share/hyprpm/headersRoot/include/hyprland/protocols
cp: cannot stat './protocols/*.h': No such file or directory
make: *** [Makefile:101: installheaders] Error 1

✖ failed to install headers with error code 2
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Failed

✖ Headers missing. Please run hyprpm update to fix those. 
vaxerski commented 5 months ago
  The following required packages were not found:

   - hyprwayland-scanner>=0.3.4

please... for god's sake... read...

smjt2000 commented 3 months ago

I have the same error. I installed cpio' andhyprwayland-scanner` is installed.

here is the output for the last step of hyprpm -v update:

✔ configured Hyprland                                                                         
[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/enriquette/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-enriquette/Makefile && cd /tmp/hyprpm/hyprland-enriquette && make installheaders
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━  4 / 5  Installing sources[v] installer returned: # remove previous headers from hyprpm's dir
rm -fr /home/enriquette/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/enriquette/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/enriquette/.local/share/hyprpm/headersRoot/include/hyprland/protocols
mkdir -p /home/enriquette/.local/share/hyprpm/headersRoot/include/hyprland/wlr
mkdir -p /home/enriquette/.local/share/hyprpm/headersRoot/share/pkgconfig
cmake --build ./build --config Release --target generate-protocol-headers
[0/2] Re-checking globbed directories...
[1/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/hyprland-global-shortcuts-v1-protocol.h
[2/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-gamma-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wlr-gamma-control-unstable-v1.hpp
[3/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-foreign-toplevel-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wlr-foreign-toplevel-management-unstable-v1.hpp
[4/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-output-power-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wlr-output-power-management-unstable-v1.hpp
[5/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/virtual-keyboard-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/virtual-keyboard-unstable-v1.hpp
[6/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-screencopy-unstable-v1-protocol.h
[7/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/hyprland-toplevel-export-v1-protocol.h
[8/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/text-input-unstable-v1-protocol.h
[9/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-virtual-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wlr-virtual-pointer-unstable-v1.hpp
[10/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/input-method-unstable-v2.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/input-method-unstable-v2.hpp
[11/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-output-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wlr-output-management-unstable-v1.hpp
[12/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/kde-server-decoration.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/kde-server-decoration.hpp
[13/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-data-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wlr-data-control-unstable-v1.hpp
[14/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/hyprland-focus-grab-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/hyprland-focus-grab-v1.hpp
[15/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wlr-layer-shell-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wlr-layer-shell-unstable-v1.hpp
[16/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wayland-drm.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wayland-drm.hpp
[17/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/tearing-control-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/tearing-control-v1.hpp
[18/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/fractional-scale-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/fractional-scale-v1.hpp
[19/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/xdg-output-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/xdg-output-unstable-v1.hpp
[20/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/cursor-shape-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/cursor-shape-v1.hpp
[21/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/idle-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/idle-inhibit-unstable-v1.hpp
[22/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/relative-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/relative-pointer-unstable-v1.hpp
[23/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/xdg-decoration-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/xdg-decoration-unstable-v1.hpp
[24/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/alpha-modifier-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/alpha-modifier-v1.hpp
[25/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/ext-foreign-toplevel-list-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/ext-foreign-toplevel-list-v1.hpp
[26/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/pointer-gestures-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/pointer-gestures-unstable-v1.hpp
[27/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/keyboard-shortcuts-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/keyboard-shortcuts-inhibit-unstable-v1.hpp
[28/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/text-input-unstable-v3.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/text-input-unstable-v3.hpp
[29/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/pointer-constraints-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/pointer-constraints-unstable-v1.hpp
[30/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/xdg-activation-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/xdg-activation-v1.hpp
[31/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/ext-idle-notify-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/ext-idle-notify-v1.hpp
[32/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/ext-session-lock-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/ext-session-lock-v1.hpp
[33/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/presentation-time.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/presentation-time.hpp
[34/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/tablet-v2.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/tablet-v2.hpp
[35/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/xdg-shell.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/xdg-shell.hpp
[36/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/xwayland-shell-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/xwayland-shell-v1.hpp
[37/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/primary-selection-unstable-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/primary-selection-unstable-v1.hpp
[38/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/viewporter.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/viewporter.hpp
[39/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/linux-dmabuf-v1.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/linux-dmabuf-v1.hpp
[40/41] Generating /tmp/hyprpm/hyprland-enriquette/protocols/wayland.cpp, /tmp/hyprpm/hyprland-enriquette/protocols/wayland.hpp
find src -name '*.h*' -print0 | cpio --quiet -0dump /home/enriquette/.local/share/hyprpm/headersRoot/include/hyprland
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/enriquette/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
/bin/sh: line 1: cd: subprojects/wlroots-hyprland/include/wlr: No such file or directory
make: *** [Makefile:56: installheaders] Error 1

✖ failed to install headers with error code 2                                                 
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Failed                            

✖ Headers missing. Please run hyprpm update to fix those.

I renamed headersRoot to _headersRoot and tried again but got the same error.

vincenthasper commented 2 months ago

In addition to the cpio and cmake packages, you also need to install meson. This used to be in the manual, but they removed this package from the manual for some reason.

fufexan commented 2 months ago

@vincenthasper It was removed from the latest 0.42 version since meson is no longer needed (wlroots was the only thing that required meson).

vincenthasper commented 2 months ago

@fufexan Oh weird, I had the same issue yesterday and after I installed meson the issue was fixed and the header files were installed correctly.

fufexan commented 2 months ago

@vincenthasper I think it depends which version you're on. It shouldn't be required for 0.42 and newer.