1{
2 lib,
3 bash,
4 dbus,
5 fetchFromGitHub,
6 installShellFiles,
7 libgit2,
8 libssh2,
9 openssl,
10 pkg-config,
11 rustPlatform,
12 systemd,
13 xz,
14 zlib,
15}:
16
17rustPlatform.buildRustPackage rec {
18 pname = "ciel";
19 version = "3.9.6";
20
21 src = fetchFromGitHub {
22 owner = "AOSC-Dev";
23 repo = "ciel-rs";
24 tag = "v${version}";
25 hash = "sha256-J6mXNJuLkKVNzE5lRRQEOt0yb2ow5EctXkr22eqOfII=";
26 };
27
28 cargoHash = "sha256-n9VCy3nlZ+WDm9krlc3XO/YgdrbEMJuODBvYRkznUgU=";
29
30 nativeBuildInputs = [
31 pkg-config
32 installShellFiles
33 ];
34
35 # ciel has plugins which is actually bash scripts.
36 # Therefore, bash is required for plugins to work.
37 buildInputs = [
38 bash
39 systemd
40 dbus
41 openssl
42 libssh2
43 libgit2
44 xz
45 zlib
46 ];
47
48 postInstall = ''
49 mv -v "$out/bin/ciel-rs" "$out/bin/ciel"
50
51 # From install-assets.sh
52 install -Dm555 -t "$out/libexec/ciel-plugin" plugins/*
53
54 # Install completions
55 installShellCompletion --cmd ciel \
56 --bash completions/ciel.bash \
57 --fish completions/ciel.fish \
58 --zsh completions/_ciel
59 '';
60
61 meta = with lib; {
62 description = "Tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers";
63 homepage = "https://github.com/AOSC-Dev/ciel-rs";
64 license = licenses.mit;
65 platforms = platforms.linux;
66 maintainers = with maintainers; [
67 A1ca7raz
68 yisuidenghua
69 ];
70 mainProgram = "ciel";
71 };
72}