From 318f1c48f0d996079031f4c2badca89a7c4b173a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 15 Mar 2026 19:15:17 +0000 Subject: [PATCH] river: init at 0.4.1 --- pkgs/by-name/ri/river/build.zig.zon.nix | 52 ++++++++++++ pkgs/by-name/ri/river/package.nix | 106 ++++++++++++++++++++++++ pkgs/by-name/ri/river/update.sh | 12 +++ pkgs/top-level/aliases.nix | 1 - 4 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 pkgs/by-name/ri/river/build.zig.zon.nix create mode 100644 pkgs/by-name/ri/river/package.nix create mode 100755 pkgs/by-name/ri/river/update.sh diff --git a/pkgs/by-name/ri/river/build.zig.zon.nix b/pkgs/by-name/ri/river/build.zig.zon.nix new file mode 100644 index 000000000000..82218cc8dbfd --- /dev/null +++ b/pkgs/by-name/ri/river/build.zig.zon.nix @@ -0,0 +1,52 @@ +# generated by zon2nix (https://github.com/nix-community/zon2nix) + +{ + linkFarm, + fetchzip, + fetchgit, +}: + +linkFarm "zig-packages" [ + { + name = "pixman-0.3.0-LClMnz2VAAAs7QSCGwLimV5VUYx0JFnX5xWU6HwtMuDX"; + path = fetchzip { + url = "https://codeberg.org/ifreund/zig-pixman/archive/v0.3.0.tar.gz"; + hash = "sha256-8tA4auo5FEI4IPnomV6bkpQHUe302tQtorFQZ1l14NU="; + }; + } + { + name = "wayland-0.4.0-lQa1khbMAQAsLS2eBR7M5lofyEGPIbu2iFDmoz8lPC27"; + path = fetchzip { + url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.4.0.tar.gz"; + hash = "sha256-ulIII5iJpM/W/VJB0HcdktEO2eb9T9J0ln2A1Z94dU4="; + }; + } + { + name = "wayland-0.5.0-lQa1knz8AQCh08NA8BeQrwJB9U3CfqcVAdHZYGRKIGuu"; + path = fetchzip { + url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.5.0.tar.gz"; + hash = "sha256-mhqOtC26iACIvQUq74AbLSXSPsnWMi3AvDV7G2uElpo="; + }; + } + { + name = "wlroots-0.19.4-jmOlcqQMBABhKYH6NMSnoK1sohTbhc97_JP-hGg2UZaK"; + path = fetchzip { + url = "https://codeberg.org/ifreund/zig-wlroots/archive/v0.19.4.tar.gz"; + hash = "sha256-g1LOSMMnjGJIS+U7zrx6FAoUyavqwaQ2UrDv6GxCQsY="; + }; + } + { + name = "xkbcommon-0.3.0-VDqIe3K9AQB2fG5ZeRcMC9i7kfrp5m2rWgLrmdNn9azr"; + path = fetchzip { + url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.3.0.tar.gz"; + hash = "sha256-e5bPEfxl4SQf0cqccLt/py1KOW1+Q1+kWZUEXBbh9oQ="; + }; + } + { + name = "xkbcommon-0.4.0-VDqIe0i2AgDRsok2GpMFYJ8SVhQS10_PI2M_CnHXsJJZ"; + path = fetchzip { + url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.4.0.tar.gz"; + hash = "sha256-zQkmP/cuhAtjOLqYS5D15khKzpqyhbyZ0TD6/8jOkqE="; + }; + } +] diff --git a/pkgs/by-name/ri/river/package.nix b/pkgs/by-name/ri/river/package.nix new file mode 100644 index 000000000000..1cc925fc1d17 --- /dev/null +++ b/pkgs/by-name/ri/river/package.nix @@ -0,0 +1,106 @@ +{ + lib, + stdenv, + callPackage, + fetchFromCodeberg, + libGL, + libx11, + libevdev, + libinput, + libxkbcommon, + pixman, + pkg-config, + scdoc, + udev, + versionCheckHook, + wayland, + wayland-protocols, + wayland-scanner, + wlroots_0_19, + xwayland, + zig_0_15, + withManpages ? true, + xwaylandSupport ? true, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "river"; + version = "0.4.1"; + + outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ]; + + src = fetchFromCodeberg { + owner = "river"; + repo = "river"; + tag = "v${finalAttrs.version}"; + hash = "sha256-EGWLJY9VPdoc4LrXkWi8cNLkahorvDeAIfSOc5yDfbU="; + }; + + strictDeps = true; + + deps = callPackage ./build.zig.zon.nix { }; + + nativeBuildInputs = [ + pkg-config + wayland-scanner + xwayland + zig_0_15 + ] + ++ lib.optional withManpages scdoc; + + buildInputs = [ + libGL + libevdev + libinput + libxkbcommon + pixman + udev + wayland + wayland-protocols + wayland-scanner + wlroots_0_19 + ] + ++ lib.optionals xwaylandSupport [ + libx11 + ]; + + zigBuildFlags = [ + "--system" + "${finalAttrs.deps}" + ] + ++ lib.optional withManpages "-Dman-pages" + ++ lib.optional xwaylandSupport "-Dxwayland"; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "-version"; + + passthru = { + providedSessions = [ "river" ]; + updateScript = ./update.sh; + }; + + meta = { + description = "Non-monolithic Wayland compositor"; + homepage = "https://codeberg.org/river/river"; + longDescription = '' + River is a non-monolithic Wayland compositor. + Unlike other Wayland compositors, river does not combine the compositor and window manager into one program. + Instead, users can choose any window manager implementing the river-window-management-v1 protocol. + ''; + changelog = "https://codeberg.org/river/river/releases/tag/v${finalAttrs.version}"; + license = with lib.licenses; [ + # source code + gpl3Only + + # wayland protocols + mit + ]; + maintainers = with lib.maintainers; [ + GaetanLepage + adamcstephens + ]; + mainProgram = "river"; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/ri/river/update.sh b/pkgs/by-name/ri/river/update.sh new file mode 100755 index 000000000000..7d7875e5c8c6 --- /dev/null +++ b/pkgs/by-name/ri/river/update.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bash common-updater-scripts gnused zon2nix + +latest_tag=$(list-git-tags --url=https://codeberg.org/river/river | sed 's/^v//' | sort --version-sort | tail --lines=1) + +update-source-version river "$latest_tag" + +wget "https://codeberg.org/river/river/raw/tag/v${latest_tag}/build.zig.zon" +zon2nix build.zig.zon >pkgs/by-name/ri/river/build.zig.zon.nix +nixfmt pkgs/by-name/ri/river/build.zig.zon.nix + +rm -f build.zig.zon build.zig.zon.nix diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index dd59e64d9ef6..5d7c4e3a9a41 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1722,7 +1722,6 @@ mapAliases { rewind-ai = throw "'rewind-ai' has been removed due to lack of of maintenance upstream"; # Added 2025-08-03 rigsofrods = throw "'rigsofrods' has been renamed to/replaced by 'rigsofrods-bin'"; # Converted to throw 2025-10-27 rili = throw "'rili' has been dropped in favor of its maintained fork 'li-ri'"; # Added 2026-01-03 - river = throw "'river' has been renamed to/replaced by 'river-classic'"; # Added 2025-08-30 rke2_1_29 = throw "'rke2_1_29' has been removed from nixpkgs as it has reached end of life"; # Added 2025-05-05 rke2_1_30 = throw "'rke2_1_30' has been removed from nixpkgs as it has reached end of life"; # Added 2025-11-04 rke2_1_31 = throw "'rke2_1_31' has been removed from nixpkgs as it has reached end of life"; # Added 2025-12-08