From b2d1d724ac9fded0a12b00f30f4e6d179989e26f Mon Sep 17 00:00:00 2001 From: erik <53882428+rodrgz@users.noreply.github.com> Date: Thu, 8 Jun 2023 20:58:31 -0300 Subject: [PATCH] river: init (#153) --- README.md | 1 + flake.lock | 18 +++++++++++++++++ flake.nix | 5 +++++ overlays/default.nix | 2 ++ pkgs/river-git/default.nix | 41 ++++++++++++++++++++++++++++++++++++++ pkgs/river-git/src.json | 18 +++++++++++++++++ pkgs/river-git/update.sh | 30 ++++++++++++++++++++++++++++ 7 files changed, 115 insertions(+) create mode 100644 pkgs/river-git/default.nix create mode 100644 pkgs/river-git/src.json create mode 100755 pkgs/river-git/update.sh diff --git a/README.md b/README.md index 45eac5a38..dcb7e4112 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ Commands like `nix run ...`, `nix develop ...`, and others, when using our flake mpv-vapoursynth openmohaa proton-ge-custom # recommended option: chaotic.steam.extraCompatPackages + river_git sway-unwrapped_git sway_git # and -unwrapped_git swaylock-plugin_git diff --git a/flake.lock b/flake.lock index 427a70690..4af7e2554 100644 --- a/flake.lock +++ b/flake.lock @@ -99,6 +99,23 @@ "type": "github" } }, + "river-git-src": { + "flake": false, + "locked": { + "lastModified": 1685988087, + "narHash": "sha256-5bQolX+X5vf43TLvCOfEtVVC31fjJCyG9qMiHZ22HrA=", + "owner": "riverwm", + "repo": "river", + "rev": "93a567ca945bd1f8a04b6453e59e0dbaeed0fcb3", + "type": "github" + }, + "original": { + "owner": "riverwm", + "ref": "master", + "repo": "river", + "type": "github" + } + }, "root": { "inputs": { "compare-to": "compare-to", @@ -107,6 +124,7 @@ "mangohud-git-src": "mangohud-git-src", "mesa-git-src": "mesa-git-src", "nixpkgs": "nixpkgs", + "river-git-src": "river-git-src", "sway-git-src": "sway-git-src", "swaylock-plugin-git-src": "swaylock-plugin-git-src", "waynergy-git-src": "waynergy-git-src", diff --git a/flake.nix b/flake.nix index db9d65d7b..98b420a85 100644 --- a/flake.nix +++ b/flake.nix @@ -31,6 +31,11 @@ flake = false; }; + river-git-src = { + url = "github:riverwm/river/master"; + flake = false; + }; + sway-git-src = { url = "github:swaywm/sway/master"; flake = false; diff --git a/overlays/default.nix b/overlays/default.nix index 7e6184297..41b199d69 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -127,6 +127,8 @@ in protonGeTitle = "Proton-GE"; }; + river_git = callOverride ../pkgs/river-git { }; + sway-unwrapped_git = callOverride ../pkgs/sway-unwrapped-git { }; sway_git = prev.sway.override { sway-unwrapped = final.sway-unwrapped_git; diff --git a/pkgs/river-git/default.nix b/pkgs/river-git/default.nix new file mode 100644 index 000000000..e25d8c29d --- /dev/null +++ b/pkgs/river-git/default.nix @@ -0,0 +1,41 @@ +{ inputs +, nyxUtils +, prev +, final +, ... +}: +let + src = builtins.fromJSON (builtins.readFile ./src.json); + zig-wayland = final.fetchFromGitHub { + owner = "ifreund"; + repo = "zig-wayland"; + inherit (src.zig-wayland) rev hash; + }; + zig-pixman = final.fetchFromGitHub { + owner = "ifreund"; + repo = "zig-pixman"; + inherit (src.zig-pixman) rev hash; + }; + zig-xkbcommon = final.fetchFromGitHub { + owner = "ifreund"; + repo = "zig-xkbcommon"; + inherit (src.zig-xkbcommon) rev hash; + }; + zig-wlroots = final.fetchFromGitHub { + owner = "swaywm"; + repo = "zig-wlroots"; + inherit (src.zig-wlroots) rev hash; + }; +in +prev.river.overrideAttrs (prevAttrs: rec { + version = nyxUtils.gitToVersion src; + src = inputs.river-git-src; + postUnpack = '' + cp -R --no-preserve=mode,ownership ${zig-wayland}/* source/deps/zig-wayland + cp -R --no-preserve=mode,ownership ${zig-pixman}/* source/deps/zig-pixman + cp -R --no-preserve=mode,ownership ${zig-xkbcommon}/* source/deps/zig-xkbcommon + cp -R --no-preserve=mode,ownership ${zig-wlroots}/* source/deps/zig-wlroots + patchShebangs source + ''; + passthru.updateScript = ./update.sh; +}) diff --git a/pkgs/river-git/src.json b/pkgs/river-git/src.json new file mode 100644 index 000000000..98e53efb6 --- /dev/null +++ b/pkgs/river-git/src.json @@ -0,0 +1,18 @@ +{ + "zig-wayland": { + "rev": "d507189f623507981f4f5b6a0f8b21b12b9c07e4", + "hash": "sha256-IAbZj4WwFE37f2kpnS4aMfpfN4OA34LCciF1MGPDZdk=" + }, + "zig-pixman": { + "rev": "4a49ba13eb9ebb0c0f991de924328e3d615bf283", + "hash": "sha256-2iuK2DVu5w29eDHnlVyWt4d6as6gjVqhg+1/TxRmkZ8=" + }, + "zig-xkbcommon": { + "rev": "bfd1f97c277c32fddb77dee45979d2f472595d19", + "hash": "sha256-2fEMbN86alYN6JLRVL/0dbgp/Qo5M3uXKc5RGIUGGC4=" + }, + "zig-wlroots": { + "rev": "d6c070a9efa600d313eacd784689faaeb1165422", + "hash": "sha256-IfS7m4PQBMobzvUNf1dJ6qu4qFDtrBi8C5tk0EP5CV8=" + } +} diff --git a/pkgs/river-git/update.sh b/pkgs/river-git/update.sh new file mode 100755 index 000000000..50d6539c1 --- /dev/null +++ b/pkgs/river-git/update.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p busybox curl jq moreutils nix-prefetch-git +set -eo pipefail + +# Define the file path +json_file=./src.json + +# Define the repository information +repositories=( + "ifreund/zig-wayland" + "ifreund/zig-pixman" + "ifreund/zig-xkbcommon" + "swaywm/zig-wlroots" +) + +# Loop through repositories +for repo_info in "${repositories[@]}"; do + # Split repository information into name and URL + IFS='/' read -ra repo <<< "$repo_info" + repo_name=${repo[1]} + + # Fetch repository information + repo_data=$(nix-prefetch-git https://github.com/$repo_info --quiet) + repo_rev=$(jq -r '.rev' <<< "$repo_data") + repo_hash=$(nix-hash --type sha256 --to-sri $(jq -r '.sha256' <<< "$repo_data")) + + # Update JSON file using jq + jq --arg name "$repo_name" --arg rev "$repo_rev" --arg hash "$repo_hash" \ + '.[$name] = { "rev": $rev, "hash": $hash }' "$json_file" | sponge "$json_file" +done