diff options
| -rw-r--r-- | overlay.nix | 3 | ||||
| -rw-r--r-- | pkgs/flat-manager-client.nix | 41 | ||||
| -rw-r--r-- | pkgs/flat-manager.nix | 41 |
3 files changed, 85 insertions, 0 deletions
diff --git a/overlay.nix b/overlay.nix index 1d65511..5d4b331 100644 --- a/overlay.nix +++ b/overlay.nix @@ -16,6 +16,9 @@ in sarif-fmt = callPackage ./pkgs/sarif-fmt.nix {inherit (final) sarif-fmt;}; shellcheck-sarif = callPackage ./pkgs/shellcheck-sarif.nix {inherit (final) shellcheck-sarif;}; + flat-manager = callPackage ./pkgs/flat-manager.nix {inherit (final) flat-manager;}; + flat-manager-client = callPackage ./pkgs/flat-manager-client.nix {inherit (final) flat-manager;}; + klassy = prev.libsForQt5.callPackage ./pkgs/klassy.nix {}; modrinth-app-unwrapped = callPackage ./pkgs/modrinth-app { diff --git a/pkgs/flat-manager-client.nix b/pkgs/flat-manager-client.nix new file mode 100644 index 0000000..f41e744 --- /dev/null +++ b/pkgs/flat-manager-client.nix @@ -0,0 +1,41 @@ +{ + lib, + stdenvNoCC, + flat-manager, + python3, + ostree, +}: +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "flat-manager-client"; + inherit (flat-manager) version src; + + pythonPath = with python3.pkgs; [ + aiohttp + pygobject3 + tenacity + ]; + + nativeBuildInputs = [python3.pkgs.wrapPython]; + buildInputs = [(python3.withPackages (lib.const finalAttrs.pythonPath))]; + + installPhase = '' + runHook preInstall + install -Dm755 {,$out/bin/}flat-manager-client + runHook postInstall + ''; + + postFixup = '' + makeWrapperArgs+=( + --prefix GI_TYPELIB_PATH : ${lib.makeSearchPath "lib/girepository-1.0" [ostree]} + ) + + wrapPythonPrograms $out/bin $out "$pythonPath" + ''; + + meta = + flat-manager.meta + // { + mainProgram = "flat-manager-client"; + description = flat-manager.meta.description + " (Client)"; + }; +}) diff --git a/pkgs/flat-manager.nix b/pkgs/flat-manager.nix new file mode 100644 index 0000000..4326c83 --- /dev/null +++ b/pkgs/flat-manager.nix @@ -0,0 +1,41 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + flat-manager, + glib, + openssl, + ostree, + postgresql, + pkg-config, +}: +rustPlatform.buildRustPackage { + pname = "flat-manager"; + version = "unstable-2024-01-20"; + + src = fetchFromGitHub { + owner = "flatpak"; + repo = flat-manager.pname; + rev = "d1c3d36da7b5779163ff70007c4d2f145cfce664"; + hash = "sha256-Gt3c+fIC0W6+OJ4m6ujmS1nB9Nnr39oHlzxaKCxGAag="; + }; + + cargoHash = "sha256-xdJYSVH7l31/LpgS615D7kcvjxILFPMiVWDDvmm/3VE="; + + nativeBuildInputs = [pkg-config]; + buildInputs = [glib openssl ostree postgresql]; + + meta = with lib; { + mainProgram = "flat-manager"; + description = "Manager for flatpak repositories"; + longDescription = '' + flat-manager serves and maintains a Flatpak repository. You point it at an ostree + repository and it will allow Flatpak clients to install apps from the repository over HTTP. + Additionally, it has an HTTP API that lets you upload new builds and manage the repository. + ''; + homepage = "https://github.com/flatpak/flat-manager"; + changelog = "https://github.com/flatpak/flat-manager/releases/tag/${flat-manager.version}"; + maintainers = with maintainers; [getchoo]; + platforms = platforms.linux; + }; +} |
