Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't hyprpm update #6232

Closed
freerig opened this issue May 25, 2024 · 36 comments
Closed

Can't hyprpm update #6232

freerig opened this issue May 25, 2024 · 36 comments
Labels
bug Something isn't working stale Not much going on

Comments

@freerig
Copy link

freerig commented May 25, 2024

Hyprland Version

System/Version info
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)


System Information:
System name: Linux
Node name: Oscarounet
Release: 6.9.1-arch1-2
Version: #1 SMP PREEMPT_DYNAMIC Wed, 22 May 2024 13:47:07 +0000


GPU information: 
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7) (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


plugins:

Bug or Regression?

Regression

Description

Can't hyprpm update :

$ 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

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

 ╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  0 / 5  Cloning the hyprland repository                                                                                                                     
✖ Could not clone the hyprland repository. shell returned:
Clonage dans 'hyprland-quelquun'...
fatal : error when processing superficiality information : 4

How to reproduce

Type the hyprpm update command, on hyprland stable arch, with hyprland-plugins

Crash reports, logs, images, videos

I did all my yay -Syu and sudo pacman -Syu

@freerig freerig added the bug Something isn't working label May 25, 2024
@yawor
Copy link

yawor commented May 25, 2024

If you're using hyprland from the official Arch repo, then you can do something like this:

cd ~/.local/share/hyprpm/headersRoot
rm -rf include/hyprland
rm share/pkgconfig/hyprland.pc
ln -sf /usr/include/hyprland include/hyprland
ln -sf /usr/share/pkgconfig/hyprland.pc share/hyprland.pc

Hyprpm stopped using system provided hyprland headers because it caused some issues with some distributions, but in Arch the hyprland package provides correct header files, so there's no need to clone them from git. This creates symlinks back to the system provided hyprland headers.

@yawor
Copy link

yawor commented May 25, 2024

BTW, before you try the solution from my previous comment, can you try running hyprpm like this?

LANG=C hyprpm update -v

@vaxerski
Copy link
Member

@fufexan

@fufexan
Copy link
Member

fufexan commented May 25, 2024

We're working on it #6181.

@fufexan
Copy link
Member

fufexan commented May 25, 2024

Can you update hyprland and try again? I've just merged the fix.

@freerig
Copy link
Author

freerig commented May 27, 2024

1st try

BTW, before you try the solution from my previous comment, can you try running hyprpm like this?

LANG=C hyprpm update -v
Shel returned : $ LANG=C hyprpm update -v

[v] version returned: Hyprland, built from branch at commit cba1ade (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 cba1ade at branch on Sat May 4 15:42:32 2024, commits 4606

╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0 / 5 Cloning the hyprland re! Cloning https://github.com/hyprwm/hyprland, this might take a moment.
╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0 / 5 Cloning the hyprland re[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/quelquun/.local/share/hyprpm/headersRoot
[v] cmake returned: sh: line 1: cmake: command not found

[v] meson returned: The Meson build system
Version: 1.4.0
Source dir: /tmp/hyprpm/hyprland-quelquun/subprojects/wlroots-hyprland
Build dir: /tmp/hyprpm/hyprland-quelquun/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 20240522")
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 (/usr/bin/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.8-arch1.1
Run-time dependency glesv2 found: YES 3.2
Program ./embed.sh found: YES (/tmp/hyprpm/hyprland-quelquun/subprojects/wlroots-hyprland/render/gles2/shaders/./embed.sh)
Dependency pixman-1 found: YES 0.43.4 (cached)
Dependency gbm found: YES 24.0.8-arch1.1 (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 24.1.0
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.1 at /usr/bin/ninja

✔ configured Hyprland
[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/quelquun/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-quelquun/Makefile && cd /tmp/hyprpm/hyprland-quelquun && make installheaders
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━ 4 / 5 Installing sources[v] installer returned: You need to run make all first.
make: *** [Makefile:91: installheaders] Error 1

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

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

Didn't work

2nd try

If you're using hyprland from the official Arch repo, then you can do something like this:

cd ~/.local/share/hyprpm/headersRoot
rm -rf include/hyprland
rm share/pkgconfig/hyprland.pc
ln -sf /usr/include/hyprland include/hyprland
ln -sf /usr/share/pkgconfig/hyprland.pc share/hyprland.pc

Hyprpm stopped using system provided hyprland headers because it caused some issues with some distributions, but in Arch the hyprland package provides correct header files, so there's no need to clone them from git. This creates symlinks back to the system provided hyprland headers.

Didn't work

3rd try

Can you update hyprland and try again? I've just merged the fix.

I sudo pacman -Syu but didn't work. I think it's because I'm using hyprland stable. I'll wait a bit :(

@yawor
Copy link

yawor commented May 27, 2024

I'm using hyprland stable on Arch and I have no issues with hyprpm (I use hy3 installed via hyprpm). Maybe you're missing some build dependencies in your system. I see you don't have cmake installed. Maybe try installing it and try again?

@freerig
Copy link
Author

freerig commented May 27, 2024

(french)

$ sudo pacman -S cmake

résolution des dépendances…
recherche des conflits entre paquets…

Paquets (3) cppdap-1.58.0-1 rhash-1.4.4-1 cmake-3.29.3-1

Taille totale installée : 75,10 MiB

:: Procéder à l’installation ? [O/n] O
(3/3) vérification des clés dans le trousseau [----------------------------------] 100%
(3/3) vérification de l’intégrité des paquets [----------------------------------] 100%
(3/3) chargement des fichiers des paquets [----------------------------------] 100%
(3/3) analyse des conflits entre fichiers [----------------------------------] 100%
(3/3) vérification de l’espace disque disponible [----------------------------------] 100%
:: Traitement des changements du paquet…
(1/3) installation de rhash [----------------------------------] 100%
(2/3) installation de cppdap [----------------------------------] 100%
(3/3) installation de cmake [----------------------------------] 100%
Dépendances optionnelles pour cmake
make: for unix Makefile generator [installé]
ninja: for ninja generator [installé]
qt6-base: cmake-gui [installé]
:: Exécution des crochets (« hooks ») de post-transaction…
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating the MIME type database...
(3/4) Updating icon theme caches...
(4/4) Updating the desktop file MIME type cache...
[quelquun@Oscarounet ~]$ hyprpm update

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.
╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0 / 5 Cloning the hyprland repository
✖ Could not clone the hyprland repository. shell returned:
Clonage dans 'hyprland-quelquun'...
fatal : erreur lors du traitement de l'information de superficialité : 4

No, didn't work. Boohoohoo

@yawor
Copy link

yawor commented May 27, 2024

Try again with

LANG=C hyprpm update -v

Last time it helped go further (even though it still failed afterwards). It seems that having git command output messages in French (or rather non-English) may not be what hyprpm expects.

@yawor
Copy link

yawor commented May 27, 2024

I think the issue is with this line:

removeBeginEndSpacesTabs(HLVER.date).empty() ? "" : execAndGet("LC_TIME=\"en_US.UTF-8\" date --date='" + HLVER.date + " - 1 weeks' '+\%a \%b \%d \%H:\%M:\%S \%Y'");

The execAndGet() call (it wraps the popen() call) tries here to set the LC_TIME to retrieve date and time value, which is then used with the git command to do shallow clone to speed up the cloning process. But I don't think popen works like that. The way the LC_TIME is set for the command here is specific for the shell (for example bash), but popen doesn't start the command it a shell, so the variable is not set here at all. So in the end a system-wide locale is used. In your case it's French.

I think this should be called using /usr/bin/env command.

The second issue is setting the LC_TIME to en_US.UTF-8. There's no guarantee that this locale is present in every system. It's better to use the C locale instead.

So with both changes, this should look like this:

    const std::string SHALLOW_DATE =
        removeBeginEndSpacesTabs(HLVER.date).empty() ? "" : execAndGet("env LC_TIME=C date --date='" + HLVER.date + " - 1 weeks' '+\%a \%b \%d \%H:\%M:\%S \%Y'");

@yawor
Copy link

yawor commented May 28, 2024

@vaxerski @fufexan

Continuing on my last comment, I think there's not even a need for using date command to get timestamp for shallow clone. Since version 2.20.1, git supports relative date definition for --shallow-since option. So instead retrieving date 1 week in the past using the date command and using it with git command, you can just do:

git clone --recursive https://github.com/hyprwm/hyprland --shallow-since="1 week ago"

Git 2.20.1 came out 6 years ago, so I think it's rather safe to assume that everyone using hyprland already have a newer version.

Anyway is there a specific reason why the clone is shallowed since 1 week in the past? Can't hyprpm just use --depth option and shallow clone, for example, last 50 commits instead?

@vaxerski
Copy link
Member

we need 1 week before a set timestamp, not 1 week before whenever the command is ran

@yawor
Copy link

yawor commented May 28, 2024

Ah, yes. That makes more sense. Anyway, setting LC_TIME still needs to be fixed.

@vaxerski
Copy link
Member

MRs welcome

@yawor
Copy link

yawor commented May 29, 2024

Ok, I don't think any changes are necessary in the end. I've just tried hyprpm update from git main and it seems that setting environment variable like that works ok. So I'm sorry for saying it's a bug as it clearly is not. I was in the wrong here.

I'd still change locale from en_US.UTF-8 to C though. But I don't think there's a necessity to create an MR for such a small change. It's going to work anyway, but some commands may print a warning to stderr that locale doesn't exists if it's not generated. It seems that date doesn't do that though (although it may be OS dependent, idk).

@ArikRahman
Copy link

Same issue here on nixos

@KCkingcollin
Copy link

same issue on manjaro, not on arch though strangely enough, works fine on arch

@KCkingcollin
Copy link

KCkingcollin commented Jun 5, 2024

same issue on manjaro, not on arch though strangely enough, works fine on arch

seems to just be a out of date package in the manjaro repos, the git version seems to work just fine

@freerig
Copy link
Author

freerig commented Jun 5, 2024

I think I need to wait for the next stable release and see what appends. Also, I installed the en_US.UTF-8 stuff but still doesn't work.

@KCkingcollin
Copy link

KCkingcollin commented Jun 10, 2024

I think I need to wait for the next stable release and see what appends. Also, I installed the en_US.UTF-8 stuff but still doesn't work.

I figured out my problem, the extra repos in arch don't have an essential package as a depend for some reason, I think it's called hyprwayland-scanner, and I tried to tell the repo maintainer that it was missing depends, but had issues making an account for some reason

@vaxerski
Copy link
Member

from 0.41.0 hyprpm should print out missing packages

@yawor
Copy link

yawor commented Jun 11, 2024

I think I need to wait for the next stable release and see what appends. Also, I installed the en_US.UTF-8 stuff but still doesn't work.

I figured out my problem, the extra repos in arch don't have an essential package as a depend for some reason, I think it's called hyprwayland-scanner, and I tried to tell the repo maintainer that it was missing depends, but had issues making an account for some reason

To be honest, hyprwayland-scanner is a build dependency. If someone doesn't use hyprpm then that package is not needed at all. I think that (at least in ArchLinux) it would be better to package hyprpm separately from hyprland and add hyprwayland-scanner as a dependency to that package. Unfortunately I don't have an account on ArchLinux's GitLab to suggest that and they've disabled registration because of a lot of spam.

@KCkingcollin
Copy link

KCkingcollin commented Jun 11, 2024

I think I need to wait for the next stable release and see what appends. Also, I installed the en_US.UTF-8 stuff but still doesn't work.

I figured out my problem, the extra repos in arch don't have an essential package as a depend for some reason, I think it's called hyprwayland-scanner, and I tried to tell the repo maintainer that it was missing depends, but had issues making an account for some reason

To be honest, hyprwayland-scanner is a build dependency. If someone doesn't use hyprpm then that package is not needed at all. I think that (at least in ArchLinux) it would be better to package hyprpm separately from hyprland and add hyprwayland-scanner as a dependency to that package. Unfortunately I don't have an account on ArchLinux's GitLab to suggest that and they've disabled registration because of a lot of spam.

I whole heartedly disagree, hyprpm is the only official way to get plugins into hyprland, which imo is an integral feature, without plugins hyprland is barley a DE, and especially without hy3 considering there's no obvious way to change the looks of the normal tabs for groups, but I would agree that if hyprwayland-scanner doesn't come with the package then hyprpm should at least be packaged separately with its own depends.

In either case there's a package in the arch repos that is not functional because of missing depends, hopefully one of us gets an account soon to be able to at least tell them that

@yawor
Copy link

yawor commented Jun 11, 2024

I think I need to wait for the next stable release and see what appends. Also, I installed the en_US.UTF-8 stuff but still doesn't work.

I figured out my problem, the extra repos in arch don't have an essential package as a depend for some reason, I think it's called hyprwayland-scanner, and I tried to tell the repo maintainer that it was missing depends, but had issues making an account for some reason

To be honest, hyprwayland-scanner is a build dependency. If someone doesn't use hyprpm then that package is not needed at all. I think that (at least in ArchLinux) it would be better to package hyprpm separately from hyprland and add hyprwayland-scanner as a dependency to that package. Unfortunately I don't have an account on ArchLinux's GitLab to suggest that and they've disabled registration because of a lot of spam.

I whole heartedly disagree, hyprpm is the only official way to get plugins into hyprland, which imo is an integral feature, without plugins hyprland is barley a DE, and especially without hy3 considering there's no obvious way to change the looks of the normal tabs for groups, but I would agree that if hyprwayland-scanner doesn't come with the package then hyprpm should at least be packaged separately with its own depends.

In either case there's a package in the arch repos that is not functional because of missing depends, hopefully one of us gets an account soon to be able to at least tell them that

I've requested an account and got one already. I've reported the issue.

I fully agree that the hyprpm is an integral part of the hyprland. But I don't think 100% of hyprland and ArchLinux users use addons for sure or use hyprpm for them (they may choose to go with unsupported AUR route for example). Adding hyprwayland-scanner as a dependency to hyprland would add unnecessary dependency for anyone who doesn't use hyprpm.
At the same time I don't think there's anything wrong is separating hyprpm to its own package, as it's going to be built at the same time as hyprland one. Arch's PKGBUILD has ability to create split-packages. This basically means that single PKGBUILD generates separate packages from the same source code, but each of the packages may have its own dependencies. So the hyprpm package would be always synchronized to the hyprland version in the Arch's repositories.

BTW I symlink Arch package provided hyprland headers to .local/share/hyprpm so hyprpm doesn't clone them every time - in this case hyprwayland-scanner is also not needed.

@yawor
Copy link

yawor commented Jun 11, 2024

BTW here's the issue I've created in Arch's GitLab:
https://gitlab.archlinux.org/archlinux/packaging/packages/hyprland/-/issues/10

I've also linked it back to this issue.

@fufexan
Copy link
Member

fufexan commented Jun 11, 2024

BTW I symlink Arch package provided hyprland headers to .local/share/hyprpm so hyprpm doesn't clone them every time - in this case hyprwayland-scanner is also not needed.

@vaxerski is there a reason hyprpm doesn't just use the installed hyprland headers? (Can easily be found with pkgconfig)

@yawor
Copy link

yawor commented Jun 11, 2024

BTW I symlink Arch package provided hyprland headers to .local/share/hyprpm so hyprpm doesn't clone them every time - in this case hyprwayland-scanner is also not needed.

@vaxerski is there a reason hyprpm doesn't just use the installed hyprland headers? (Can easily be found with pkgconfig)

Isn't it because issues with some distributions, which ship outdated headers or no headers at all?
But it could be done in a way, that hyprpm first tries locating the system/package provided headers and fall back to cloning hyprland repo in case of an issue.

One issue I see with system provided headers (even in Arch, which seems to be ok in other circumstances):
Right after running system update (e.g. pacman -Syu), before restarting system (or hyprland at least) the installed headers will be newer than currently running hyrpland. This would cause issue when hyprpm update is run before restarting.

@fufexan
Copy link
Member

fufexan commented Jun 11, 2024

Right after running system update (e.g. pacman -Syu), before restarting system (or hyprland at least) the installed headers will be newer than currently running hyrpland. This would cause issue when hyprpm update is run before restarting.

There can be an option that doesn't reload plugins if the headers version and the running Hyprland version doesn't match. For greater control we can add a commit field in the pkg-config file.

@vaxerski
Copy link
Member

distro headers are unreliable, thats why. They can also be incorrectly user-supplied (they once built hl manually and installed the headers)

@fufexan
Copy link
Member

fufexan commented Jun 11, 2024

Understandable, even though as a packager that's a nightmare.

@vaxerski
Copy link
Member

feel free to patch hyprpm :)

@257
Copy link
Contributor

257 commented Jun 13, 2024

if the system doesn't have X at all then Hyprland builds/installs fine and hyprpm update gives this:

-- XWAYLAND Enabled (NO_XWAYLAND not defined) checking deps...
-- Checking for modules 'xcb;xwayland;xcb-util;xcb-render;xcb-xfixes;xcb-icccm;xcb-composite;xcb-res;xcb-ewmh;xcb-errors'
--   Package 'xwayland' not found
--   Package 'xcb-util' not found
--   Package 'xcb-icccm' not found
--   Package 'xcb-ewmh' not found
--   Package 'xcb-errors' not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:634 (message):
  The following required packages were not found:

   - xwayland
   - xcb-util
   - xcb-icccm
   - xcb-ewmh
   - xcb-errors

@257
Copy link
Contributor

257 commented Jun 13, 2024

feel free to patch hyprpm :)

patch how? revert to using system headers?

@257
Copy link
Contributor

257 commented Jun 13, 2024

distro headers are unreliable, thats why.

unreliable how?

They can also be incorrectly user-supplied (they once built hl manually and installed the headers)

some users supplied wrong headers? i don't think that should be the deciding factor here.

257 added a commit to 257/9999 that referenced this issue Jun 13, 2024
headers are ignored by upstream! see [1]

[1] hyprwm/Hyprland#6232
@Anik200
Copy link

Anik200 commented Jul 17, 2024

~ ❯ hyprpm update -v

[v] version returned: Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update).

Date: Tue Jun 25 12:06:02 2024

Tag: v0.41.2, commits: 4886

flags: (if any)

[v] parsed commit 918d8340afd652b011b937d29d5eea0be08467f5 at branch on Tue Jun 25 12:06:02 2024, commits 4886

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.

[v] will shallow since: Tue Jun 18 12:06:02 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 918d834 flake.lock: update

✔ checked out to running ver

! configuring Hyprland

[v] setting PREFIX for cmake to /home/anik/.local/share/hyprpm/headersRoot

[v] cmake returned: CMake Warning (dev) at /usr/share/cmake-3.29/Modules/GNUInstallDirs.cmake:253 (message):

Unable to determine default CMAKE_INSTALL_LIBDIR directory because no

target architecture is known. Please enable at least one language before

including GNUInstallDirs.

Call Stack (most recent call first):

CMakeLists.txt:5 (include)

This warning is for project developers. Use -Wno-dev to suppress it.

Not searching for unused variables given on the command line.

-- The C compiler identification is GNU 13.2.0

-- The CXX compiler identification is GNU 13.2.0

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working C compiler: /usr/bin/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: /usr/bin/c++ - skipped

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Gathering git info

-- Found Python3: /usr/bin/python3.12 (found version "3.12.4") found components: Interpreter

Building itab.c/itab.h...

-- Setting up wlroots

-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.0")

-- 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;hyprlang>=0.3.2;hyprcursor>=0.1.7;hyprutils>=0.1.5'

-- Found xkbcommon, version 1.7.0

-- Found uuid, version 2.40.1

-- Found wayland-server, version 1.22.0

-- Found wayland-client, version 1.22.0

-- Found wayland-cursor, version 1.22.0

-- Found wayland-protocols, version 1.36

-- Found cairo, version 1.18.0

-- Found pango, version 1.54.0

-- Found pangocairo, version 1.54.0

-- Found pixman-1, version 0.43.4

-- Found libdrm, version 2.4.121

-- Found libinput, version 1.26.0

-- Found hwdata, version 0.375

-- Found libseat, version 0.8.0

-- Found libdisplay-info, version 0.1.1

-- Found libliftoff, version 0.4.1

-- Found libudev, version 251

-- Found gbm, version 24.1.2

-- Found hyprlang, version 0.5.2

-- Found hyprcursor, version 0.1.9

-- Found hyprutils, version 0.1.5

-- Looking for execinfo.h

-- Looking for execinfo.h - found

-- Configuration supports execinfo

-- Looking for backtrace in execinfo

-- Looking for backtrace in execinfo - not found

-- Looking for sys/timerfd.h

-- Looking for sys/timerfd.h - found

-- Checking for module 'epoll-shim'

-- Package 'epoll-shim', required by 'virtual:world', not found

-- XWAYLAND Enabled (NO_XWAYLAND not defined) checking deps...

-- Checking for modules 'xcb;xwayland;xcb-util;xcb-render;xcb-xfixes;xcb-icccm;xcb-composite;xcb-res;xcb-ewmh;xcb-errors'

-- Found xcb, version 1.16.1

-- Found xwayland, version 24.1.0

-- Found xcb-util, version 0.4.1

-- Found xcb-render, version 1.16.1

-- Found xcb-xfixes, version 1.16.1

-- Found xcb-icccm, version 0.4.2

-- Found xcb-composite, version 1.16.1

-- Found xcb-res, version 1.16.1

-- Found xcb-ewmh, version 0.4.2

-- Found xcb-errors, version 1.0.1

-- SYSTEMD support is requested (NO_SYSTEMD not defined)...

-- Setting precompiled headers

-- Setting link libraries

-- Checking for module 'hyprutils>=0.1.1'

-- Found hyprutils, version 0.1.5

-- Checking for modules 'tomlplusplus;hyprutils>=0.1.1'

-- Found tomlplusplus, version 3.4.0

-- Found hyprutils, version 0.1.5

-- Configuring done (3.8s)

-- Generating done (0.1s)

-- Build files have been written to: /tmp/hyprpm/hyprland-anik/build

[v] meson returned: The Meson build system

Version: 1.4.0

Source dir: /tmp/hyprpm/hyprland-anik/subprojects/wlroots-hyprland

Build dir: /tmp/hyprpm/hyprland-anik/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 13.2.0 "cc (GCC) 13.2.0")

C linker for the host machine: cc ld.bfd 2.41

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

meson.build:83:11: ERROR: Command \/tmp/hyprpm/hyprland-anik/subprojects/wlroots-hyprland/./patches/apply.sh` failed with status 1.`

A full log can be found at /tmp/hyprpm/hyprland-anik/subprojects/wlroots-hyprland/build/meson-logs/meson-log.txt

✔ configured Hyprland

[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/anik/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-anik/Makefile && cd /tmp/hyprpm/hyprland-anik && make installheaders

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━ 4 / 5 Installing sources[v] installer returned: # remove previous headers from hyprpm's dir

rm -fr /home/anik/.local/share/hyprpm/headersRoot/include/hyprland

mkdir -p /home/anik/.local/share/hyprpm/headersRoot/include/hyprland

mkdir -p /home/anik/.local/share/hyprpm/headersRoot/include/hyprland/protocols

mkdir -p /home/anik/.local/share/hyprpm/headersRoot/include/hyprland/wlr

mkdir -p /home/anik/.local/share/hyprpm/headersRoot/share/pkgconfig

cmake --build ./build --config Release --target generate-protocol-headers

[0/2] Re-checking globbed directories...

[1/40] Generating /tmp/hyprpm/hyprland-anik/protocols/hyprland-global-shortcuts-v1-protocol.h

[2/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-screencopy-unstable-v1-protocol.h

[3/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-gamma-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/wlr-gamma-control-unstable-v1.hpp

[4/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-foreign-toplevel-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/wlr-foreign-toplevel-management-unstable-v1.hpp

[5/40] Generating /tmp/hyprpm/hyprland-anik/protocols/hyprland-toplevel-export-v1-protocol.h

[6/40] Generating /tmp/hyprpm/hyprland-anik/protocols/text-input-unstable-v1-protocol.h

[7/40] Generating /tmp/hyprpm/hyprland-anik/protocols/virtual-keyboard-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/virtual-keyboard-unstable-v1.hpp

[8/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-virtual-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/wlr-virtual-pointer-unstable-v1.hpp

[9/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-output-power-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/wlr-output-power-management-unstable-v1.hpp

[10/40] Generating /tmp/hyprpm/hyprland-anik/protocols/input-method-unstable-v2.cpp, /tmp/hyprpm/hyprland-anik/protocols/input-method-unstable-v2.hpp

[11/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-output-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/wlr-output-management-unstable-v1.hpp

[12/40] Generating /tmp/hyprpm/hyprland-anik/protocols/kde-server-decoration.cpp, /tmp/hyprpm/hyprland-anik/protocols/kde-server-decoration.hpp

[13/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-data-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/wlr-data-control-unstable-v1.hpp

[14/40] Generating /tmp/hyprpm/hyprland-anik/protocols/hyprland-focus-grab-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/hyprland-focus-grab-v1.hpp

[15/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wlr-layer-shell-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/wlr-layer-shell-unstable-v1.hpp

[16/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wayland-drm.cpp, /tmp/hyprpm/hyprland-anik/protocols/wayland-drm.hpp

[17/40] Generating /tmp/hyprpm/hyprland-anik/protocols/fractional-scale-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/fractional-scale-v1.hpp

[18/40] Generating /tmp/hyprpm/hyprland-anik/protocols/tearing-control-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/tearing-control-v1.hpp

[19/40] Generating /tmp/hyprpm/hyprland-anik/protocols/xdg-output-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/xdg-output-unstable-v1.hpp

[20/40] Generating /tmp/hyprpm/hyprland-anik/protocols/cursor-shape-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/cursor-shape-v1.hpp

[21/40] Generating /tmp/hyprpm/hyprland-anik/protocols/idle-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/idle-inhibit-unstable-v1.hpp

[22/40] Generating /tmp/hyprpm/hyprland-anik/protocols/xdg-decoration-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/xdg-decoration-unstable-v1.hpp

[23/40] Generating /tmp/hyprpm/hyprland-anik/protocols/relative-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/relative-pointer-unstable-v1.hpp

[24/40] Generating /tmp/hyprpm/hyprland-anik/protocols/alpha-modifier-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/alpha-modifier-v1.hpp

[25/40] Generating /tmp/hyprpm/hyprland-anik/protocols/ext-foreign-toplevel-list-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/ext-foreign-toplevel-list-v1.hpp

[26/40] Generating /tmp/hyprpm/hyprland-anik/protocols/keyboard-shortcuts-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/keyboard-shortcuts-inhibit-unstable-v1.hpp

[27/40] Generating /tmp/hyprpm/hyprland-anik/protocols/pointer-gestures-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/pointer-gestures-unstable-v1.hpp

[28/40] Generating /tmp/hyprpm/hyprland-anik/protocols/text-input-unstable-v3.cpp, /tmp/hyprpm/hyprland-anik/protocols/text-input-unstable-v3.hpp

[29/40] Generating /tmp/hyprpm/hyprland-anik/protocols/pointer-constraints-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/pointer-constraints-unstable-v1.hpp

[30/40] Generating /tmp/hyprpm/hyprland-anik/protocols/xdg-activation-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/xdg-activation-v1.hpp

[31/40] Generating /tmp/hyprpm/hyprland-anik/protocols/ext-idle-notify-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/ext-idle-notify-v1.hpp

[32/40] Generating /tmp/hyprpm/hyprland-anik/protocols/ext-session-lock-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/ext-session-lock-v1.hpp

[33/40] Generating /tmp/hyprpm/hyprland-anik/protocols/tablet-v2.cpp, /tmp/hyprpm/hyprland-anik/protocols/tablet-v2.hpp

[34/40] Generating /tmp/hyprpm/hyprland-anik/protocols/presentation-time.cpp, /tmp/hyprpm/hyprland-anik/protocols/presentation-time.hpp

[35/40] Generating /tmp/hyprpm/hyprland-anik/protocols/xdg-shell.cpp, /tmp/hyprpm/hyprland-anik/protocols/xdg-shell.hpp

[36/40] Generating /tmp/hyprpm/hyprland-anik/protocols/primary-selection-unstable-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/primary-selection-unstable-v1.hpp

[37/40] Generating /tmp/hyprpm/hyprland-anik/protocols/viewporter.cpp, /tmp/hyprpm/hyprland-anik/protocols/viewporter.hpp

[38/40] Generating /tmp/hyprpm/hyprland-anik/protocols/xwayland-shell-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/xwayland-shell-v1.hpp

[39/40] Generating /tmp/hyprpm/hyprland-anik/protocols/linux-dmabuf-v1.cpp, /tmp/hyprpm/hyprland-anik/protocols/linux-dmabuf-v1.hpp

[40/40] Generating /tmp/hyprpm/hyprland-anik/protocols/wayland.cpp, /tmp/hyprpm/hyprland-anik/protocols/wayland.hpp

find src -name '*.h*' -print0 | cpio --quiet -0dump /home/anik/.local/share/hyprpm/headersRoot/include/hyprland

cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/anik/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..

cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/anik/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..

/bin/sh: 1: cd: can't cd to subprojects/wlroots-hyprland/build/include

make: *** [Makefile:57: installheaders] Error 2

✖ failed to install headers with error code 2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5 / 5 Failed

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

@vaxerski vaxerski added the stale Not much going on label Feb 17, 2025
@freerig
Copy link
Author

freerig commented Feb 22, 2025

Don't know why, but now it works. I anyone has the same problem, I think it's better to open a new issue

@freerig freerig closed this as not planned Won't fix, can't repro, duplicate, stale Feb 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working stale Not much going on
Projects
None yet
Development

No branches or pull requests

8 participants