4 Commits

Author SHA1 Message Date
Tickbase
220763b389 Merge pull request #109 from naguiagahnim/main
Package app for Nix
2026-04-29 14:19:43 +02:00
Agahnim
3d894266a7 Add Nix installation instructions to README.md 2026-04-29 14:13:47 +02:00
Agahnim
33492a6a55 nix: Init package 2026-04-29 13:43:32 +02:00
Agahnim
92f4d82e6c Update package-lock.json 2026-04-29 10:52:33 +02:00
4 changed files with 2213 additions and 2591 deletions

View File

@@ -46,6 +46,70 @@ While the core functionality is working, please be aware that this is an early r
WEBKIT_DISABLE_DMABUF_RENDERER=1 ./creamlinux.AppImage WEBKIT_DISABLE_DMABUF_RENDERER=1 ./creamlinux.AppImage
``` ```
### Nix
You can fetch this repository in your configuration using `pkgs.fetchFromGithub`:
```nix
let
creamlinux = pkgs.callPackage (pkgs.fetchFromGitHub {
owner = "Novattz";
repo = "creamlinux-installer";
rev = "main";
hash = ""; # You can use nix-prefetch-url to determine which value to put here, or paste the value returned by the error your rebuild will output
}) {};
in
{
environment.systemPackages = [ creamlinux ];
}
```
or, using `builtins.fetchTarball`:
```nix
let
creamlinux-src = builtins.fetchTarball {
url = "https://github.com/Novattz/creamlinux-installer/archive/main.tar.gz";
sha256 = ""; # See above
};
in
{
environment.systemPackages = [
(pkgs.callPackage creamlinux-src {})
];
}
```
alternatively and if you want to pin the package version, using [npins](https://github.com/andir/npins):
```bash
npins add github Novattz creamlinux-installer --branch main
```
```nix
let
sources = import ./npins;
creamlinux = pkgs.callPackage sources.creamlinux-installer {};
in
{
environment.systemPackages = [ creamlinux ];
}
```
Those are the recommended methods to add creamlinux-installer to your environment. However, you could also add it as an input of your flake, like so:
```nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
creamlinux-installer = {
type = "github";
owner = "Novattz";
repo = "creamlinux-installer";
flake = false;
};
};
}
```
Then, in your configuration:
```nix
environment.systemPackages = [
(pkgs.callPackage inputs.creamlinux-installer {})
];
```
### Building from Source ### Building from Source
#### Prerequisites #### Prerequisites

57
default.nix Normal file
View File

@@ -0,0 +1,57 @@
{pkgs ? import <nixpkgs> {}}: let
cargoRoot = "src-tauri";
src = ./.;
patchSassEmbedded = pkgs.writeShellScriptBin "patch-sass-embedded" ''
NIX_LD="${pkgs.lib.fileContents "${pkgs.stdenv.cc}/nix-support/dynamic-linker"}"
for dart_bin in node_modules/sass-embedded-linux-*/dart-sass/src/dart; do
if [ -f "$dart_bin" ]; then
${pkgs.patchelf}/bin/patchelf --set-interpreter "$NIX_LD" "$dart_bin"
fi
done
'';
in
pkgs.rustPlatform.buildRustPackage {
pname = "creamlinux-installer";
version = "1.5.0-unstable-2026-04-23";
inherit src;
cargoLock.lockFile = ./src-tauri/Cargo.lock;
npmDeps = pkgs.fetchNpmDeps {
inherit src;
hash = "sha256-anYTERlnfOGDsGW0joy+h7wECJNDy6q+0a2to6t36pg=";
};
nativeBuildInputs =
[
pkgs.cargo-tauri.hook
pkgs.nodejs
pkgs.npmHooks.npmConfigHook
pkgs.pkg-config
]
++ pkgs.lib.optionals pkgs.stdenv.isLinux [
pkgs.wrapGAppsHook4
];
buildInputs = pkgs.lib.optionals pkgs.stdenv.isLinux [
pkgs.glib-networking
pkgs.openssl
pkgs.webkitgtk_4_1
];
inherit cargoRoot;
buildAndTestSubdir = cargoRoot;
postPatch = ''
substituteInPlace src-tauri/tauri.conf.json \
--replace-fail '"createUpdaterArtifacts": true' '"createUpdaterArtifacts": false'
'';
preBuild = ''
${patchSassEmbedded}/bin/patch-sass-embedded
'';
env.NO_STRIP = true;
}

4679
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -30,7 +30,7 @@ tauri-plugin-shell = "2.0.0-rc"
tauri-plugin-dialog = "2.0.0-rc" tauri-plugin-dialog = "2.0.0-rc"
tauri-plugin-fs = "2.0.0-rc" tauri-plugin-fs = "2.0.0-rc"
num_cpus = "1.16.0" num_cpus = "1.16.0"
tauri-plugin-process = "2" tauri-plugin-process = "2.2.1"
async-trait = "0.1.89" async-trait = "0.1.89"
sha2 = "0.10.9" sha2 = "0.10.9"
rand = "0.9.2" rand = "0.9.2"
@@ -39,4 +39,4 @@ rand = "0.9.2"
custom-protocol = ["tauri/custom-protocol"] custom-protocol = ["tauri/custom-protocol"]
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
tauri-plugin-updater = "2" tauri-plugin-updater = "2.7.1"