about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/fo
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/fo')
-rw-r--r--nixpkgs/pkgs/by-name/fo/forge-sparks/package.nix70
-rw-r--r--nixpkgs/pkgs/by-name/fo/forge-sparks/remove-xdpgtk4-import.patch12
-rw-r--r--nixpkgs/pkgs/by-name/fo/formatjson5/package.nix45
3 files changed, 127 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/fo/forge-sparks/package.nix b/nixpkgs/pkgs/by-name/fo/forge-sparks/package.nix
new file mode 100644
index 000000000000..5a1601004706
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fo/forge-sparks/package.nix
@@ -0,0 +1,70 @@
+{ lib
+, blueprint-compiler
+, desktop-file-utils
+, fetchFromGitHub
+, gjs
+, glib
+, glib-networking
+, gtk4
+, libadwaita
+, libportal
+, libsecret
+, libsoup_3
+, meson
+, ninja
+, pkg-config
+, stdenv
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation rec {
+  pname = "forge-sparks";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "rafaelmardojai";
+    repo = pname;
+    rev = version;
+    hash = "sha256-kUvUAJLCqIQpjm8RzAZaHVkdDCD9uKSQz9cYN60xS+4=";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # XdpGtk4 is imported but not used so we remove it to avoid the dependence on libportal-gtk4
+    ./remove-xdpgtk4-import.patch
+  ];
+
+  postPatch = ''
+    patchShebangs troll/gjspack/bin/gjspack
+  '';
+
+  nativeBuildInputs = [
+    blueprint-compiler
+    desktop-file-utils
+    gjs
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    glib
+    glib-networking
+    gtk4
+    libadwaita
+    libportal
+    libsecret
+    libsoup_3
+  ];
+
+  meta = with lib; {
+    description = "Get Git forges notifications";
+    homepage = "https://github.com/rafaelmardojai/forge-sparks";
+    changelog = "https://github.com/rafaelmardojai/forge-sparks/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ michaelgrahamevans ];
+    mainProgram = "forge-sparks";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fo/forge-sparks/remove-xdpgtk4-import.patch b/nixpkgs/pkgs/by-name/fo/forge-sparks/remove-xdpgtk4-import.patch
new file mode 100644
index 000000000000..402e4543bbd6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fo/forge-sparks/remove-xdpgtk4-import.patch
@@ -0,0 +1,12 @@
+diff --git a/src/util.js b/src/util.js
+index d37e42f..9e57ad5 100644
+--- a/src/util.js
++++ b/src/util.js
+@@ -4,7 +4,6 @@ import Gio from 'gi://Gio';
+ import GLib from 'gi://GLib';
+ import Soup from 'gi://Soup';
+ import Xdp from 'gi://Xdp';
+-import XdpGtk4 from 'gi://XdpGtk4';
+ import { gettext as _, ngettext } from 'gettext';
+ 
+ const Format = imports.format;
diff --git a/nixpkgs/pkgs/by-name/fo/formatjson5/package.nix b/nixpkgs/pkgs/by-name/fo/formatjson5/package.nix
new file mode 100644
index 000000000000..52965f6a3e0d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fo/formatjson5/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "formatjson5";
+  version = "0.2.6";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "json5format";
+    # Not tagged, see Cargo.toml.
+    rev = "056829990bab4ddc78c65a0b45215708c91b8628";
+    hash = "sha256-Lredw/Fez+2U2++ShZcKTFCv8Qpai9YUvqvpGjG5W0o=";
+  };
+
+  cargoHash = "sha256-zPgaZPDyNVPmBXz6QwOYnmh/sbJ8aPST8znLMfIWejk=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  cargoBuildFlags = [
+    "--example formatjson5"
+  ];
+
+  postInstall =
+    let
+      cargoTarget = rustPlatform.cargoInstallHook.targetSubdirectory;
+    in
+    ''
+      install -D target/${cargoTarget}/release/examples/formatjson5 $out/bin/formatjson5
+    '';
+
+  meta = {
+    description = "A JSON5 formatter";
+    homepage = "https://github.com/google/json5format";
+    license = lib.licenses.bsd3;
+    mainProgram = "formatjson5";
+    maintainers = with lib.maintainers; [ katexochen ];
+  };
+}