This commit is contained in:
Chris Kruining 2026-03-25 16:26:04 +01:00
parent ac3dac322d
commit a7a1763fe0
No known key found for this signature in database
GPG key ID: EB894A3560CCCAD2
105 changed files with 1152 additions and 1093 deletions

View file

@ -1,24 +0,0 @@
{
config,
lib,
mkPkgs,
...
}: {
imports = [
./studio
./vaultwarden
];
perSystem = {system, ...}: let
pkgs = mkPkgs system;
in {
_module.args.pkgs = pkgs;
clan.pkgs = pkgs;
};
flake.overlays.default = lib.composeManyExtensions [
config.flake.overlays."package/studio"
config.flake.overlays."package/vaultwarden"
];
}

14
packages/flake-module.nix Normal file
View file

@ -0,0 +1,14 @@
{inputs, ...}: {
imports = [];
perSystem = {
system,
pkgs,
...
}: {
packages = {
studio = pkgs.callPackage ./studio {erosanix = inputs.erosanix.lib.${system};};
vaultwarden = pkgs.callPackage ./vaultwarden {};
};
};
}

View file

@ -1,16 +1,100 @@
{inputs, lib, ...}: {
perSystem = {pkgs, system, ...}: {
packages = lib.optionalAttrs (system == "x86_64-linux") {
studio = pkgs.callPackage ./package.nix {
erosanixLib = inputs.erosanix.lib;
};
};
};
{
pkgs,
erosanix,
}: let
inherit (builtins) fetchurl replaceStrings;
inherit (pkgs) makeDesktopItem copyDesktopItems wineWow64Packages;
inherit (erosanix) mkWindowsAppNoCC makeDesktopIcon copyDesktopIcons;
flake.overlays."package/studio" = final: _prev:
lib.optionalAttrs (final.stdenv.hostPlatform.system == "x86_64-linux") {
studio = final.callPackage ./package.nix {
erosanixLib = inputs.erosanix.lib;
};
wine = wineWow64Packages.base;
in
mkWindowsAppNoCC rec {
inherit wine;
pname = "studio";
version = "2.25.12";
src = fetchurl {
url = "https://studio.download.bricklink.info/Studio2.0+EarlyAccess/Archive/2.25.12_1/Studio+2.0+EarlyAccess.exe";
sha256 = "sha256:1xl3zvzkzr64zphk7rnpfx3whhbaykzw06m3nd5dc12r2p4sdh3v";
};
}
enableMonoBootPrompt = false;
dontUnpack = true;
wineArch = "win64";
enableInstallNotification = true;
fileMap = {
"$HOME/.config/${pname}/Stud.io" = "drive_c/users/$USER/AppData/Local/Stud.io";
"$HOME/.config/${pname}/Bricklink" = "drive_c/users/$USER/AppData/LocalLow/Bricklink";
};
fileMapDuringAppInstall = false;
persistRegistry = false;
persistRuntimeLayer = true;
inputHashMethod = "version";
enableVulkan = false;
rendererOverride = null;
enableHUD = false;
enabledWineSymlinks = {};
graphicsDriver = "auto";
inhibitIdle = false;
nativeBuildInputs = [copyDesktopIcons copyDesktopItems];
winAppInstall = replaceStrings ["\r"] [""] ''
wine64 ${src}
wineserver -W
wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /t REG_SZ /v UseTakeFocus /d N /f
'';
winAppPreRun = replaceStrings ["\r"] [""] ''
wineserver -W
wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /t REG_SZ /v UseTakeFocus /d N /f
'';
winAppRun = replaceStrings ["\r"] [""] ''
wine64 "$WINEPREFIX/drive_c/Program Files/Studio 2.0/Studio.exe" "$ARGS"
'';
winAppPostRun = "";
installPhase = replaceStrings ["\r"] [""] ''
runHook preInstall
ln -s $out/bin/.launcher $out/bin/${pname}
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
mimeTypes = [];
name = pname;
exec = pname;
icon = pname;
desktopName = "Bricklink studio";
genericName = "Lego creation app";
categories = [];
})
];
desktopIcon = makeDesktopIcon {
name = pname;
src = ./studio.png;
};
meta = {
description = "App for creating lego builds";
homepage = "https://www.bricklink.com/v3/studio/main.page";
license = "";
maintainers = [];
platforms = ["x86_64-linux"];
};
}

View file

@ -1,100 +0,0 @@
{
pkgs,
erosanixLib,
}: let
inherit (builtins) fetchurl replaceStrings;
inherit (pkgs) makeDesktopItem copyDesktopItems wineWow64Packages;
inherit (erosanixLib.x86_64-linux) mkWindowsAppNoCC makeDesktopIcon copyDesktopIcons;
wine = wineWow64Packages.base;
in
mkWindowsAppNoCC rec {
inherit wine;
pname = "studio";
version = "2.25.12";
src = fetchurl {
url = "https://studio.download.bricklink.info/Studio2.0+EarlyAccess/Archive/2.25.12_1/Studio+2.0+EarlyAccess.exe";
sha256 = "sha256:1xl3zvzkzr64zphk7rnpfx3whhbaykzw06m3nd5dc12r2p4sdh3v";
};
enableMonoBootPrompt = false;
dontUnpack = true;
wineArch = "win64";
enableInstallNotification = true;
fileMap = {
"$HOME/.config/${pname}/Stud.io" = "drive_c/users/$USER/AppData/Local/Stud.io";
"$HOME/.config/${pname}/Bricklink" = "drive_c/users/$USER/AppData/LocalLow/Bricklink";
};
fileMapDuringAppInstall = false;
persistRegistry = false;
persistRuntimeLayer = true;
inputHashMethod = "version";
enableVulkan = false;
rendererOverride = null;
enableHUD = false;
enabledWineSymlinks = {};
graphicsDriver = "auto";
inhibitIdle = false;
nativeBuildInputs = [copyDesktopIcons copyDesktopItems];
winAppInstall = replaceStrings ["\r"] [""] ''
wine64 ${src}
wineserver -W
wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /t REG_SZ /v UseTakeFocus /d N /f
'';
winAppPreRun = replaceStrings ["\r"] [""] ''
wineserver -W
wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /t REG_SZ /v UseTakeFocus /d N /f
'';
winAppRun = replaceStrings ["\r"] [""] ''
wine64 "$WINEPREFIX/drive_c/Program Files/Studio 2.0/Studio.exe" "$ARGS"
'';
winAppPostRun = "";
installPhase = replaceStrings ["\r"] [""] ''
runHook preInstall
ln -s $out/bin/.launcher $out/bin/${pname}
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
mimeTypes = [];
name = pname;
exec = pname;
icon = pname;
desktopName = "Bricklink studio";
genericName = "Lego creation app";
categories = [];
})
];
desktopIcon = makeDesktopIcon {
name = pname;
src = ./studio.png;
};
meta = {
description = "App for creating lego builds";
homepage = "https://www.bricklink.com/v3/studio/main.page";
license = "";
maintainers = [];
platforms = ["x86_64-linux"];
};
}

View file

@ -1,9 +1,28 @@
{lib, ...}: {
perSystem = {pkgs, ...}: {
packages.vaultwarden = pkgs.callPackage ./package.nix {};
{lib, stdenv, rustPlatform, fetchFromGitHub, openssl, pkg-config, postgresql, dbBackend ? "postgresql", ...}:
rustPlatform.buildRustPackage rec {
pname = "vaultwarden";
version = "1.34.3";
src = fetchFromGitHub {
owner = "Timshel";
repo = "vaultwarden";
rev = "1.34.3";
hash = "sha256-Dj0ySVRvBZ/57+UHas3VI8bi/0JBRqn0IW1Dq+405J0=";
};
flake.overlays."package/vaultwarden" = final: _prev: {
vaultwarden = final.callPackage ./package.nix {};
cargoHash = "sha256-4sDagd2XGamBz1XvDj4ycRVJ0F+4iwHOPlj/RglNDqE=";
env.VW_VERSION = version;
nativeBuildInputs = [pkg-config];
buildInputs =
[openssl]
++ lib.optional (dbBackend == "postgresql") postgresql;
buildFeatures = dbBackend;
meta = with lib; {
license = licenses.agpl3Only;
mainProgram = "vaultwarden";
};
}

View file

@ -1,28 +0,0 @@
{lib, stdenv, rustPlatform, fetchFromGitHub, openssl, pkg-config, postgresql, dbBackend ? "postgresql", ...}:
rustPlatform.buildRustPackage rec {
pname = "vaultwarden";
version = "1.34.3";
src = fetchFromGitHub {
owner = "Timshel";
repo = "vaultwarden";
rev = "1.34.3";
hash = "sha256-Dj0ySVRvBZ/57+UHas3VI8bi/0JBRqn0IW1Dq+405J0=";
};
cargoHash = "sha256-4sDagd2XGamBz1XvDj4ycRVJ0F+4iwHOPlj/RglNDqE=";
env.VW_VERSION = version;
nativeBuildInputs = [pkg-config];
buildInputs =
[openssl]
++ lib.optional (dbBackend == "postgresql") postgresql;
buildFeatures = dbBackend;
meta = with lib; {
license = licenses.agpl3Only;
mainProgram = "vaultwarden";
};
}