diff --git a/flake.lock b/flake.lock index 2c8ae2c..b6e9c93 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", "type": "github" }, "original": { @@ -22,11 +22,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1727122398, - "narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", + "lastModified": 1724479785, + "narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", + "rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7176ec7..bc90af4 100644 --- a/flake.nix +++ b/flake.nix @@ -38,7 +38,7 @@ overlays.default = import ./pkgs/all-packages.nix; nixosModules = { - reposilite = import ./modules/reposilite.nix; + reposilite = import ./modules/reposilite.nix self; }; }; }; diff --git a/modules/reposilite.nix b/modules/reposilite.nix index a25da76..7dab9ea 100644 --- a/modules/reposilite.nix +++ b/modules/reposilite.nix @@ -1,4 +1,4 @@ -{ +self: { lib, config, pkgs, @@ -6,6 +6,8 @@ }: let cfg = config.services.reposilite; + inherit (pkgs.stdenv.hostPlatform) system; + inherit (lib) getExe @@ -21,7 +23,7 @@ in { options.services.reposilite = { enable = mkEnableOption "reposilite"; - package = mkPackageOption pkgs "reposilite" {}; + package = mkPackageOption self.packages.${system} "reposilite" {}; environmentFile = mkOption { description = mdDoc '' Environment file as defined in {manpage}`systemd.exec(5)` diff --git a/pkgs/all-packages.nix b/pkgs/all-packages.nix index e8738fc..48c3943 100644 --- a/pkgs/all-packages.nix +++ b/pkgs/all-packages.nix @@ -1,5 +1,10 @@ final: prev: { + reposilite = prev.callPackage ./reposilite.nix {}; enigma = prev.callPackage ./enigma.nix {}; vineflower = prev.callPackage ./vineflower.nix {}; koi = prev.kdePackages.callPackage ./koi.nix {}; + + wine-discord-ipc-bridge = prev.callPackage ./wine-discord-ipc-bridge.nix { + inherit (prev.pkgsCross.mingw32) stdenv; + }; } diff --git a/pkgs/reposilite.nix b/pkgs/reposilite.nix new file mode 100644 index 0000000..ebb9195 --- /dev/null +++ b/pkgs/reposilite.nix @@ -0,0 +1,38 @@ +{ + lib, + stdenv, + fetchurl, + makeWrapper, + jre_headless, +}: +stdenv.mkDerivation (finalAttrs: { + name = "reposilite"; + version = "3.5.16"; + + src = fetchurl { + url = with finalAttrs; "https://maven.reposilite.com/releases/com/reposilite/reposilite/${version}/reposilite-${version}-all.jar"; + hash = "sha256-zketAvn0XgBRAS+Bb3KcUcpdydbQQruS+gZ5Bfrjiig="; + }; + + nativeBuildInputs = [makeWrapper]; + + dontUnpack = true; + + installPhase = with finalAttrs; '' + runHook preInstall + + mkdir -p $out/bin $out/share/${name} + cp ${src} $out/share/${name}/${name}.jar + makeWrapper ${jre_headless}/bin/java $out/bin/${name} --add-flags "-jar $out/share/${name}/${name}.jar" + + runHook postInstall + ''; + + meta = with lib; { + description = "Lightweight and easy-to-use repository management software dedicated for the Maven based artifacts in the JVM ecosystem"; + homepage = "https://reposilite.com/"; + license = licenses.asl20; + platforms = platforms.unix; + mainProgram = "reposilite"; + }; +}) diff --git a/pkgs/wine-discord-ipc-bridge.nix b/pkgs/wine-discord-ipc-bridge.nix new file mode 100644 index 0000000..bd7b7ae --- /dev/null +++ b/pkgs/wine-discord-ipc-bridge.nix @@ -0,0 +1,26 @@ +{ + stdenv, + fetchFromGitHub, +}: +stdenv.mkDerivation { + name = "wine-discord-ipc-bridge"; + + src = fetchFromGitHub { + owner = "0e4ef622"; + repo = "wine-discord-ipc-bridge"; + rev = "f8198c9d52e708143301017a296f7557c4387127"; + hash = "sha256-tAknITFlG63+gI5cN9SfUIUZkbIq/MgOPoGIcvoNo4Q="; + }; + + postPatch = '' + patchShebangs winediscordipcbridge-steam.sh + ''; + + installPhase = '' + mkdir -p $out/bin + cp winediscordipcbridge.exe $out/bin + cp winediscordipcbridge-steam.sh $out/bin + ''; + + meta.platforms = ["i686-windows" "x86_64-linux"]; +}