Petit nettoyage de printemps

belenios
RatCornu 2026-03-24 00:59:36 +01:00
parent 72622f4ef3
commit fbe659d0c5
No known key found for this signature in database
GPG Key ID: B3BE02E379E6E8E2
25 changed files with 400 additions and 317 deletions

View File

@ -120,6 +120,8 @@
perSystem = perSystem =
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
packages = pkgs.callPackage ./pkgs/packages.nix { inherit pkgs; };
devShells = { devShells = {
default = pkgs.callPackage ./devshells/default.nix { inherit (inputs) agenix; }; default = pkgs.callPackage ./devshells/default.nix { inherit (inputs) agenix; };
}; };

View File

@ -1,4 +1,9 @@
{ pkgs, lib, modulesPath, ... }: {
pkgs,
lib,
modulesPath,
...
}:
{ {
imports = [ imports = [
@ -12,14 +17,21 @@
}; };
nix = { nix = {
settings.experimental-features = [ "nix-command" "flakes" ]; settings.experimental-features = [
"nix-command"
"flakes"
];
extraOptions = "experimental-features = nix-command flakes"; extraOptions = "experimental-features = nix-command flakes";
}; };
boot = { boot = {
kernelParams = [ "console=ttyS0,115200" ]; kernelParams = [ "console=ttyS0,115200" ];
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
supportedFilesystems = lib.mkForce [ "btrfs" "vfat" "zfs"]; supportedFilesystems = lib.mkForce [
"btrfs"
"vfat"
"zfs"
];
}; };
services.openssh = { services.openssh = {
@ -37,35 +49,32 @@
programs.vim.enable = true; programs.vim.enable = true;
environment.systemPackages = environment.systemPackages =
let crans-ip-config = let
( crans-ip-config = (
pkgs.writeShellScriptBin "crans-ip-config" pkgs.writeShellScriptBin "crans-ip-config" ''
'' #!/usr/bin/env bash
#!/usr/bin/env bash echo -n "ID : "
echo -n "ID : " read ID
read ID ip -c l
ip -c l echo -n "vlan 10, interface ensXX : "
echo -n "vlan 10, interface ensXX : " read INTERFACE10
read INTERFACE10 ip addr add 172.16.10.$ID/24 dev ens$INTERFACE10
ip addr add 172.16.10.$ID/24 dev ens$INTERFACE10 ip link set ens$INTERFACE10 up
echo -n "souhaitez-vous configurer le vlan 3 ? (o/N)"
read REP
if [[ "$REP" == [oOyY] ]]; then
echo -n "vlan 3, interface ensXX : "
read INTERFACE3
ip addr add 172.16.3.$ID/24 dev ens$INTERFACE3
ip link set ens$INTERFACE10 up ip link set ens$INTERFACE10 up
echo -n "souhaitez-vous configurer le vlan 3 ? (o/N)" ip route add default via 172.16.3.99
read REP else
if [[ "$REP" == [oOyY] ]]; then ip route add default via 172.16.10.101
echo -n "vlan 3, interface ensXX : " fi
read INTERFACE3
ip addr add 172.16.3.$ID/24 dev ens$INTERFACE3
ip link set ens$INTERFACE10 up
ip route add default via 172.16.3.99
else
ip route add default via 172.16.10.101
fi
''
);
crans-disk-config =
(
pkgs.writeShellScriptBin "crans-disk-config"
'' ''
);
crans-disk-config = (
pkgs.writeShellScriptBin "crans-disk-config" ''
#!/usr/bin/env bash #!/usr/bin/env bash
lsblk lsblk
echo -n "disque /dev/XXX : " echo -n "disque /dev/XXX : "
@ -85,7 +94,9 @@
echo "Pensez également à vous mettre sur la branche appropriée" echo "Pensez également à vous mettre sur la branche appropriée"
'' ''
); );
in with pkgs; [ in
with pkgs;
[
bat bat
fd fd
helix helix
@ -94,7 +105,7 @@
shelldap shelldap
crans-ip-config crans-ip-config
crans-disk-config crans-disk-config
]; ];
users.users.root = { users.users.root = {
password = "crans"; password = "crans";

View File

@ -8,7 +8,9 @@ let
pam_modules_path = "${pkgs.pam}/lib/security"; pam_modules_path = "${pkgs.pam}/lib/security";
# nixos/modules/security/pam.nix # nixos/modules/security/pam.nix
pam_ldap = "${if config.users.ldap.daemon.enable then pkgs.nss_pam_ldapd else pkgs.pam_ldap}/lib/security"; pam_ldap = "${
if config.users.ldap.daemon.enable then pkgs.nss_pam_ldapd else pkgs.pam_ldap
}/lib/security";
in in
{ {
services.collabora-online = { services.collabora-online = {
@ -22,13 +24,19 @@ in
net = { net = {
listen = "loopback"; listen = "loopback";
post_allow.host = ["::1" "172.0.0.1"]; post_allow.host = [
"::1"
"172.0.0.1"
];
}; };
# ouvre seulement les fichiers depuis nextcloud # ouvre seulement les fichiers depuis nextcloud
storage.wopi = { storage.wopi = {
"@allow" = true; "@allow" = true;
host = ["nextcloud.crans.org" "nextcloud.adm.crans.org"]; host = [
"nextcloud.crans.org"
"nextcloud.adm.crans.org"
];
}; };
admin_console.enable_pam = true; admin_console.enable_pam = true;

View File

@ -1,22 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = [
"ata_piix"
"uhci_hcd"
"virtio_pci"
"virtio_scsi"
"sd_mod"
"sr_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/ef139717-388f-41f3-b707-b0f75af3f546"; device = "/dev/disk/by-uuid/ef139717-388f-41f3-b707-b0f75af3f546";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [ ];

View File

@ -44,7 +44,6 @@
]; ];
}; };
appstoreEnable = true; appstoreEnable = true;
extraAppsEnable = true; extraAppsEnable = true;
}; };

View File

@ -1,22 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = [
"ata_piix"
"uhci_hcd"
"virtio_pci"
"virtio_scsi"
"sd_mod"
"sr_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/ad1cdd57-44a2-4e1c-83c7-8810a567e0f7"; device = "/dev/disk/by-uuid/ad1cdd57-44a2-4e1c-83c7-8810a567e0f7";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [ ];

View File

@ -6,17 +6,21 @@
ens18 = { ens18 = {
ipv4 = { ipv4 = {
addresses = [{ addresses = [
address = "172.16.10.118"; {
prefixLength = 24; address = "172.16.10.118";
}]; prefixLength = 24;
}
];
}; };
ipv6 = { ipv6 = {
addresses = [{ addresses = [
address = "fd00::10:0:ff:fe01:1810"; {
prefixLength = 64; address = "fd00::10:0:ff:fe01:1810";
}]; prefixLength = 64;
}
];
}; };
}; };
@ -24,27 +28,35 @@
ens19 = { ens19 = {
ipv4 = { ipv4 = {
addresses = [{ addresses = [
address = "172.16.3.118"; {
prefixLength = 24; address = "172.16.3.118";
}]; prefixLength = 24;
routes = [{ }
address = "0.0.0.0"; ];
via = "172.16.3.99"; routes = [
prefixLength = 0; {
}]; address = "0.0.0.0";
via = "172.16.3.99";
prefixLength = 0;
}
];
}; };
ipv6 = { ipv6 = {
addresses = [{ addresses = [
address = "2a0c:700:3::ff:fe01:1803"; {
prefixLength = 64; address = "2a0c:700:3::ff:fe01:1803";
}]; prefixLength = 64;
routes = [{ }
address = "::"; ];
via = "2a0c:700:3::ff:fe00:9903"; routes = [
prefixLength = 0; {
}]; address = "::";
via = "2a0c:700:3::ff:fe00:9903";
prefixLength = 0;
}
];
}; };
}; };

View File

@ -1,22 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = [
"ata_piix"
"uhci_hcd"
"virtio_pci"
"virtio_scsi"
"sd_mod"
"sr_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/c4c2de17-2965-4c0a-b4c5-7d518712c9aa"; device = "/dev/disk/by-uuid/c4c2de17-2965-4c0a-b4c5-7d518712c9aa";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [ ];

View File

@ -1,4 +1,4 @@
{...}: { ... }:
{ {
boot.loader.grub = { boot.loader.grub = {
splashImage = ../../assets/nix-crans_bootloader.png; splashImage = ../../assets/nix-crans_bootloader.png;

View File

@ -52,11 +52,13 @@ in
paths = [ paths = [
"/etc" "/etc"
"/var" "/var"
] ++ cfg.additionalPaths; ]
++ cfg.additionalPaths;
exclude = [ exclude = [
"/var/cache" "/var/cache"
"/var/lib/lxcfs" "/var/lib/lxcfs"
] ++ cfg.additionalExcludes; ]
++ cfg.additionalExcludes;
timerConfig = { timerConfig = {
OnCalendar = cfg.when; OnCalendar = cfg.when;
RandomizedDelaySec = "6h"; RandomizedDelaySec = "6h";

View File

@ -202,25 +202,27 @@ in
}) cfg.virtualHosts; }) cfg.virtualHosts;
# Génération des alias # Génération des alias
getAliases = name: config: lib.foldr ( getAliases =
tld: acc: name: config:
acc lib.foldr
++ (
(lib.foldr (alias: acc: acc ++ ["${alias}.crans.${tld}"]) ["${name}.crans.${tld}"] config.serverAliases) tld: acc:
) acc
(lib.foldr (alias: acc: acc ++ ["${alias}.crans.${mainTld}"]) [] config.serverAliases) ++ (lib.foldr (alias: acc: acc ++ [ "${alias}.crans.${tld}" ]) [
otherTld; "${name}.crans.${tld}"
] config.serverAliases)
)
(lib.foldr (alias: acc: acc ++ [ "${alias}.crans.${mainTld}" ]) [ ] config.serverAliases)
otherTld;
# Configuration des alias # Configuration des alias
aliasConfig = lib.foldr ( aliasConfig = lib.foldr (
vhost: acc: vhost: acc:
acc acc
// // lib.foldr (
lib.foldr (
alias: acc: alias: acc:
acc acc
// // {
{
"${vhost.name}-alias-${alias}" = rec { "${vhost.name}-alias-${alias}" = rec {
rejectSSL = vhost.value.httpOnly; rejectSSL = vhost.value.httpOnly;
forceSSL = !rejectSSL; forceSSL = !rejectSSL;

View File

@ -1,28 +1,83 @@
{ { pkgs }:
fetchFromGitLab,
ocamlPackages, let
belenios-server, ocamlPackages = pkgs.ocaml-ng.ocamlPackages_5_3;
belenios-tool
}:
ocamlPackages.buildDunePackage rec {
pname = "belenios";
version = "3.1"; version = "3.1";
src = pkgs.fetchFromGitLab {
src = fetchFromGitLab {
domain = "gitlab.inria.fr"; domain = "gitlab.inria.fr";
owner = pname; owner = "belenios";
repo = pname; repo = "belenios";
rev = version; rev = version;
hash = "sha256-Mrx6AQakeBg6IeqNyDUZ5j6KaUGOh1AUfrLIxvDI45M="; hash = "sha256-Mrx6AQakeBg6IeqNyDUZ5j6KaUGOh1AUfrLIxvDI45M=";
}; };
in
nativeBuildInputs = with ocamlPackages; [ pkgs.stdenvNoCC.mkDerivation rec {
odoc name = "belenios";
]; inherit version;
buildInputs = [ belenios = ocamlPackages.buildDunePackage {
belenios-server pname = "belenios";
belenios-tool inherit version src;
];
nativeBuildInputs = with ocamlPackages; [
odoc
];
buildInputs = [
belenios-server
belenios-tool
];
};
belenios-lib = pkgs.callPackage ./lib.nix {
inherit
version
src
belenios-platform
ocamlPackages
;
};
belenios-platform = pkgs.callPackage ./platform.nix { inherit version src ocamlPackages; };
belenios-platform-js = pkgs.callPackage ./platform-js.nix {
inherit
version
src
ocamlPackages
belenios-platform
;
};
belenios-platform-native = pkgs.callPackage ./platform-native.nix {
inherit
version
src
ocamlPackages
belenios-platform
;
};
belenios-server = pkgs.callPackage ./server.nix {
inherit
version
src
ocamlPackages
belenios-lib
belenios-platform-native
belenios-platform-js
;
};
belenios-tool = pkgs.callPackage ./tool.nix {
inherit
version
src
ocamlPackages
belenios-lib
belenios-platform-native
;
};
} }

View File

@ -1,59 +0,0 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1774244481,
"narHash": "sha256-4XfMXU0DjN83o6HWZoKG9PegCvKvIhNUnRUI19vzTcQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4590696c8693fea477850fe379a01544293ca4e2",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-25.11",
"type": "indirect"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1772328832,
"narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View File

@ -1,12 +1,13 @@
{ {
belenios, version,
src,
belenios-platform, belenios-platform,
ocamlPackages, ocamlPackages,
}: }:
ocamlPackages.buildDunePackage { ocamlPackages.buildDunePackage {
pname = "belenios-lib"; pname = "belenios-lib";
inherit (belenios) version src; inherit version src;
nativeBuildInputs = with ocamlPackages; [ nativeBuildInputs = with ocamlPackages; [
atdgen atdgen
@ -18,16 +19,15 @@ ocamlPackages.buildDunePackage {
biniou biniou
]; ];
propagatedBuildInputs = propagatedBuildInputs = [
[ belenios-platform
belenios-platform ]
] ++ (with ocamlPackages; [
++ (with ocamlPackages; [ atdgen-runtime
atdgen-runtime base64
base64 ocaml_gettext
ocaml_gettext re
re uri
uri yojson
yojson ]);
]);
} }

View File

@ -1,12 +1,13 @@
{ {
belenios, version,
src,
belenios-platform, belenios-platform,
ocamlPackages, ocamlPackages,
}: }:
ocamlPackages.buildDunePackage { ocamlPackages.buildDunePackage {
pname = "belenios-platform-js"; pname = "belenios-platform-js";
inherit (belenios) version src; inherit version src;
nativeBuildInputs = with ocamlPackages; [ nativeBuildInputs = with ocamlPackages; [
odoc odoc

View File

@ -1,27 +1,27 @@
{ {
belenios, version,
src,
belenios-platform, belenios-platform,
ocamlPackages, ocamlPackages,
libsodium libsodium,
}: }:
ocamlPackages.buildDunePackage { ocamlPackages.buildDunePackage {
pname = "belenios-platform-native"; pname = "belenios-platform-native";
inherit (belenios) version src; inherit version src;
nativeBuildInputs = with ocamlPackages; [ nativeBuildInputs = with ocamlPackages; [
odoc odoc
]; ];
buildInputs = buildInputs = [
[ belenios-platform
belenios-platform libsodium
libsodium ]
] ++ (with ocamlPackages; [
++ (with ocamlPackages; [ lwt
lwt cryptokit
cryptokit digestif
digestif zarith
zarith ]);
]);
} }

View File

@ -1,15 +1,12 @@
{ {
belenios, version,
src,
ocamlPackages, ocamlPackages,
}: }:
ocamlPackages.buildDunePackage { ocamlPackages.buildDunePackage {
pname = "belenios-platform"; pname = "belenios-platform";
inherit (belenios) version src; inherit version src;
# nativeBuildInputs = with ocamlPackages; [
# odoc
# ];
propagatedBuildInputs = with ocamlPackages; [ propagatedBuildInputs = with ocamlPackages; [
lwt lwt

View File

@ -1,5 +1,6 @@
{ {
belenios, version,
src,
belenios-lib, belenios-lib,
belenios-platform-native, belenios-platform-native,
belenios-platform-js, belenios-platform-js,
@ -8,9 +9,7 @@
ocamlPackages.buildDunePackage { ocamlPackages.buildDunePackage {
pname = "belenios-server"; pname = "belenios-server";
inherit (belenios) version src; inherit version src;
# dontDetectOcamlConflicts = true;
nativeBuildInputs = with ocamlPackages; [ nativeBuildInputs = with ocamlPackages; [
atdgen atdgen
@ -21,39 +20,36 @@ ocamlPackages.buildDunePackage {
patches = [ ./netstring.patch ]; patches = [ ./netstring.patch ];
buildInputs = buildInputs = [
[ # belenios-lib
# belenios-lib # belenios-platform-native
# belenios-platform-native belenios-platform-js
belenios-platform-js ]
] ++ (with ocamlPackages; [
++ (with ocamlPackages; [ # calendar
# calendar # csv
# csv eliom
eliom gettext-camomile
gettext-camomile # lwt
# lwt # ocamlnet
# ocamlnet ocsipersist
ocsipersist ocsipersist-lib
ocsipersist-lib ocsipersist-sqlite-config
ocsipersist-sqlite-config ocsigen_server
ocsigen_server ocaml_gettext
ocaml_gettext xml-light
xml-light tyxml
tyxml markup
markup sendmail
sendmail ]);
]);
propagatedBuildInputs = propagatedBuildInputs = [
[ belenios-lib
belenios-lib belenios-platform-native
belenios-platform-native ]
] ++ (with ocamlPackages; [
++ (with ocamlPackages; [ calendar
calendar lwt
lwt xml-light
xml-light ]);
]);
} }

View File

@ -1,11 +1,16 @@
{ lib, config, pkgs, ... }: {
lib,
config,
pkgs,
...
}:
let let
cfg = config.services.belenios; cfg = config.services.belenios;
configFile = pkgs.writeText "belenios-server.conf" cfg.config; configFile = pkgs.writeText "belenios-server.conf" cfg.config;
inherit (lib) mkEnableOption mkPackageOption mkOption mkIf; inherit (lib) mkEnableOption mkOption mkIf;
in in
{ {
options.services.belenios = { options.services.belenios = {

View File

@ -1,28 +1,27 @@
{ {
belenios, version,
src,
belenios-lib, belenios-lib,
# belenios-platform,
belenios-platform-native, belenios-platform-native,
libsodium, libsodium,
ocamlPackages ocamlPackages,
}: }:
ocamlPackages.buildDunePackage { ocamlPackages.buildDunePackage {
pname = "belenios-tool"; pname = "belenios-tool";
inherit (belenios) version src; inherit version src;
buildInputs = buildInputs = [
[ belenios-lib
belenios-lib # belenios-platform
# belenios-platform belenios-platform-native
belenios-platform-native libsodium
libsodium ]
] ++ (with ocamlPackages; [
++ (with ocamlPackages; [ cmdliner
cmdliner cryptokit
cryptokit hex
hex ]);
]);
propagatedBuildInputs = with ocamlPackages; [ propagatedBuildInputs = with ocamlPackages; [
lwt lwt

View File

@ -1,10 +1,9 @@
{ ... }: { ... }:
{ {
imports = imports = [
[ ./services.nix
./services.nix ];
];
# Import local packages # Import local packages
nixpkgs.overlays = [ nixpkgs.overlays = [

View File

@ -3,25 +3,50 @@
nixpkgs.url = "nixpkgs/nixos-25.11"; nixpkgs.url = "nixpkgs/nixos-25.11";
}; };
outputs = inputs@{ flake-parts, ... }: outputs =
inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } { flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" ]; systems = [ "x86_64-linux" ];
perSystem = { pkgs, ... }: rec { perSystem =
devShells.default = pkgs.mkShell { { pkgs, ... }:
packages = []; rec {
devShells.default = pkgs.mkShell {
packages = [ ];
};
packages =
let
ocamlPackages = pkgs.ocaml-ng.ocamlPackages_5_2;
in
rec {
belenios = pkgs.callPackage ./belenios { inherit ocamlPackages belenios-server belenios-tool; };
belenios-lib = pkgs.callPackage ./belenios/lib.nix {
inherit belenios ocamlPackages belenios-platform;
};
belenios-tool = pkgs.callPackage ./belenios/tool.nix {
inherit
belenios
ocamlPackages
belenios-lib
belenios-platform-native
;
};
belenios-server = pkgs.callPackage ./belenios/server.nix {
inherit
belenios
ocamlPackages
belenios-lib
belenios-platform-native
belenios-platform-js
;
};
belenios-platform = pkgs.callPackage ./belenios/platform.nix { inherit belenios ocamlPackages; };
belenios-platform-native = pkgs.callPackage ./belenios/platform-native.nix {
inherit belenios ocamlPackages belenios-platform;
};
belenios-platform-js = pkgs.callPackage ./belenios/platform-js.nix {
inherit belenios ocamlPackages belenios-platform;
};
};
}; };
packages = let
ocamlPackages = pkgs.ocaml-ng.ocamlPackages_5_2;
in rec {
belenios = pkgs.callPackage ./belenios { inherit ocamlPackages belenios-server belenios-tool; };
belenios-lib = pkgs.callPackage ./belenios/lib.nix { inherit belenios ocamlPackages belenios-platform; };
belenios-tool = pkgs.callPackage ./belenios/tool.nix { inherit belenios ocamlPackages belenios-lib belenios-platform-native; };
belenios-server = pkgs.callPackage ./belenios/server.nix { inherit belenios ocamlPackages belenios-lib belenios-platform-native belenios-platform-js; };
belenios-platform = pkgs.callPackage ./belenios/platform.nix { inherit belenios ocamlPackages; };
belenios-platform-native = pkgs.callPackage ./belenios/platform-native.nix { inherit belenios ocamlPackages belenios-platform; };
belenios-platform-js = pkgs.callPackage ./belenios/platform-js.nix { inherit belenios ocamlPackages belenios-platform; };
};
};
}; };
} }

View File

@ -1,14 +1,5 @@
{ pkgs ? import <nixpkgs> { } }: { pkgs, ... }:
let {
ocamlPackages = pkgs.ocaml-ng.ocamlPackages_4_14; belenios = pkgs.callPackage ./belenios { inherit pkgs; };
in
rec {
belenios = pkgs.callPackage ./belenios { inherit ocamlPackages belenios-server belenios-tool; };
belenios-lib = pkgs.callPackage ./belenios/lib.nix { inherit belenios ocamlPackages belenios-platform; };
belenios-tool = pkgs.callPackage ./belenios/tool.nix { inherit belenios ocamlPackages belenios-lib belenios-platform belenios-platform-native; };
belenios-server = pkgs.callPackage ./belenios/server.nix { inherit belenios ocamlPackages belenios-lib belenios-platform-native belenios-platform-js; };
belenios-platform = pkgs.callPackage ./belenios/platform.nix { inherit belenios ocamlPackages; };
belenios-platform-native = pkgs.callPackage ./belenios/platform-native.nix { inherit belenios ocamlPackages belenios-platform; };
belenios-platform-js = pkgs.callPackage ./belenios/platform-js.nix { inherit belenios ocamlPackages belenios-platform; };
} }

View File

@ -1,8 +1,7 @@
{ ... }: { ... }:
{ {
imports = imports = [
[ ./belenios/services.nix
./belenios/services.nix ];
];
} }