about summary refs log tree commit diff
path: root/pkgs/by-name/ra
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ra')
-rw-r--r--pkgs/by-name/ra/rabbit/package.nix8
-rw-r--r--pkgs/by-name/ra/radcli/package.nix6
-rw-r--r--pkgs/by-name/ra/radicale/package.nix54
-rw-r--r--pkgs/by-name/ra/radicle-httpd/package.nix79
-rw-r--r--pkgs/by-name/ra/radicle-node/package.nix104
-rw-r--r--pkgs/by-name/ra/rage/package.nix2
-rw-r--r--pkgs/by-name/ra/rasm/package.nix30
-rw-r--r--pkgs/by-name/ra/raspberrypi-eeprom/package.nix4
-rw-r--r--pkgs/by-name/ra/ratchet/package.nix70
-rw-r--r--pkgs/by-name/ra/ratchet/tests.nix17
-rw-r--r--pkgs/by-name/ra/ratslap/package.nix20
-rw-r--r--pkgs/by-name/ra/rav1e/package.nix78
-rw-r--r--pkgs/by-name/ra/raygui/package.nix47
13 files changed, 500 insertions, 19 deletions
diff --git a/pkgs/by-name/ra/rabbit/package.nix b/pkgs/by-name/ra/rabbit/package.nix
index 60923f6bbc018..09fb2d7894233 100644
--- a/pkgs/by-name/ra/rabbit/package.nix
+++ b/pkgs/by-name/ra/rabbit/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "rabbit";
-  version = "1.0.2";
+  version = "1.0.5";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "natarajan-chidambaram";
     repo = "RABBIT";
     rev = "refs/tags/${version}";
-    hash = "sha256-5ItoWjPpAbQFM6+B+1CvZe5r5rZXQ8pWj7gRIKGX8ZA=";
+    hash = "sha256-ykvI5qW4toNYKAnrk3ADwat1gAUazbDGGKZEZAvKngQ=";
   };
 
   pythonRelaxDeps = true;
@@ -27,17 +27,19 @@ python3.pkgs.buildPythonApplication rec {
     numpy
     pandas
     pip
+    python-dateutil
     requests
     scikit-learn
     scipy
     tqdm
+    urllib3
     xgboost
   ];
 
   pythonImportsCheck = [ "rabbit" ];
 
   meta = {
-    description = "A tool for identifying bot accounts based on their recent GitHub event history";
+    description = "Tool for identifying bot accounts based on their recent GitHub event history";
     homepage = "https://github.com/natarajan-chidambaram/RABBIT";
     license = lib.licenses.asl20;
     mainProgram = "rabbit";
diff --git a/pkgs/by-name/ra/radcli/package.nix b/pkgs/by-name/ra/radcli/package.nix
index 86774e3762c44..cc78281df3970 100644
--- a/pkgs/by-name/ra/radcli/package.nix
+++ b/pkgs/by-name/ra/radcli/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radcli";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "radcli";
     repo = "radcli";
     rev = "refs/tags/${version}";
-    hash = "sha256-KBgimvhuHvaVh9hxPr+CtibGWyscSi0KXk8S1/STk+Q=";
+    hash = "sha256-YnZkFYTiU2VNKxuP+JTnH64XYTB/+imeMKN1mZN9VCQ=";
   };
 
   postUnpack = ''
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple RADIUS client library";
+    description = "Simple RADIUS client library";
     homepage = "https://github.com/radcli/radcli";
     changelog = "https://github.com/radcli/radcli/blob/${version}/NEWS";
     license = licenses.bsd2;
diff --git a/pkgs/by-name/ra/radicale/package.nix b/pkgs/by-name/ra/radicale/package.nix
new file mode 100644
index 0000000000000..719d49ab3a0e3
--- /dev/null
+++ b/pkgs/by-name/ra/radicale/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, python3
+, fetchFromGitHub
+, nixosTests
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "radicale";
+  version = "3.2.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Kozea";
+    repo = "Radicale";
+    rev = "v${version}-version";
+    hash = "sha256-ZdcV2t2F2UgjGC+aTfynP2DbPRgzOIADDebY64nj3NA=";
+  };
+
+  postPatch = ''
+    sed -i '/addopts/d' setup.cfg
+  '';
+
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = with python3.pkgs; [
+    defusedxml
+    passlib
+    vobject
+    pika
+    python-dateutil
+    pytz # https://github.com/Kozea/Radicale/issues/816
+  ] ++ passlib.optional-dependencies.bcrypt;
+
+  __darwinAllowLocalNetworking = true;
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytest7CheckHook
+    waitress
+  ];
+
+  passthru.tests = {
+    inherit (nixosTests) radicale;
+  };
+
+  meta = with lib; {
+    homepage = "https://radicale.org/v3.html";
+    changelog = "https://github.com/Kozea/Radicale/blob/${src.rev}/CHANGELOG.md";
+    description = "CalDAV and CardDAV server";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda erictapen ];
+  };
+}
diff --git a/pkgs/by-name/ra/radicle-httpd/package.nix b/pkgs/by-name/ra/radicle-httpd/package.nix
new file mode 100644
index 0000000000000..46a35fda34ca8
--- /dev/null
+++ b/pkgs/by-name/ra/radicle-httpd/package.nix
@@ -0,0 +1,79 @@
+{
+  asciidoctor,
+  darwin,
+  fetchgit,
+  git,
+  installShellFiles,
+  lib,
+  makeWrapper,
+  man-db,
+  rustPlatform,
+  stdenv,
+  xdg-utils,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "radicle-httpd";
+  version = "0.11.0";
+  env.RADICLE_VERSION = version;
+
+  src = fetchgit {
+    url = "https://seed.radicle.xyz/z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git";
+    rev = "refs/namespaces/z6MkkfM3tPXNPrPevKr3uSiQtHPuwnNhu2yUVjgd2jXVsVz5/refs/tags/v${version}";
+    hash = "sha256-XMEO+L362uaPUr25YUkMh41a2BcKEy8bgXfwKlvBtnQ=";
+    sparseCheckout = [ "radicle-httpd" ];
+  };
+  sourceRoot = "${src.name}/radicle-httpd";
+  cargoHash = "sha256-WdgPL6X3FMxHW6OVoTkrbo0azAxp35UzGMcTJ5pNnkI=";
+
+  nativeBuildInputs = [
+    asciidoctor
+    installShellFiles
+    makeWrapper
+  ];
+  nativeCheckInputs = [ git ];
+  buildInputs = lib.optionals stdenv.buildPlatform.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+  doCheck = stdenv.hostPlatform.isLinux;
+
+  postInstall = ''
+    for page in $(find -name '*.adoc'); do
+      asciidoctor -d manpage -b manpage $page
+      installManPage ''${page::-5}
+    done
+  '';
+
+  postFixup = ''
+    for program in $out/bin/* ;
+    do
+      wrapProgram "$program" \
+        --prefix PATH : "${
+          lib.makeBinPath [
+            git
+            man-db
+            xdg-utils
+          ]
+        }"
+    done
+  '';
+
+  meta = {
+    description = "Radicle JSON HTTP API Daemon";
+    longDescription = ''
+      A Radicle HTTP daemon exposing a JSON HTTP API that allows someone to browse local
+      repositories on a Radicle node via their web browser.
+    '';
+    homepage = "https://radicle.xyz";
+    # cargo.toml says MIT and asl20, LICENSE file says GPL3
+    license = with lib.licenses; [
+      gpl3Only
+      mit
+      asl20
+    ];
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [
+      gador
+      lorenzleutgeb
+    ];
+    mainProgram = "radicle-httpd";
+  };
+}
diff --git a/pkgs/by-name/ra/radicle-node/package.nix b/pkgs/by-name/ra/radicle-node/package.nix
new file mode 100644
index 0000000000000..05324f6ff44a5
--- /dev/null
+++ b/pkgs/by-name/ra/radicle-node/package.nix
@@ -0,0 +1,104 @@
+{ asciidoctor
+, darwin
+, fetchgit
+, git
+, installShellFiles
+, jq
+, lib
+, makeWrapper
+, man-db
+, openssh
+, radicle-node
+, runCommand
+, rustPlatform
+, stdenv
+, testers
+, xdg-utils
+}: rustPlatform.buildRustPackage rec {
+  pname = "radicle-node";
+  version = "1.0.0-rc.11";
+  env.RADICLE_VERSION = version;
+
+  src = fetchgit {
+    url = "https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git";
+    rev = "refs/namespaces/z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/refs/tags/v${version}";
+    hash = "sha256-P1Gg2uk87ppco7CAPjEqN0uqgb0K8apOSC7cfdgaT0Y=";
+  };
+  cargoHash = "sha256-M01NjqvMSaa3+YPb4vDtIucBeF5BYx3cpmMoLJOwRsI=";
+
+  nativeBuildInputs = [ asciidoctor installShellFiles makeWrapper ];
+  nativeCheckInputs = [ git ];
+  buildInputs = lib.optionals stdenv.buildPlatform.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  doCheck = stdenv.hostPlatform.isLinux;
+
+  preCheck = ''
+    export PATH=$PATH:$PWD/target/${stdenv.hostPlatform.rust.rustcTargetSpec}/release
+    # Tests want to open many files.
+    ulimit -n 4096
+  '';
+  checkFlags = [
+    "--skip=service::message::tests::test_node_announcement_validate"
+    "--skip=tests::test_announcement_relay"
+    # https://radicle.zulipchat.com/#narrow/stream/369277-heartwood/topic/Flaky.20tests/near/438352360
+    "--skip=tests::e2e::test_connection_crossing"
+  ];
+
+  postInstall = ''
+    for page in $(find -name '*.adoc'); do
+      asciidoctor -d manpage -b manpage $page
+      installManPage ''${page::-5}
+    done
+  '';
+
+  postFixup = ''
+    for program in $out/bin/* ;
+    do
+      wrapProgram "$program" \
+        --prefix PATH : "${lib.makeBinPath [ git man-db openssh xdg-utils ]}"
+    done
+  '';
+
+  passthru.tests =
+    let
+      package = radicle-node;
+    in
+    {
+      version = testers.testVersion { inherit package; };
+      basic = runCommand "${package.name}-basic-test"
+        {
+          nativeBuildInputs = [ jq openssh radicle-node ];
+        } ''
+        set -e
+        export RAD_HOME="$PWD/.radicle"
+        mkdir -p "$RAD_HOME/keys"
+        ssh-keygen -t ed25519 -N "" -f "$RAD_HOME/keys/radicle" > /dev/null
+        jq -n '.node.alias |= "nix"' > "$RAD_HOME/config.json"
+
+        rad config > /dev/null
+        rad debug | jq -e '
+            (.sshVersion | contains("${openssh.version}"))
+          and
+            (.gitVersion | contains("${git.version}"))
+        '
+
+        touch $out
+      '';
+    };
+
+  meta = {
+    description = "Radicle node and CLI for decentralized code collaboration";
+    longDescription = ''
+      Radicle is an open source, peer-to-peer code collaboration stack built on Git.
+      Unlike centralized code hosting platforms, there is no single entity controlling the network.
+      Repositories are replicated across peers in a decentralized manner, and users are in full control of their data and workflow.
+    '';
+    homepage = "https://radicle.xyz";
+    license = with lib.licenses; [ asl20 mit ];
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ amesgen lorenzleutgeb ];
+    mainProgram = "rad";
+  };
+}
diff --git a/pkgs/by-name/ra/rage/package.nix b/pkgs/by-name/ra/rage/package.nix
index 3c33b5025fc10..a6024ace31765 100644
--- a/pkgs/by-name/ra/rage/package.nix
+++ b/pkgs/by-name/ra/rage/package.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
+    description = "Simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
     homepage = "https://github.com/str4d/rage";
     changelog = "https://github.com/str4d/rage/blob/v${version}/rage/CHANGELOG.md";
     license = with licenses; [ asl20 mit ]; # either at your option
diff --git a/pkgs/by-name/ra/rasm/package.nix b/pkgs/by-name/ra/rasm/package.nix
new file mode 100644
index 0000000000000..a1708485e8715
--- /dev/null
+++ b/pkgs/by-name/ra/rasm/package.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "rasm";
+  version = "2.2.5";
+
+  src = fetchFromGitHub {
+    owner = "EdouardBERGE";
+    repo = "rasm";
+    rev = "v${version}";
+    hash = "sha256-m2XRi9RF089dBpkwcu/zgmd3XnBF4uJU5B4ec4WJ36I=";
+  };
+
+  # by default the EXEC variable contains `rasm.exe`
+  makeFlags = [ "EXEC=rasm" ];
+
+  installPhase = ''
+    install -Dt $out/bin rasm
+  '';
+
+  meta = with lib; {
+    homepage = "http://rasm.wikidot.com/english-index:home";
+    description = "Z80 assembler";
+    mainProgram = "rasm";
+    # use -n option to display all licenses
+    license = licenses.mit; # expat version
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/ra/raspberrypi-eeprom/package.nix b/pkgs/by-name/ra/raspberrypi-eeprom/package.nix
index afad529c8261f..4c72c2a4fd5ed 100644
--- a/pkgs/by-name/ra/raspberrypi-eeprom/package.nix
+++ b/pkgs/by-name/ra/raspberrypi-eeprom/package.nix
@@ -12,13 +12,13 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "raspberrypi-eeprom";
-  version = "2024.02.16-2712";
+  version = "2024.06.05-2712";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-eeprom";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-R3X7JaS8Ob6KwN1KYaJDZA8aI4Hv6Y3R+nOMSPjt2ew=";
+    hash = "sha256-VcMDDnM0VNr+Y+16ZChZdlEcmlHx6mYNCK0mrPMJHes=";
   };
 
   buildInputs = [ python3 ];
diff --git a/pkgs/by-name/ra/ratchet/package.nix b/pkgs/by-name/ra/ratchet/package.nix
new file mode 100644
index 0000000000000..a613bea272aac
--- /dev/null
+++ b/pkgs/by-name/ra/ratchet/package.nix
@@ -0,0 +1,70 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  callPackage,
+}:
+buildGoModule rec {
+  pname = "ratchet";
+  version = "0.9.2";
+
+  # ratchet uses the git sha-1 in the version string, e.g.
+  #
+  # $ ./ratchet --version
+  # ratchet 0.9.2 (d57cc1a53c022d3f87c4820bc6b64384a06c8a07, darwin/arm64)
+  #
+  # so we need to either hard-code the sha-1 corresponding to the version tag
+  # head or retain the git metadata folder and extract it using the git cli.
+  # We currently hard-code it.
+  src = fetchFromGitHub {
+    owner = "sethvargo";
+    repo = "ratchet";
+    rev = "d57cc1a53c022d3f87c4820bc6b64384a06c8a07";
+    hash = "sha256-gQ98uD9oPUsECsduv/lqGdYNmtHetU49ETfWCE8ft8U=";
+  };
+
+  proxyVendor = true;
+  vendorHash = "sha256-J7LijbhpKDIfTcQMgk2x5FVaYG7Kgkba/1aSTmgs5yw=";
+
+  subPackages = [ "." ];
+
+  ldflags =
+    let
+      package_url = "github.com/sethvargo/ratchet";
+    in
+    [
+      "-s"
+      "-w"
+      "-X ${package_url}/internal/version.name=${pname}"
+      "-X ${package_url}/internal/version.version=${version}"
+      "-X ${package_url}/internal/version.commit=${src.rev}"
+    ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/ratchet --version 2>&1 | grep ${version};
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    install -Dm755 "$GOPATH/bin/ratchet" -T $out/bin/ratchet
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    execution = callPackage ./tests.nix { };
+  };
+
+  meta = with lib; {
+    description = "Tool for securing CI/CD workflows with version pinning";
+    mainProgram = "ratchet";
+    downloadPage = "https://github.com/sethvargo/ratchet";
+    homepage = "https://github.com/sethvargo/ratchet";
+    license = licenses.asl20;
+    maintainers = with maintainers; [
+      cameronraysmith
+      ryanccn
+    ];
+  };
+}
diff --git a/pkgs/by-name/ra/ratchet/tests.nix b/pkgs/by-name/ra/ratchet/tests.nix
new file mode 100644
index 0000000000000..7585c06d91728
--- /dev/null
+++ b/pkgs/by-name/ra/ratchet/tests.nix
@@ -0,0 +1,17 @@
+{
+  lib,
+  runCommand,
+  ratchet,
+}: let
+  inherit (ratchet) pname version;
+in
+  runCommand "${pname}-tests" {meta.timeout = 60;}
+  ''
+    set -euo pipefail
+
+    # Ensure ratchet is executable
+    ${ratchet}/bin/ratchet --version
+    ${ratchet}/bin/ratchet --help
+
+    touch $out
+  ''
diff --git a/pkgs/by-name/ra/ratslap/package.nix b/pkgs/by-name/ra/ratslap/package.nix
index 6ea5cc191652c..59ff8ffb8e1e8 100644
--- a/pkgs/by-name/ra/ratslap/package.nix
+++ b/pkgs/by-name/ra/ratslap/package.nix
@@ -7,15 +7,15 @@
 , git
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "ratslap";
   version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "krayon";
     repo = "ratslap";
-    rev = version;
-    sha256 = "sha256-PO/79tTiO4TBtojrEtkSf5W6zuG+Ml2iJGAtYHDwHEY=";
+    rev = finalAttrs.version;
+    hash = "sha256-PO/79tTiO4TBtojrEtkSf5W6zuG+Ml2iJGAtYHDwHEY=";
     leaveDotGit = true;
   };
 
@@ -33,9 +33,9 @@ stdenv.mkDerivation rec {
     makeFlagsArray+=(
       "-W gitup"
       "VDIRTY="
-      "MAJVER=${version}"
+      "MAJVER=${finalAttrs.version}"
       "APPBRANCH=main"
-      "BINNAME=${pname}"
+      "BINNAME=ratslap"
       "MARKDOWN_GEN="
       "BUILD_DATE=$(git show -s --date=format:'%Y-%m-%d %H:%M:%S%z' --format=%cd)"
       "BUILD_MONTH=$(git show -s --date=format:'%B' --format=%cd)"
@@ -49,8 +49,8 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp ratslap $out/bin
 
-    mv manpage.1 ${pname}.1
-    installManPage ${pname}.1
+    mv manpage.1 ratslap.1
+    installManPage ratslap.1
 
     runHook postInstall
   '';
@@ -62,9 +62,9 @@ stdenv.mkDerivation rec {
       all buttons and configuring modes, DPI settings and the LED.
     '';
     homepage = "https://github.com/krayon/ratslap";
-    changelog = "https://github.com/krayon/ratslap/releases/tag/${version}";
+    changelog = "https://github.com/krayon/ratslap/releases/tag/${finalAttrs.version}";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ zebreus ];
-    platforms = platforms.all;
+    platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/by-name/ra/rav1e/package.nix b/pkgs/by-name/ra/rav1e/package.nix
new file mode 100644
index 0000000000000..b90dd2d56a617
--- /dev/null
+++ b/pkgs/by-name/ra/rav1e/package.nix
@@ -0,0 +1,78 @@
+{
+  lib,
+  rust,
+  stdenv,
+  rustPlatform,
+  fetchCrate,
+  pkg-config,
+  cargo-c,
+  darwin,
+  libgit2,
+  libiconv,
+  nasm,
+  testers,
+  zlib,
+  rav1e,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rav1e";
+  version = "0.7.1";
+
+  src = fetchCrate {
+    inherit pname version;
+    hash = "sha256-Db7qb7HBAy6lniIiN07iEzURmbfNtuhmgJRv7OUagUM=";
+  };
+
+  cargoHash = "sha256-VyQ6n2kIJ7OjK6Xlf0T0GNsBvgESRETzKZDZzAn8ZuY=";
+
+  depsBuildBuild = [ pkg-config ];
+
+  nativeBuildInputs = [
+    cargo-c
+    libgit2
+    nasm
+  ];
+
+  buildInputs =
+    [ zlib ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      darwin.apple_sdk.frameworks.Security
+    ];
+
+  # Darwin uses `llvm-strip`, which results in link errors when using `-x` to strip the asm library
+  # and linking it with cctools ld64.
+  postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
+    substituteInPlace build.rs --replace-fail '.arg("-x")' '.arg("-S")'
+  '';
+
+  checkType = "debug";
+
+  postBuild = ''
+    ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
+  '';
+
+  postInstall = ''
+    ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
+  '';
+
+  passthru = {
+    tests.version = testers.testVersion { package = rav1e; };
+  };
+
+  meta = {
+    description = "Fastest and safest AV1 encoder";
+    longDescription = ''
+      rav1e is an AV1 video encoder. It is designed to eventually cover all use
+      cases, though in its current form it is most suitable for cases where
+      libaom (the reference encoder) is too slow.
+      Features: https://github.com/xiph/rav1e#features
+    '';
+    homepage = "https://github.com/xiph/rav1e";
+    changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ getchoo ];
+    mainProgram = "rav1e";
+  };
+}
diff --git a/pkgs/by-name/ra/raygui/package.nix b/pkgs/by-name/ra/raygui/package.nix
new file mode 100644
index 0000000000000..3c5b427e828fb
--- /dev/null
+++ b/pkgs/by-name/ra/raygui/package.nix
@@ -0,0 +1,47 @@
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  lib
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  name = "raygui";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "raysan5";
+    repo = "raygui";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-1qnChZYsb0e5LnPhvs6a/R5Ammgj2HWFNe9625sBRo8=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{include,lib/pkgconfig}
+
+    install -Dm644 $src/src/raygui.h $out/include/raygui.h
+
+    cat <<EOF > $out/lib/pkgconfig/raygui.pc
+    prefix=$out
+    includedir=$out/include
+
+    Name: raygui
+    Description: ${finalAttrs.meta.description}
+    URL: ${finalAttrs.meta.homepage}
+    Version: ${finalAttrs.version}
+    Cflags: -I"{includedir}"
+    EOF
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A simple and easy-to-use immediate-mode gui library";
+    homepage = "https://github.com/raysan5/raygui";
+    license = lib.licenses.zlib;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = lib.platforms.unix;
+  };
+})