-
Notifications
You must be signed in to change notification settings - Fork 1
/
flake.nix
77 lines (68 loc) · 2.45 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{
description = "An attempt at packging affinity photo for nix";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
elemental-wine-source = {
url = "gitlab:ElementalWarrior/wine?host=gitlab.winehq.org&ref=c12ed1469948f764817fa17efd2299533cf3fe1c";
flake = false;
};
winetricks-source = {
url = "github:winetricks/winetricks?ref=20240105";
flake = false;
};
};
outputs = {
self,
nixpkgs,
elemental-wine-source,
winetricks-source,
}: let
forAllSystems = function:
nixpkgs.lib.genAttrs [
"x86_64-linux"
] (system: function nixpkgs.legacyPackages.${system});
in {
devShells = forAllSystems (pkgs: {
default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [nodejs playwright-driver.browsers];
shellHook = ''
export PLAYWRIGHT_BROWSERS_PATH=${pkgs.playwright-driver.browsers}
export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true
'';
};
});
packages = forAllSystems (pkgs: let
affinityPath = "$([[ -z \"$XDG_DATA_HOME\" ]] && echo \"$HOME/.local/share/affinity\" || echo \"$XDG_DATA_HOME/affinity\")";
symlink = pkgs.callPackage ./symlink.nix {};
wineUnstable =
(pkgs.wineWow64Packages.full.override {
wineRelease = "unstable";
})
.overrideAttrs {
src = elemental-wine-source;
version = "8.14";
};
wineUnwrapped = symlink {
wine = wineUnstable;
};
winetricksUnwrapped = pkgs.winetricks.overrideAttrs {
src = winetricks-source;
};
wrapWithPrefix = pkgs.callPackage ./wrapWithPrefix.nix {inherit affinityPath wineUnwrapped;};
winetricks = wrapWithPrefix winetricksUnwrapped "winetricks";
wine = wrapWithPrefix wineUnwrapped "wine";
wineboot = wrapWithPrefix wineUnwrapped "wineboot";
in
with pkgs.callPackage ./scripts.nix {inherit wineUnwrapped wineboot winetricks wine affinityPath;}; {
inherit winetricks wine wineboot;
_cached_wine_unwrapped = wineUnstable;
_cached_winetricks_unwrapped = winetricksUnwrapped;
updatePhoto = createInstaller "Photo";
photo = createPackage "Photo";
updateDesigner = createInstaller "Designer";
designer = createPackage "Designer";
updatePublisher = createInstaller "Publisher";
publisher = createPackage "Publisher";
});
};
}