diff --git a/pkgs/applications/display-managers/ly/default.nix b/pkgs/applications/display-managers/ly/default.nix index 9376dc476dec..41ecfd40f4b5 100644 --- a/pkgs/applications/display-managers/ly/default.nix +++ b/pkgs/applications/display-managers/ly/default.nix @@ -1,24 +1,22 @@ -{ stdenv, lib, fetchFromGitHub, git, linux-pam, libxcb }: +{ stdenv, lib, fetchFromGitHub, linux-pam, libxcb, makeBinaryWrapper, zig_0_12 +, callPackage }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "ly"; - version = "0.6.0"; + version = "1.0.2"; src = fetchFromGitHub { owner = "fairyglade"; repo = "ly"; - rev = "v${version}"; - hash = "sha256-78XD6DK9aQi8hITWJWnFZ3U9zWTcuw3vtRiU3Lhu7O4="; - fetchSubmodules = true; + rev = "v1.0.2"; + hash = "sha256-VUtNEL7Te/ba+wvL0SsUHlyv2NPmkYKs76TnW8r3ysw="; }; - hardeningDisable = [ "all" ]; - nativeBuildInputs = [ git ]; + nativeBuildInputs = [ makeBinaryWrapper zig_0_12.hook ]; buildInputs = [ libxcb linux-pam ]; - installPhase = '' - mkdir -p $out/bin - cp bin/ly $out/bin + postPatch = '' + ln -s ${callPackage ./deps.nix { }} $ZIG_GLOBAL_CACHE_DIR/p ''; meta = with lib; { diff --git a/pkgs/applications/display-managers/ly/deps.nix b/pkgs/applications/display-managers/ly/deps.nix new file mode 100644 index 000000000000..0269a8e8190a --- /dev/null +++ b/pkgs/applications/display-managers/ly/deps.nix @@ -0,0 +1,112 @@ +# generated by zon2nix (https://github.com/Cloudef/zig2nix) + +{ + lib, + linkFarm, + fetchurl, + fetchgit, + runCommandLocal, + zig, + name ? "zig-packages", +}: + +with lib; + +let + unpackZigArtifact = + { name, artifact }: + runCommandLocal name { nativeBuildInputs = [ zig ]; } '' + hash="$(zig fetch --global-cache-dir "$TMPDIR" ${artifact})" + mv "$TMPDIR/p/$hash" "$out" + chmod 755 "$out" + ''; + + fetchZig = + { + name, + url, + hash, + }: + let + artifact = fetchurl { inherit url hash; }; + in + unpackZigArtifact { inherit name artifact; }; + + fetchGitZig = + { + name, + url, + hash, + }: + let + parts = splitString "#" url; + base = elemAt parts 0; + rev = elemAt parts 1; + in + fetchgit { + inherit name rev hash; + url = base; + deepClone = false; + }; + + fetchZigArtifact = + { + name, + url, + hash, + }: + let + parts = splitString "://" url; + proto = elemAt parts 0; + path = elemAt parts 1; + fetcher = { + "git+http" = fetchGitZig { + inherit name hash; + url = "http://${path}"; + }; + "git+https" = fetchGitZig { + inherit name hash; + url = "https://${path}"; + }; + http = fetchZig { + inherit name hash; + url = "http://${path}"; + }; + https = fetchZig { + inherit name hash; + url = "https://${path}"; + }; + file = unpackZigArtifact { + inherit name; + artifact = /. + path; + }; + }; + in + fetcher.${proto}; +in +linkFarm name [ + { + name = "122014e73fd712190e109950837b97f6143f02d7e2b6986e1db70b6f4aadb5ba6a0d"; + path = fetchZigArtifact { + name = "clap"; + url = "https://github.com/Hejsil/zig-clap/archive/8c98e6404b22aafc0184e999d8f068b81cc22fa1.tar.gz"; + hash = "sha256-3P9LyIlq4eNMOe+/jdVJgECfzveSUuRzTf9yhT4t8Zo="; + }; + } + { + name = "12209b971367b4066d40ecad4728e6fdffc4cc4f19356d424c2de57f5b69ac7a619a"; + path = fetchZigArtifact { + name = "zigini"; + url = "https://github.com/Kawaii-Ash/zigini/archive/0bba97a12582928e097f4074cc746c43351ba4c8.tar.gz"; + hash = "sha256-OdaJ5tqmk2MPwaAbpK4HRD/CcQCN+Cjj8U63BqUcFMs="; + }; + } + { + name = "1220b0979ea9891fa4aeb85748fc42bc4b24039d9c99a4d65d893fb1c83e921efad8"; + path = fetchZigArtifact { + name = "ini"; + url = "https://github.com/ziglibs/ini/archive/e18d36665905c1e7ba0c1ce3e8780076b33e3002.tar.gz"; + hash = "sha256-RQ6OPJBqqH7PCL+xiI58JT7vnIo6zbwpLWn+byZO5iM="; + }; + } +]