diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix index 4d50b39ebeda..88fe9c31f045 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix @@ -4,6 +4,7 @@ , pkg-config , makeWrapper , meson +, cmake , ninja , binutils , cairo @@ -21,15 +22,19 @@ , mesa , pango , pciutils +, python3 , systemd , tomlplusplus -, udis86-hyprland , wayland , wayland-protocols , wayland-scanner -, wlroots-hyprland , xcbutilwm , xwayland +, hwdata +, seatd +, libdisplay-info +, libliftoff +, xorg , debug ? false , enableXWayland ? true , legacyRenderer ? false @@ -44,24 +49,17 @@ assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been remov assert lib.assertMsg (!enableNvidiaPatches) "The option `enableNvidiaPatches` has been removed."; assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland"; -let - wlr = wlroots-hyprland.override { inherit enableXWayland; }; -in stdenv.mkDerivation (finalAttrs: { pname = "hyprland" + lib.optionalString debug "-debug"; version = "0.39.1"; src = fetchFromGitHub { owner = "hyprwm"; repo = finalAttrs.pname; + fetchSubmodules = true; rev = "v${finalAttrs.version}"; - hash = "sha256-Urb/njWiHYUudXpmK8EKl9Z58esTIG0PxXw5LuM2r5g="; + hash = "sha256-7L5rqQRYH2iyyP5g3IdXJSlATfgnKhuYMf65E48MVKw="; }; - patches = [ - # make meson use the provided dependencies instead of the git submodules - "${finalAttrs.src}/nix/patches/meson-build.patch" - ]; - postPatch = '' # Fix hardcoded paths to /usr installation sed -i "s#/usr#$out#" src/render/OpenGL.cpp @@ -69,12 +67,12 @@ stdenv.mkDerivation (finalAttrs: { # Generate version.h cp src/version.h.in src/version.h substituteInPlace src/version.h \ - --replace "@HASH@" '${finalAttrs.src.rev}' \ - --replace "@BRANCH@" "" \ - --replace "@MESSAGE@" "" \ - --replace "@DATE@" "2024-04-16" \ - --replace "@TAG@" "" \ - --replace "@DIRTY@" "" + --replace-fail "@HASH@" '${finalAttrs.src.rev}' \ + --replace-fail "@BRANCH@" "" \ + --replace-fail "@MESSAGE@" "" \ + --replace-fail "@DATE@" "2024-04-16" \ + --replace-fail "@TAG@" "" \ + --replace-fail "@DIRTY@" "" ''; depsBuildBuild = [ @@ -89,6 +87,8 @@ stdenv.mkDerivation (finalAttrs: { ninja pkg-config wayland-scanner + cmake # for subproject udis86 + python3 ]; outputs = [ @@ -97,36 +97,40 @@ stdenv.mkDerivation (finalAttrs: { "dev" ]; - buildInputs = - wlr.buildInputs ++ [ - cairo - git - hyprcursor - hyprland-protocols - hyprlang - libGL - libdrm - libinput - libxkbcommon - mesa - udis86-hyprland - wayland - wayland-protocols - pango - pciutils - tomlplusplus - wlr - ] - ++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ] - ++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ] - ++ lib.optionals withSystemd [ systemd ]; + buildInputs = [ + cairo + git + hyprcursor + hyprland-protocols + hyprlang + libGL + libdrm + libinput + libxkbcommon + mesa + wayland + wayland-protocols + pango + pciutils + tomlplusplus + # for subproject wlroots-hyprland + hwdata + seatd + libliftoff + libdisplay-info + xorg.xcbutilerrors + xorg.xcbutilrenderutil + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ] + ++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ] + ++ lib.optionals withSystemd [ systemd ]; mesonBuildType = if debug then "debug" else "release"; - mesonAutoFeatures = "disabled"; + mesonAutoFeatures = "enabled"; mesonFlags = [ (lib.mesonEnable "xwayland" enableXWayland) @@ -135,7 +139,6 @@ stdenv.mkDerivation (finalAttrs: { ]; postInstall = '' - ln -s ${wlr}/include/wlr $dev/include/hyprland/wlroots ${lib.optionalString wrapRuntimeDeps '' wrapProgram $out/bin/Hyprland \ --suffix PATH : ${lib.makeBinPath [binutils pciutils stdenv.cc]} @@ -150,6 +153,6 @@ stdenv.mkDerivation (finalAttrs: { license = licenses.bsd3; maintainers = with maintainers; [ wozeparrot fufexan ]; mainProgram = "Hyprland"; - platforms = wlr.meta.platforms; + platforms = lib.platforms.linux; }; }) diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/udis86.nix b/pkgs/applications/window-managers/hyprwm/hyprland/udis86.nix deleted file mode 100644 index b72083c4560a..000000000000 --- a/pkgs/applications/window-managers/hyprwm/hyprland/udis86.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ udis86 -, fetchFromGitHub -}: -udis86.overrideAttrs (old: { - version = "unstable-2022-10-13"; - - src = fetchFromGitHub { - owner = "canihavesomecoffee"; - repo = "udis86"; - rev = "5336633af70f3917760a6d441ff02d93477b0c86"; - hash = "sha256-HifdUQPGsKQKQprByeIznvRLONdOXeolOsU5nkwIv3g="; - }; - - patches = [ ]; -}) diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix b/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix deleted file mode 100644 index b2f4a52126dc..000000000000 --- a/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ fetchFromGitHub -, wlroots -, enableXWayland ? true -}: -wlroots.overrideAttrs - (old: { - inherit enableXWayland; - version = "0.18.0-dev"; - - src = fetchFromGitHub { - owner = "hyprwm"; - repo = "wlroots-hyprland"; - rev = "611a4f24cd2384378f6e500253983107c6656c64"; - hash = "sha256-vPeZCY+sdiGsz4fl3AVVujfyZyQBz6+vZdkUE4hQ+HI="; - }; - - patches = [ ]; # don't inherit old.patches - - pname = "${old.pname}-hyprland"; - }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a50946305779..77673fd45493 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5548,10 +5548,7 @@ with pkgs; hypr = callPackage ../applications/window-managers/hyprwm/hypr { cairo = cairo.override { xcbSupport = true; }; }; - hyprland = callPackage ../applications/window-managers/hyprwm/hyprland { - wlroots-hyprland = callPackage ../applications/window-managers/hyprwm/hyprland/wlroots.nix { }; - udis86-hyprland = callPackage ../applications/window-managers/hyprwm/hyprland/udis86.nix { }; - }; + hyprland = callPackage ../applications/window-managers/hyprwm/hyprland { }; hyprland-autoname-workspaces = callPackage ../applications/misc/hyprland-autoname-workspaces { };