From fd834eb1866308d47f24f17dfd917fe3db7a5980 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 30 Mar 2017 00:08:18 +0200 Subject: [PATCH 001/120] munin: update mail address --- services/monitoring-munin.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index d8e6835..7bd5f3f 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -36,7 +36,7 @@ mkIf true { address 127.0.0.1 ''; extraGlobalConfig = '' - contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/public/services/munin-muttrc -s "Munin notification for ''${var:host}" jean-pierre@ocean.prunetwork.fr + contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/public/services/munin-muttrc -s "Munin notification for ''${var:host}" root@prunetwork.fr ''; }; From 8c0a18a55b92ace56c96bafd8cccfdb72478a9a2 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 1 Apr 2017 07:51:28 +0200 Subject: [PATCH 002/120] awesome: ajout clementine sur maj + F6 --- public/config-awesome-4-rc.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/public/config-awesome-4-rc.lua b/public/config-awesome-4-rc.lua index 042de0c..5b87e8d 100644 --- a/public/config-awesome-4-rc.lua +++ b/public/config-awesome-4-rc.lua @@ -341,11 +341,12 @@ globalkeys = awful.util.table.join( awful.key({ modkey }, "F5", function () awful.util.spawn("spacefm") end), awful.key({ modkey }, "F6", function () awful.util.spawn("vlc") end), awful.key({ modkey }, "F7", function () awful.util.spawn("claws-mail") end), + awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") end), awful.key({ modkey }, "F12", function () awful.util.spawn("slock") end), awful.key({ modkey, "Shift" }, "F1", function () awful.util.spawn("claws-mail") end), awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") end), - awful.key({ modkey }, "F10", function () awful.util.spawn("xrandr-auto-2") end), - awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") end) + awful.key({ modkey, "Shift" }, "F6", function () awful.util.spawn("clementine") end), + awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("xrandr-auto-2") end) -- awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-left") end), -- awful.key({ modkey, "Control" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-right") end), From e204ffb8417be54aa08fc590193ef0f8f0a0d5a0 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 1 Apr 2017 09:26:09 +0200 Subject: [PATCH 003/120] ajout d'un client pour la sauvegarde nuagique --- applications/terminal/client-internet.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/applications/terminal/client-internet.nix b/applications/terminal/client-internet.nix index 146b9f0..064b6e2 100644 --- a/applications/terminal/client-internet.nix +++ b/applications/terminal/client-internet.nix @@ -20,5 +20,8 @@ environment.systemPackages = with pkgs; [ ## Mail & Discussion (texte, audio) mutt + + ## Sauvegarde nuagique (cloud storage) + rclone ]; } From f16e4d8934cccd8e2157fd2e53316bd56213da04 Mon Sep 17 00:00:00 2001 From: System administrator Date: Mon, 27 Mar 2017 17:29:31 +0200 Subject: [PATCH 004/120] changement du port de hoogle (conflit au boulot) --- services/hoogle.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/hoogle.nix b/services/hoogle.nix index 83f39a7..5d6051e 100644 --- a/services/hoogle.nix +++ b/services/hoogle.nix @@ -11,6 +11,6 @@ mkIf cfg.developpement-haskell { services.hoogle = { enable = true; - # port 8080 + port = 8888; }; } From 184de980a5d65069793e0b02fe92c12332474a84 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Tue, 11 Apr 2017 01:06:57 +0200 Subject: [PATCH 005/120] munin: EXPERIMENTAL est membre du groupe postfix pour grapher les mails --- services/monitoring-munin.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 7bd5f3f..ffb831a 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -27,6 +27,10 @@ mkIf true { path = with pkgs; [ munin lm_sensors ]; serviceConfig.TimeoutStartSec = "3min"; }; + users.extraUsers.munin = { + #extraGroups = [ "postfix" "root" ]; + extraGroups = [ "postfix" ]; + }; ## Munin server -- generate /var/www/munin services.munin-cron = { From 2dc04d849b55c3c191d223bdf52acf8fc5cb6bf3 Mon Sep 17 00:00:00 2001 From: System administrator Date: Thu, 6 Apr 2017 10:20:31 +0200 Subject: [PATCH 006/120] encore une modification de port pour hoogle --- services/hoogle.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/hoogle.nix b/services/hoogle.nix index 5d6051e..2442a84 100644 --- a/services/hoogle.nix +++ b/services/hoogle.nix @@ -11,6 +11,6 @@ mkIf cfg.developpement-haskell { services.hoogle = { enable = true; - port = 8888; + port = 10080; }; } From 07d8924ecd7dc8394f67998d81e904b50848ddb2 Mon Sep 17 00:00:00 2001 From: System administrator Date: Tue, 11 Apr 2017 13:44:14 +0200 Subject: [PATCH 007/120] =?UTF-8?q?gparted:=20coquille,=20=C3=A9tait=20"pa?= =?UTF-8?q?rted"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 3 +++ applications/graphical/adminsys.nix | 2 +- iso-image/Makefile.installation | 7 +++++++ iso-image/configuration.nix | 23 +++++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 iso-image/Makefile.installation create mode 100644 iso-image/configuration.nix diff --git a/Makefile b/Makefile index 2ec6926..4c13a2a 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,9 @@ download-sources: # https://nixos.org/wiki/Download_all_sources nix-store -r $$(grep -l outputHash $$(nix-store -qR $$(nix-instantiate '' -A geeqie) | grep '.drv$$')) +build-iso: + nix-build '' -A config.system.build.isoImage -I nixos-config=/etc/nixos/base/iso-image/livecd-minimal.nix + ##--------- Commandes spécifiques pour GIT push: submodules-push diff --git a/applications/graphical/adminsys.nix b/applications/graphical/adminsys.nix index 7e5c66a..6dd53b3 100644 --- a/applications/graphical/adminsys.nix +++ b/applications/graphical/adminsys.nix @@ -12,7 +12,7 @@ mkIf cfg.graphical { # Paquets environment.systemPackages = with pkgs; [ # Gestion de FS - parted # Gestion graphique de partitions + gparted # Gestion graphique de partitions unetbootin # création de clefs USB bootables ]; } diff --git a/iso-image/Makefile.installation b/iso-image/Makefile.installation new file mode 100644 index 0000000..6d6f4e7 --- /dev/null +++ b/iso-image/Makefile.installation @@ -0,0 +1,7 @@ +all: + nixos-generate-config --root /mnt + git config --global user.email "nixos-live@example.org" + git config --global user.name "NixOS Live" + cd /mnt/etc/nixos && git init . && git add . && git commit -m "initial commit" + cd /mnt/etc/nixos && git submodule add http://gogs.prunetwork.fr:80/nixos-config/nixos-template-base.git base + cd /mnt/etc/nixos && git submodule add https://gogs.prunetwork.fr/Capgemini-CDS-Arkea/template-nixos.git capgemini-cmb diff --git a/iso-image/configuration.nix b/iso-image/configuration.nix new file mode 100644 index 0000000..b5bf770 --- /dev/null +++ b/iso-image/configuration.nix @@ -0,0 +1,23 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + capgemini-cmb/default.nix + /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix + nixos-template-base/base.nix + ]; + # Custom name + isoImage.isoName = pkgs.lib.mkForce "${config.isoImage.isoBaseName}-capgemini-${config.system.nixosLabel}-${pkgs.stdenv.system}.iso"; + # Avoid having the terminal flooded by kernel audit messages + boot.kernelParams = [ "audit=0" ]; + + # Files to copy to the liveCD + isoImage.contents = [ + { + source = ./Makefile.installation; + target = "/custom/Makefile"; + } + ]; + environment.shellAliases = { nixos-generate-custom-config = "cd /iso/custom/ && make";}; + networking.hostName = "nixos-livecd.corp.capgemini.com"; +} From 42db758638cae777f8141992d13a8c3a4e887ebf Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Tue, 11 Apr 2017 15:09:14 +0200 Subject: [PATCH 008/120] =?UTF-8?q?munin:=20postfix=20commande=20ppour=20d?= =?UTF-8?q?onner=20les=20droits=20de=20lecture=20=C3=A0=20munin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/monitoring-munin.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index ffb831a..7721e2f 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -32,6 +32,8 @@ mkIf true { extraGroups = [ "postfix" ]; }; + # chmod a+rX -Rv /var/lib/postfix/queue/ + ## Munin server -- generate /var/www/munin services.munin-cron = { enable = true; From c6fc32fbe7b05f1942144c7966b83ee0bcd5fc06 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 13 Apr 2017 19:52:12 +0200 Subject: [PATCH 009/120] radx: desactivation rabbitmq --- config-generator.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config-generator.nix b/config-generator.nix index 6cd21a0..329d839 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -266,7 +266,7 @@ in kibana = true; nix-serve-client = true; nix-serve-server = true; - rabbitmq = true; + #rabbitmq = true; tincAddress = "192.168.12.3/24"; tincExtraConfig = '' ConnectTo = monstre_dubronetwork_fr From fe6f3136f77b60f5a6d20a2ac43d94f492000a6e Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Fri, 21 Apr 2017 23:38:04 +0200 Subject: [PATCH 010/120] essai de backport d'un annuaire de gestion de parc --- base.nix | 1 + config-generator.nix | 1 - options.nix | 78 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 options.nix diff --git a/base.nix b/base.nix index 1717af4..dbfb1fb 100644 --- a/base.nix +++ b/base.nix @@ -11,6 +11,7 @@ in imports = [ # moulinette de configuration ./config-generator.nix + ./options.nix # subfolders ./applications/graphical/default.nix diff --git a/config-generator.nix b/config-generator.nix index 329d839..dab91fb 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -16,7 +16,6 @@ in ###### interface options = { - #* Utilisé pour afecter des capacités aux machines r6d.profiles = { # Domaine diff --git a/options.nix b/options.nix new file mode 100644 index 0000000..bfcb7e7 --- /dev/null +++ b/options.nix @@ -0,0 +1,78 @@ +{ config, lib, pkgs, r6d, ... }: +let + inherit (lib) mkEnableOption mkTextOption mkIf mkMerge mkOption singleton types; + + # TODO: Anglish :) + machineOptions = types.submodule { + options = { + + configuration-flags = types.submodule r6d.config-generator; + profiles = types.submodule r6d.profiles; + + ipAddress = mkOption { + description = "Adresse IP"; + type = lib.types.string; + }; + nix-serve-server = mkEnableOption "nix-serve server"; + nix-serve-client = mkEnableOption "nix-serve client"; + + tinc = { + enable = mkEnableOption "Enable tinc service"; + connectToAddress = mkOption { + default = ""; + example = "192.168.1.1"; + description = "External address to connect from another node."; + type = lib.types.string; + }; + vpnAddress = mkOption { + example = "192.168.69.69/24"; + description = "VPN local node IP address."; + type = lib.types.string; + }; + vpnCidrLength = mkOption { + default = 24; + example = 24; + description = "VPN netmask length."; + type = lib.types.int; + }; + extraConfig = mkOption { + default = ""; + example = '' + Mode = router + ConnecTo = bar + ''; + description = "Configuration supplémentaire pour tinc"; + type = lib.types.string; + }; + }; + + windowsBoot = { + enable = mkEnableOption "Activation du démarrage de Windows par Grub"; + drive = mkOption { + description = "Lecteur sur lequel est présent le système Windows (au format GRUB)"; + type = lib.types.string; + default = "hd0,1"; + }; + }; + windowsMount ={ + enable = mkEnableOption "Montage de la partition data Windows"; + device = mkOption { + description = "Lecteur sur lequel est présent le disque de data Windows"; + type = lib.types.string; + default = "/dev/sda2"; + }; + }; + }; + }; +in + +{ + options = { + r6d.machines = mkOption { + type = types.attrsOf machineOptions; + description = '' + Machines directory. + ''; + }; + }; +} From ddac52530badd3363d8cfe5bc5f86066492dee6a Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Mon, 24 Apr 2017 23:22:11 +0200 Subject: [PATCH 011/120] annuaire: ajout variables dans template & application --- applications/graphical/adminsys.nix | 2 ++ applications/graphical/bureau.nix | 2 ++ applications/graphical/bureautique.nix | 2 ++ applications/graphical/cao.nix | 2 ++ applications/graphical/cartographie.nix | 2 ++ applications/graphical/client-internet.nix | 2 ++ applications/graphical/default-applications.nix | 2 ++ applications/graphical/default.nix | 2 ++ applications/graphical/developpement-elm.nix | 2 ++ applications/graphical/developpement-haskell.nix | 2 ++ applications/graphical/developpement-java.nix | 2 ++ applications/graphical/developpement-jetbrains.nix | 2 ++ applications/graphical/developpement-rust.nix | 2 ++ applications/graphical/developpement.nix | 2 ++ applications/graphical/edition-musique.nix | 2 ++ applications/graphical/edition-photo.nix | 2 ++ applications/graphical/edition-video.nix | 2 ++ applications/graphical/jeux.nix | 2 ++ applications/graphical/multimedia.nix | 2 ++ applications/graphical/network.nix | 2 ++ applications/graphical/securite.nix | 2 ++ applications/terminal/adminsys.nix | 2 ++ applications/terminal/bureau.nix | 2 ++ applications/terminal/bureautique.nix | 2 ++ applications/terminal/cao.nix | 2 ++ applications/terminal/cartographie.nix | 2 ++ applications/terminal/client-internet.nix | 2 ++ applications/terminal/default-applications.nix | 2 ++ applications/terminal/default.nix | 2 ++ applications/terminal/developpement-elm.nix | 2 ++ applications/terminal/developpement-haskell.nix | 2 ++ applications/terminal/developpement-java.nix | 2 ++ applications/terminal/developpement-jetbrains.nix | 2 ++ applications/terminal/developpement-rust.nix | 2 ++ applications/terminal/developpement.nix | 2 ++ applications/terminal/edition-musique.nix | 2 ++ applications/terminal/edition-photo.nix | 2 ++ applications/terminal/edition-video.nix | 2 ++ applications/terminal/jeux.nix | 2 ++ applications/terminal/multimedia.nix | 2 ++ applications/terminal/network.nix | 2 ++ applications/terminal/securite.nix | 2 ++ base.nix | 2 ++ config-generator.nix | 2 ++ configuration/auto-upgrade.nix | 2 ++ configuration/awesome.nix | 2 ++ configuration/default.nix | 2 ++ configuration/environment.nix | 2 ++ configuration/laptop.nix | 2 ++ configuration/localisation.nix | 2 ++ configuration/network-ipv6.nix | 4 +++- configuration/network.nix | 2 ++ configuration/udev.nix | 2 ++ module-template.nix | 2 ++ services/default.nix | 2 ++ services/docker.nix | 2 ++ services/elasticsearch.nix | 2 ++ services/haveged.nix | 2 ++ services/hoogle.nix | 2 ++ services/hydra-build.nix | 2 ++ services/hydra-core.nix | 2 ++ services/kibana.nix | 2 ++ services/locate.nix | 2 ++ services/monitoring-munin.nix | 2 ++ services/print.nix | 2 ++ services/pulseaudio.nix | 2 ++ services/scanner.nix | 2 ++ services/ssh.nix | 2 ++ services/virtualbox.nix | 2 ++ services/x11.nix | 2 ++ services/xmonad/xmonad.nix | 2 ++ 71 files changed, 143 insertions(+), 1 deletion(-) diff --git a/applications/graphical/adminsys.nix b/applications/graphical/adminsys.nix index 6dd53b3..976efee 100644 --- a/applications/graphical/adminsys.nix +++ b/applications/graphical/adminsys.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.graphical { diff --git a/applications/graphical/bureau.nix b/applications/graphical/bureau.nix index 934d172..cd65fdf 100644 --- a/applications/graphical/bureau.nix +++ b/applications/graphical/bureau.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf profiles.isDesktopEnvironment { diff --git a/applications/graphical/bureautique.nix b/applications/graphical/bureautique.nix index a826720..d7356cb 100644 --- a/applications/graphical/bureautique.nix +++ b/applications/graphical/bureautique.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.officeSuite && cfg.graphical) { diff --git a/applications/graphical/cao.nix b/applications/graphical/cao.nix index 3be3ed7..a0247fb 100644 --- a/applications/graphical/cao.nix +++ b/applications/graphical/cao.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.conception-assistee && cfg.graphical) { diff --git a/applications/graphical/cartographie.nix b/applications/graphical/cartographie.nix index c2c91b9..4b6777f 100644 --- a/applications/graphical/cartographie.nix +++ b/applications/graphical/cartographie.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.cartographie && cfg.graphical) { diff --git a/applications/graphical/client-internet.nix b/applications/graphical/client-internet.nix index e6711eb..f21f33a 100644 --- a/applications/graphical/client-internet.nix +++ b/applications/graphical/client-internet.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in # TODO: ménage mkIf (cfg.internetSuite && cfg.graphical) { diff --git a/applications/graphical/default-applications.nix b/applications/graphical/default-applications.nix index 34478cb..835474d 100644 --- a/applications/graphical/default-applications.nix +++ b/applications/graphical/default-applications.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (true && cfg.graphical) { diff --git a/applications/graphical/default.nix b/applications/graphical/default.nix index 315933b..2b7b2ec 100644 --- a/applications/graphical/default.nix +++ b/applications/graphical/default.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in { diff --git a/applications/graphical/developpement-elm.nix b/applications/graphical/developpement-elm.nix index ab11ef5..c8cfb10 100644 --- a/applications/graphical/developpement-elm.nix +++ b/applications/graphical/developpement-elm.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.developpement-elm && cfg.graphical) { diff --git a/applications/graphical/developpement-haskell.nix b/applications/graphical/developpement-haskell.nix index f118036..f7c9869 100644 --- a/applications/graphical/developpement-haskell.nix +++ b/applications/graphical/developpement-haskell.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.developpement-haskell && cfg.graphical) { diff --git a/applications/graphical/developpement-java.nix b/applications/graphical/developpement-java.nix index 6e91238..db3664c 100644 --- a/applications/graphical/developpement-java.nix +++ b/applications/graphical/developpement-java.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.developpement-java && cfg.graphical) { diff --git a/applications/graphical/developpement-jetbrains.nix b/applications/graphical/developpement-jetbrains.nix index 3901bb3..4962dcb 100644 --- a/applications/graphical/developpement-jetbrains.nix +++ b/applications/graphical/developpement-jetbrains.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.jetbrains-licensed && cfg.graphical) { diff --git a/applications/graphical/developpement-rust.nix b/applications/graphical/developpement-rust.nix index 5a64ba1..05c5a3c 100644 --- a/applications/graphical/developpement-rust.nix +++ b/applications/graphical/developpement-rust.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.developpement-rust && cfg.graphical) { diff --git a/applications/graphical/developpement.nix b/applications/graphical/developpement.nix index 2a07dd5..a0f5915 100644 --- a/applications/graphical/developpement.nix +++ b/applications/graphical/developpement.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.developpement && cfg.graphical) { diff --git a/applications/graphical/edition-musique.nix b/applications/graphical/edition-musique.nix index 5f692f7..d93649f 100644 --- a/applications/graphical/edition-musique.nix +++ b/applications/graphical/edition-musique.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.edition-musique && cfg.graphical) { diff --git a/applications/graphical/edition-photo.nix b/applications/graphical/edition-photo.nix index cdda5de..21229a8 100644 --- a/applications/graphical/edition-photo.nix +++ b/applications/graphical/edition-photo.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.edition-photo && cfg.graphical) { diff --git a/applications/graphical/edition-video.nix b/applications/graphical/edition-video.nix index 3314453..f9e2e0d 100644 --- a/applications/graphical/edition-video.nix +++ b/applications/graphical/edition-video.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.edition-video && cfg.graphical) { diff --git a/applications/graphical/jeux.nix b/applications/graphical/jeux.nix index 8ecb8da..95f869e 100644 --- a/applications/graphical/jeux.nix +++ b/applications/graphical/jeux.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.jeux && cfg.graphical) { diff --git a/applications/graphical/multimedia.nix b/applications/graphical/multimedia.nix index 1124636..24724f0 100644 --- a/applications/graphical/multimedia.nix +++ b/applications/graphical/multimedia.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in # TODO ranger le spécifique pulseaudio diff --git a/applications/graphical/network.nix b/applications/graphical/network.nix index 93809df..903df52 100644 --- a/applications/graphical/network.nix +++ b/applications/graphical/network.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (true && cfg.graphical) { diff --git a/applications/graphical/securite.nix b/applications/graphical/securite.nix index 461e836..d277b98 100644 --- a/applications/graphical/securite.nix +++ b/applications/graphical/securite.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf (cfg.securitySuite && cfg.graphical) { diff --git a/applications/terminal/adminsys.nix b/applications/terminal/adminsys.nix index 723cfc5..195fd5c 100644 --- a/applications/terminal/adminsys.nix +++ b/applications/terminal/adminsys.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/applications/terminal/bureau.nix b/applications/terminal/bureau.nix index b72fbec..36512fc 100644 --- a/applications/terminal/bureau.nix +++ b/applications/terminal/bureau.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/applications/terminal/bureautique.nix b/applications/terminal/bureautique.nix index bb2e5f4..afbe1ae 100644 --- a/applications/terminal/bureautique.nix +++ b/applications/terminal/bureautique.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.officeSuite { diff --git a/applications/terminal/cao.nix b/applications/terminal/cao.nix index ac5da71..7b9c91d 100644 --- a/applications/terminal/cao.nix +++ b/applications/terminal/cao.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.conception-assistee { diff --git a/applications/terminal/cartographie.nix b/applications/terminal/cartographie.nix index b7c80c7..16fb9e7 100644 --- a/applications/terminal/cartographie.nix +++ b/applications/terminal/cartographie.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.cartographie { diff --git a/applications/terminal/client-internet.nix b/applications/terminal/client-internet.nix index 064b6e2..ecf8926 100644 --- a/applications/terminal/client-internet.nix +++ b/applications/terminal/client-internet.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in # TODO: ménage mkIf cfg.internetSuite { diff --git a/applications/terminal/default-applications.nix b/applications/terminal/default-applications.nix index 598975e..078c8ed 100644 --- a/applications/terminal/default-applications.nix +++ b/applications/terminal/default-applications.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/applications/terminal/default.nix b/applications/terminal/default.nix index 315933b..2b7b2ec 100644 --- a/applications/terminal/default.nix +++ b/applications/terminal/default.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in { diff --git a/applications/terminal/developpement-elm.nix b/applications/terminal/developpement-elm.nix index 3bfeab0..beeec39 100644 --- a/applications/terminal/developpement-elm.nix +++ b/applications/terminal/developpement-elm.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.developpement-elm { diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index a402bf8..9f0c5ab 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.developpement-haskell { diff --git a/applications/terminal/developpement-java.nix b/applications/terminal/developpement-java.nix index 880d0e5..9c0e84e 100644 --- a/applications/terminal/developpement-java.nix +++ b/applications/terminal/developpement-java.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.developpement-java { diff --git a/applications/terminal/developpement-jetbrains.nix b/applications/terminal/developpement-jetbrains.nix index de3149e..c2c2cf6 100644 --- a/applications/terminal/developpement-jetbrains.nix +++ b/applications/terminal/developpement-jetbrains.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.jetbrains-licensed { diff --git a/applications/terminal/developpement-rust.nix b/applications/terminal/developpement-rust.nix index 0ff6ea1..773045d 100644 --- a/applications/terminal/developpement-rust.nix +++ b/applications/terminal/developpement-rust.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.developpement-rust { diff --git a/applications/terminal/developpement.nix b/applications/terminal/developpement.nix index 495df93..eb2ea7c 100644 --- a/applications/terminal/developpement.nix +++ b/applications/terminal/developpement.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.developpement { diff --git a/applications/terminal/edition-musique.nix b/applications/terminal/edition-musique.nix index f875da7..b15d8a1 100644 --- a/applications/terminal/edition-musique.nix +++ b/applications/terminal/edition-musique.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.edition-musique { diff --git a/applications/terminal/edition-photo.nix b/applications/terminal/edition-photo.nix index bc923df..bd63588 100644 --- a/applications/terminal/edition-photo.nix +++ b/applications/terminal/edition-photo.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.edition-photo { diff --git a/applications/terminal/edition-video.nix b/applications/terminal/edition-video.nix index c3ae81c..52fab1f 100644 --- a/applications/terminal/edition-video.nix +++ b/applications/terminal/edition-video.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.edition-video { diff --git a/applications/terminal/jeux.nix b/applications/terminal/jeux.nix index ae00806..c1f73a5 100644 --- a/applications/terminal/jeux.nix +++ b/applications/terminal/jeux.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.jeux { diff --git a/applications/terminal/multimedia.nix b/applications/terminal/multimedia.nix index 847ffe2..b0cdb10 100644 --- a/applications/terminal/multimedia.nix +++ b/applications/terminal/multimedia.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.multimediaSuite { diff --git a/applications/terminal/network.nix b/applications/terminal/network.nix index 5432452..b40401c 100644 --- a/applications/terminal/network.nix +++ b/applications/terminal/network.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/applications/terminal/securite.nix b/applications/terminal/securite.nix index 20b4dcf..ad8f76b 100644 --- a/applications/terminal/securite.nix +++ b/applications/terminal/securite.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.securitySuite { diff --git a/base.nix b/base.nix index dbfb1fb..ce874f4 100644 --- a/base.nix +++ b/base.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in { diff --git a/config-generator.nix b/config-generator.nix index dab91fb..6a1605d 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -6,6 +6,8 @@ let pfl = config.r6d.profiles; comp = config.r6d.computers; host = config.networking.hostName; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in { diff --git a/configuration/auto-upgrade.nix b/configuration/auto-upgrade.nix index 48539a8..8982737 100644 --- a/configuration/auto-upgrade.nix +++ b/configuration/auto-upgrade.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.auto-upgrade { diff --git a/configuration/awesome.nix b/configuration/awesome.nix index a6acd7e..e56d05e 100644 --- a/configuration/awesome.nix +++ b/configuration/awesome.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in # TODO: rc.lua par défaut (système) diff --git a/configuration/default.nix b/configuration/default.nix index e58bd01..9db4895 100644 --- a/configuration/default.nix +++ b/configuration/default.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in { diff --git a/configuration/environment.nix b/configuration/environment.nix index 3b47c47..2433c8d 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in # TODO: ménage diff --git a/configuration/laptop.nix b/configuration/laptop.nix index e9a47fb..0220193 100644 --- a/configuration/laptop.nix +++ b/configuration/laptop.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.laptop { diff --git a/configuration/localisation.nix b/configuration/localisation.nix index 6b773b7..64eaf47 100644 --- a/configuration/localisation.nix +++ b/configuration/localisation.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/configuration/network-ipv6.nix b/configuration/network-ipv6.nix index d3f9f0d..a8911d6 100644 --- a/configuration/network-ipv6.nix +++ b/configuration/network-ipv6.nix @@ -5,12 +5,14 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { # Utilisation d'adresse IPv6 temporaire - + ## https://blog.linitx.com/control-privacy-addressing-ipv6-linux/ ## http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/x1092.html diff --git a/configuration/network.nix b/configuration/network.nix index ed45a70..e898257 100644 --- a/configuration/network.nix +++ b/configuration/network.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/configuration/udev.nix b/configuration/udev.nix index bc14cf9..a405d56 100644 --- a/configuration/udev.nix +++ b/configuration/udev.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf false { diff --git a/module-template.nix b/module-template.nix index c729d46..6dea158 100644 --- a/module-template.nix +++ b/module-template.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/services/default.nix b/services/default.nix index c2eb2f3..9d549e8 100644 --- a/services/default.nix +++ b/services/default.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in { diff --git a/services/docker.nix b/services/docker.nix index b9594ac..56edc79 100644 --- a/services/docker.nix +++ b/services/docker.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.docker { diff --git a/services/elasticsearch.nix b/services/elasticsearch.nix index f0718dc..1b8bb83 100644 --- a/services/elasticsearch.nix +++ b/services/elasticsearch.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.elasticsearch { diff --git a/services/haveged.nix b/services/haveged.nix index 851b125..97a9185 100644 --- a/services/haveged.nix +++ b/services/haveged.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/services/hoogle.nix b/services/hoogle.nix index 2442a84..8dbe1dd 100644 --- a/services/hoogle.nix +++ b/services/hoogle.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.developpement-haskell { diff --git a/services/hydra-build.nix b/services/hydra-build.nix index 3233fb6..d63d106 100644 --- a/services/hydra-build.nix +++ b/services/hydra-build.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in # TODO: ménage mkIf cfg.hydra-builder { diff --git a/services/hydra-core.nix b/services/hydra-core.nix index a145991..8a2124e 100644 --- a/services/hydra-core.nix +++ b/services/hydra-core.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; #### https://github.com/NixOS/hydra/issues/413 diff --git a/services/kibana.nix b/services/kibana.nix index 5b8d300..8cf4cc3 100644 --- a/services/kibana.nix +++ b/services/kibana.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.kibana { diff --git a/services/locate.nix b/services/locate.nix index 73f43f3..6b3d6ef 100644 --- a/services/locate.nix +++ b/services/locate.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.locate { diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 7721e2f..499fc59 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in # TODO: ajouter option diff --git a/services/print.nix b/services/print.nix index de71ef2..650a7ad 100644 --- a/services/print.nix +++ b/services/print.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.print { diff --git a/services/pulseaudio.nix b/services/pulseaudio.nix index cec8b10..9bfcd60 100644 --- a/services/pulseaudio.nix +++ b/services/pulseaudio.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.pulseaudio { diff --git a/services/scanner.nix b/services/scanner.nix index 36c2713..c55b2d8 100644 --- a/services/scanner.nix +++ b/services/scanner.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.scanner { diff --git a/services/ssh.nix b/services/ssh.nix index f332370..bc754bb 100644 --- a/services/ssh.nix +++ b/services/ssh.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf true { diff --git a/services/virtualbox.nix b/services/virtualbox.nix index 5b1064c..dbacc29 100644 --- a/services/virtualbox.nix +++ b/services/virtualbox.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.virtualbox { diff --git a/services/x11.nix b/services/x11.nix index 32f352e..ec29314 100644 --- a/services/x11.nix +++ b/services/x11.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf profiles.isDesktopEnvironment { diff --git a/services/xmonad/xmonad.nix b/services/xmonad/xmonad.nix index d55f5f7..7e32dab 100644 --- a/services/xmonad/xmonad.nix +++ b/services/xmonad/xmonad.nix @@ -5,6 +5,8 @@ let cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; in mkIf cfg.xmonad { From 3869c2d520f8b5fa1c5d0aa5c7fee1e1c9896436 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 27 Apr 2017 12:03:16 +0200 Subject: [PATCH 012/120] options: ajouts configuration-flags --- options.nix | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/options.nix b/options.nix index bfcb7e7..980b6bd 100644 --- a/options.nix +++ b/options.nix @@ -6,7 +6,56 @@ let machineOptions = types.submodule { options = { - configuration-flags = types.submodule r6d.config-generator; + configuration-flags = { + #enable = mkEnableOption "Génération de la configuration d'une machine."; + awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome."; + auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques."; + cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques."; + conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D"; + database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL."; + developpement = mkEnableOption "Profil pour activer les outils de développement"; + developpement-elm = mkEnableOption "Profil pour activer les outils de développement Elm"; + developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell"; + developpement-java = mkEnableOption "Profil pour activer les outils de développement Java"; + developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust"; + docker = mkEnableOption "Profil pour l'utilisation de Docker."; + dovecot = mkEnableOption "Profil pour activer le serveur Dovecot."; + dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS."; + dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local."; + edition-musique = mkEnableOption "Profil pour la création/édition de musique."; + edition-photo = mkEnableOption "Profil pour la création/édition de photos."; + edition-video = mkEnableOption "Profil pour la création/édition de video."; + elasticsearch = mkEnableOption "Profil pour activer le service elasticsearch."; + fail2ban = mkEnableOption "Profil pour activer Fail2ban."; + graphical = mkEnableOption "Profil pour activer les applications graphgiques."; + hydra-builder = mkEnableOption "Profil pour une machine qui compile pour hydra."; + hydra-core = mkEnableOption "Profil pour un serveur hydra."; + kibana = mkEnableOption "Profil pour activer le service kibana."; + internetSuite = mkEnableOption "Profil pour la suite de logiciels pour Internet."; + jetbrains-licensed = mkEnableOption "Profil pour la suite de développement Jetbrains payante (sous-ensemble)."; + jeux = mkEnableOption "Profil pour les jeux vidéos."; + laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables."; + locate = mkEnableOption "Profil pour activer la fonction locate."; + mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres."; + multimediaSuite = mkEnableOption "Profil pour la suite multimédia."; + murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)"; + nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix."; + nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix."; + nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store"; + officeSuite = mkEnableOption "Profil pour la suite bureautique"; + print = mkEnableOption "Profil pour activer cups & pouvoir imprimer."; + pulseaudio = mkEnableOption "Profil pour activer pulseaudio."; + rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP."; + radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts."; + scanner = mkEnableOption "Profil pour que les scanners soient utilisable."; + securitySuite = mkEnableOption "Profil pour la suite de logiciels de sécurité."; + smokeping = mkEnableOption "Profil pour activer le monitoring réseau par smokeping."; + swap = mkEnableOption "Profil pour que le swap soit activé."; + virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox."; + xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad."; + znc = mkEnableOption "Profil pour activer le relais IRC ZNC."; + }; + profiles = types.submodule r6d.profiles; ipAddress = mkOption { From 2a923e150ecea526b5d688be53959c13b1c9cda6 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 27 Apr 2017 12:11:03 +0200 Subject: [PATCH 013/120] options: ajout des variables pour les profils --- options.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/options.nix b/options.nix index 980b6bd..b4738b7 100644 --- a/options.nix +++ b/options.nix @@ -56,7 +56,15 @@ let znc = mkEnableOption "Profil pour activer le relais IRC ZNC."; }; - profiles = types.submodule r6d.profiles; + profiles = { + # Domaine + isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; + isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; + # Utilisation machine + isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique."; + isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur."; + isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler."; + }; ipAddress = mkOption { description = "Adresse IP"; From 7f8563f32b860d26d2328fed663093bf6019f85f Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 27 Apr 2017 12:29:18 +0200 Subject: [PATCH 014/120] exparimental: utilisation de l'annuaire --- applications/graphical/cao.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/applications/graphical/cao.nix b/applications/graphical/cao.nix index a0247fb..2945ce0 100644 --- a/applications/graphical/cao.nix +++ b/applications/graphical/cao.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.conception-assistee && cfg.graphical) { +mkIf (flags.conception-assistee && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ From a074cfcfa7e589ac3058ae4631b0db27eb8f1b4e Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 27 Apr 2017 22:06:12 +0200 Subject: [PATCH 015/120] EXPERIMENTAL: cfg -> flags --- applications/graphical/adminsys.nix | 6 +- applications/graphical/bureau.nix | 6 +- applications/graphical/bureautique.nix | 6 +- applications/graphical/cartographie.nix | 6 +- applications/graphical/client-internet.nix | 6 +- .../graphical/default-applications.nix | 6 +- applications/graphical/default.nix | 4 +- applications/graphical/developpement-elm.nix | 6 +- .../graphical/developpement-haskell.nix | 6 +- applications/graphical/developpement-java.nix | 6 +- .../graphical/developpement-jetbrains.nix | 6 +- applications/graphical/developpement-rust.nix | 6 +- applications/graphical/developpement.nix | 6 +- applications/graphical/edition-musique.nix | 6 +- applications/graphical/edition-photo.nix | 6 +- applications/graphical/edition-video.nix | 6 +- applications/graphical/jeux.nix | 6 +- applications/graphical/multimedia.nix | 6 +- applications/graphical/network.nix | 6 +- applications/graphical/securite.nix | 6 +- applications/terminal/adminsys.nix | 4 +- applications/terminal/bureau.nix | 4 +- applications/terminal/bureautique.nix | 6 +- applications/terminal/cao.nix | 6 +- applications/terminal/cartographie.nix | 6 +- applications/terminal/client-internet.nix | 6 +- .../terminal/default-applications.nix | 4 +- applications/terminal/default.nix | 4 +- applications/terminal/developpement-elm.nix | 6 +- .../terminal/developpement-haskell.nix | 6 +- applications/terminal/developpement-java.nix | 6 +- .../terminal/developpement-jetbrains.nix | 6 +- applications/terminal/developpement-rust.nix | 6 +- applications/terminal/developpement.nix | 6 +- applications/terminal/edition-photo.nix | 6 +- applications/terminal/edition-video.nix | 6 +- applications/terminal/jeux.nix | 6 +- applications/terminal/multimedia.nix | 6 +- applications/terminal/network.nix | 4 +- applications/terminal/securite.nix | 6 +- base.nix | 9 --- config-generator.nix | 78 +------------------ configuration/auto-upgrade.nix | 6 +- configuration/awesome.nix | 6 +- configuration/default.nix | 4 +- configuration/environment.nix | 4 +- configuration/laptop.nix | 6 +- configuration/localisation.nix | 4 +- configuration/network-ipv6.nix | 4 +- configuration/network.nix | 8 +- configuration/swap.nix | 10 +-- configuration/udev.nix | 4 +- module-template.nix | 6 +- services/default.nix | 4 +- services/docker.nix | 6 +- services/elasticsearch.nix | 6 +- services/haveged.nix | 4 +- services/hoogle.nix | 6 +- services/hydra-build.nix | 6 +- services/hydra-core.nix | 6 +- services/kibana.nix | 6 +- services/locate.nix | 6 +- services/monitoring-munin.nix | 4 +- services/print.nix | 6 +- services/pulseaudio.nix | 6 +- services/scanner.nix | 6 +- services/ssh.nix | 4 +- services/virtualbox.nix | 6 +- services/x11.nix | 6 +- services/xmonad/xmonad.nix | 6 +- 70 files changed, 126 insertions(+), 345 deletions(-) diff --git a/applications/graphical/adminsys.nix b/applications/graphical/adminsys.nix index 976efee..fd6175f 100644 --- a/applications/graphical/adminsys.nix +++ b/applications/graphical/adminsys.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.graphical { +mkIf flags.graphical { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/bureau.nix b/applications/graphical/bureau.nix index cd65fdf..f0ed91c 100644 --- a/applications/graphical/bureau.nix +++ b/applications/graphical/bureau.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf profiles.isDesktopEnvironment { +mkIf currentMachine.profiles.isDesktopEnvironment { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/bureautique.nix b/applications/graphical/bureautique.nix index d7356cb..dd7b7b5 100644 --- a/applications/graphical/bureautique.nix +++ b/applications/graphical/bureautique.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.officeSuite && cfg.graphical) { +mkIf (flags.officeSuite && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/cartographie.nix b/applications/graphical/cartographie.nix index 4b6777f..0e307b4 100644 --- a/applications/graphical/cartographie.nix +++ b/applications/graphical/cartographie.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.cartographie && cfg.graphical) { +mkIf (flags.cartographie && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/client-internet.nix b/applications/graphical/client-internet.nix index f21f33a..7883c5f 100644 --- a/applications/graphical/client-internet.nix +++ b/applications/graphical/client-internet.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in # TODO: ménage -mkIf (cfg.internetSuite && cfg.graphical) { +mkIf (flags.internetSuite && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/default-applications.nix b/applications/graphical/default-applications.nix index 835474d..3833fc8 100644 --- a/applications/graphical/default-applications.nix +++ b/applications/graphical/default-applications.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (true && cfg.graphical) { +mkIf (true && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/default.nix b/applications/graphical/default.nix index 2b7b2ec..90aae1d 100644 --- a/applications/graphical/default.nix +++ b/applications/graphical/default.nix @@ -2,11 +2,9 @@ let #inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in { diff --git a/applications/graphical/developpement-elm.nix b/applications/graphical/developpement-elm.nix index c8cfb10..e3047c0 100644 --- a/applications/graphical/developpement-elm.nix +++ b/applications/graphical/developpement-elm.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.developpement-elm && cfg.graphical) { +mkIf (flags.developpement-elm && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/developpement-haskell.nix b/applications/graphical/developpement-haskell.nix index f7c9869..ed42d5f 100644 --- a/applications/graphical/developpement-haskell.nix +++ b/applications/graphical/developpement-haskell.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.developpement-haskell && cfg.graphical) { +mkIf (flags.developpement-haskell && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/developpement-java.nix b/applications/graphical/developpement-java.nix index db3664c..ef2e267 100644 --- a/applications/graphical/developpement-java.nix +++ b/applications/graphical/developpement-java.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.developpement-java && cfg.graphical) { +mkIf (flags.developpement-java && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/developpement-jetbrains.nix b/applications/graphical/developpement-jetbrains.nix index 4962dcb..bb1e250 100644 --- a/applications/graphical/developpement-jetbrains.nix +++ b/applications/graphical/developpement-jetbrains.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.jetbrains-licensed && cfg.graphical) { +mkIf (flags.jetbrains-licensed && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/developpement-rust.nix b/applications/graphical/developpement-rust.nix index 05c5a3c..9b41f24 100644 --- a/applications/graphical/developpement-rust.nix +++ b/applications/graphical/developpement-rust.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.developpement-rust && cfg.graphical) { +mkIf (flags.developpement-rust && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/developpement.nix b/applications/graphical/developpement.nix index a0f5915..30ea54f 100644 --- a/applications/graphical/developpement.nix +++ b/applications/graphical/developpement.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.developpement && cfg.graphical) { +mkIf (flags.developpement && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/edition-musique.nix b/applications/graphical/edition-musique.nix index d93649f..1ccdaf8 100644 --- a/applications/graphical/edition-musique.nix +++ b/applications/graphical/edition-musique.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.edition-musique && cfg.graphical) { +mkIf (flags.edition-musique && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/edition-photo.nix b/applications/graphical/edition-photo.nix index 21229a8..14646e9 100644 --- a/applications/graphical/edition-photo.nix +++ b/applications/graphical/edition-photo.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.edition-photo && cfg.graphical) { +mkIf (flags.edition-photo && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/edition-video.nix b/applications/graphical/edition-video.nix index f9e2e0d..bccbcdb 100644 --- a/applications/graphical/edition-video.nix +++ b/applications/graphical/edition-video.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.edition-video && cfg.graphical) { +mkIf (flags.edition-video && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/jeux.nix b/applications/graphical/jeux.nix index 95f869e..14d301f 100644 --- a/applications/graphical/jeux.nix +++ b/applications/graphical/jeux.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.jeux && cfg.graphical) { +mkIf (flags.jeux && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/multimedia.nix b/applications/graphical/multimedia.nix index 24724f0..dedb031 100644 --- a/applications/graphical/multimedia.nix +++ b/applications/graphical/multimedia.nix @@ -2,15 +2,13 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in # TODO ranger le spécifique pulseaudio -mkIf (cfg.multimediaSuite && cfg.graphical) { +mkIf (flags.multimediaSuite && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/network.nix b/applications/graphical/network.nix index 903df52..c16ed6d 100644 --- a/applications/graphical/network.nix +++ b/applications/graphical/network.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (true && cfg.graphical) { +mkIf (true && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/graphical/securite.nix b/applications/graphical/securite.nix index d277b98..acb7aaf 100644 --- a/applications/graphical/securite.nix +++ b/applications/graphical/securite.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf (cfg.securitySuite && cfg.graphical) { +mkIf (flags.securitySuite && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/adminsys.nix b/applications/terminal/adminsys.nix index 195fd5c..3dff337 100644 --- a/applications/terminal/adminsys.nix +++ b/applications/terminal/adminsys.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/applications/terminal/bureau.nix b/applications/terminal/bureau.nix index 36512fc..1b24332 100644 --- a/applications/terminal/bureau.nix +++ b/applications/terminal/bureau.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/applications/terminal/bureautique.nix b/applications/terminal/bureautique.nix index afbe1ae..ddfdc23 100644 --- a/applications/terminal/bureautique.nix +++ b/applications/terminal/bureautique.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.officeSuite { +mkIf flags.officeSuite { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/cao.nix b/applications/terminal/cao.nix index 7b9c91d..478d27f 100644 --- a/applications/terminal/cao.nix +++ b/applications/terminal/cao.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.conception-assistee { +mkIf flags.conception-assistee { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/cartographie.nix b/applications/terminal/cartographie.nix index 16fb9e7..3f7d4c2 100644 --- a/applications/terminal/cartographie.nix +++ b/applications/terminal/cartographie.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.cartographie { +mkIf flags.cartographie { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/client-internet.nix b/applications/terminal/client-internet.nix index ecf8926..694bae2 100644 --- a/applications/terminal/client-internet.nix +++ b/applications/terminal/client-internet.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in # TODO: ménage -mkIf cfg.internetSuite { +mkIf flags.internetSuite { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/default-applications.nix b/applications/terminal/default-applications.nix index 078c8ed..efd1baf 100644 --- a/applications/terminal/default-applications.nix +++ b/applications/terminal/default-applications.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/applications/terminal/default.nix b/applications/terminal/default.nix index 2b7b2ec..90aae1d 100644 --- a/applications/terminal/default.nix +++ b/applications/terminal/default.nix @@ -2,11 +2,9 @@ let #inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in { diff --git a/applications/terminal/developpement-elm.nix b/applications/terminal/developpement-elm.nix index beeec39..d5a6bad 100644 --- a/applications/terminal/developpement-elm.nix +++ b/applications/terminal/developpement-elm.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.developpement-elm { +mkIf flags.developpement-elm { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index 9f0c5ab..da8ac0a 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.developpement-haskell { +mkIf flags.developpement-haskell { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/developpement-java.nix b/applications/terminal/developpement-java.nix index 9c0e84e..8c4a358 100644 --- a/applications/terminal/developpement-java.nix +++ b/applications/terminal/developpement-java.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.developpement-java { +mkIf flags.developpement-java { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/developpement-jetbrains.nix b/applications/terminal/developpement-jetbrains.nix index c2c2cf6..9d6a16c 100644 --- a/applications/terminal/developpement-jetbrains.nix +++ b/applications/terminal/developpement-jetbrains.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.jetbrains-licensed { +mkIf flags.jetbrains-licensed { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/developpement-rust.nix b/applications/terminal/developpement-rust.nix index 773045d..a477b46 100644 --- a/applications/terminal/developpement-rust.nix +++ b/applications/terminal/developpement-rust.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.developpement-rust { +mkIf flags.developpement-rust { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/developpement.nix b/applications/terminal/developpement.nix index eb2ea7c..d16838a 100644 --- a/applications/terminal/developpement.nix +++ b/applications/terminal/developpement.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.developpement { +mkIf flags.developpement { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/edition-photo.nix b/applications/terminal/edition-photo.nix index bd63588..b775242 100644 --- a/applications/terminal/edition-photo.nix +++ b/applications/terminal/edition-photo.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.edition-photo { +mkIf flags.edition-photo { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/edition-video.nix b/applications/terminal/edition-video.nix index 52fab1f..dab9e00 100644 --- a/applications/terminal/edition-video.nix +++ b/applications/terminal/edition-video.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.edition-video { +mkIf flags.edition-video { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/jeux.nix b/applications/terminal/jeux.nix index c1f73a5..64cc212 100644 --- a/applications/terminal/jeux.nix +++ b/applications/terminal/jeux.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.jeux { +mkIf flags.jeux { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/multimedia.nix b/applications/terminal/multimedia.nix index b0cdb10..d257d50 100644 --- a/applications/terminal/multimedia.nix +++ b/applications/terminal/multimedia.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.multimediaSuite { +mkIf flags.multimediaSuite { # Paquets environment.systemPackages = with pkgs; [ diff --git a/applications/terminal/network.nix b/applications/terminal/network.nix index b40401c..88e6ff3 100644 --- a/applications/terminal/network.nix +++ b/applications/terminal/network.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/applications/terminal/securite.nix b/applications/terminal/securite.nix index ad8f76b..9327d32 100644 --- a/applications/terminal/securite.nix +++ b/applications/terminal/securite.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.securitySuite { +mkIf flags.securitySuite { # Paquets environment.systemPackages = with pkgs; [ diff --git a/base.nix b/base.nix index ce874f4..dca968c 100644 --- a/base.nix +++ b/base.nix @@ -1,14 +1,5 @@ { config, lib, pkgs, ... }: -let - #inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; - annuaire = config.r6d.machines; - currentMachine = annuaire."${config.networking.hostName}"; -in - { imports = [ # moulinette de configuration diff --git a/config-generator.nix b/config-generator.nix index 6a1605d..327e29f 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -8,6 +8,7 @@ let host = config.networking.hostName; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in { @@ -18,83 +19,6 @@ in ###### interface options = { - #* Utilisé pour afecter des capacités aux machines - r6d.profiles = { - # Domaine - isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; - isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; - # Utilisation machine - isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique."; - isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur."; - isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler."; - }; - - #* Utilisé dans les fichiers .nix - r6d.config-generator = { - #enable = mkEnableOption "Génération de la configuration d'une machine."; - awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome."; - auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques."; - cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques."; - conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D"; - database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL."; - developpement = mkEnableOption "Profil pour activer les outils de développement"; - developpement-elm = mkEnableOption "Profil pour activer les outils de développement Elm"; - developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell"; - developpement-java = mkEnableOption "Profil pour activer les outils de développement Java"; - developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust"; - docker = mkEnableOption "Profil pour l'utilisation de Docker."; - dovecot = mkEnableOption "Profil pour activer le serveur Dovecot."; - dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS."; - dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local."; - edition-musique = mkEnableOption "Profil pour la création/édition de musique."; - edition-photo = mkEnableOption "Profil pour la création/édition de photos."; - edition-video = mkEnableOption "Profil pour la création/édition de video."; - elasticsearch = mkEnableOption "Profil pour activer le service elasticsearch."; - fail2ban = mkEnableOption "Profil pour activer Fail2ban."; - graphical = mkEnableOption "Profil pour activer les applications graphgiques."; - hydra-builder = mkEnableOption "Profil pour une machine qui compile pour hydra."; - hydra-core = mkEnableOption "Profil pour un serveur hydra."; - kibana = mkEnableOption "Profil pour activer le service kibana."; - internetSuite = mkEnableOption "Profil pour la suite de logiciels pour Internet."; - jetbrains-licensed = mkEnableOption "Profil pour la suite de développement Jetbrains payante (sous-ensemble)."; - jeux = mkEnableOption "Profil pour les jeux vidéos."; - laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables."; - locate = mkEnableOption "Profil pour activer la fonction locate."; - mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres."; - multimediaSuite = mkEnableOption "Profil pour la suite multimédia."; - murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)"; - nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix."; - nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix."; - nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store"; - officeSuite = mkEnableOption "Profil pour la suite bureautique"; - print = mkEnableOption "Profil pour activer cups & pouvoir imprimer."; - pulseaudio = mkEnableOption "Profil pour activer pulseaudio."; - rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP."; - radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts."; - scanner = mkEnableOption "Profil pour que les scanners soient utilisable."; - securitySuite = mkEnableOption "Profil pour la suite de logiciels de sécurité."; - smokeping = mkEnableOption "Profil pour activer le monitoring réseau par smokeping."; - swap = mkEnableOption "Profil pour que le swap soit activé."; - virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox."; - xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad."; - znc = mkEnableOption "Profil pour activer le relais IRC ZNC."; - - tincAddress = mkOption { - default = ""; - example = "192.168.1.1"; - description = "Adresse du noeud tinc local"; - type = lib.types.string; - }; - tincExtraConfig = mkOption { - default = ""; - example = '' - Mode = router - ConnecTo = bar - ''; - description = "Configuration supplémentaire pour tinc"; - type = lib.types.string; - }; - }; #* Utilisé pour avoir des raccourcis de machine r6d.computers = { isHydra = mkEnableOption "Identification du nom de machine."; diff --git a/configuration/auto-upgrade.nix b/configuration/auto-upgrade.nix index 8982737..96ae83a 100644 --- a/configuration/auto-upgrade.nix +++ b/configuration/auto-upgrade.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.auto-upgrade { +mkIf flags.auto-upgrade { # Automatic update & automatic clean diff --git a/configuration/awesome.nix b/configuration/awesome.nix index e56d05e..2eb007f 100644 --- a/configuration/awesome.nix +++ b/configuration/awesome.nix @@ -2,15 +2,13 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in # TODO: rc.lua par défaut (système) -mkIf cfg.awesome { +mkIf flags.awesome { environment.variables = { # Export the current path for the awesome derivation, useful for users rc.lua diff --git a/configuration/default.nix b/configuration/default.nix index 9db4895..be1322e 100644 --- a/configuration/default.nix +++ b/configuration/default.nix @@ -2,11 +2,9 @@ let #inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in { diff --git a/configuration/environment.nix b/configuration/environment.nix index 2433c8d..90c8191 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in # TODO: ménage diff --git a/configuration/laptop.nix b/configuration/laptop.nix index 0220193..1099461 100644 --- a/configuration/laptop.nix +++ b/configuration/laptop.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.laptop { +mkIf flags.laptop { # Gestion spécifique pour PC portable diff --git a/configuration/localisation.nix b/configuration/localisation.nix index 64eaf47..98d3e85 100644 --- a/configuration/localisation.nix +++ b/configuration/localisation.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/configuration/network-ipv6.nix b/configuration/network-ipv6.nix index a8911d6..90a151c 100644 --- a/configuration/network-ipv6.nix +++ b/configuration/network-ipv6.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/configuration/network.nix b/configuration/network.nix index e898257..0e3f5dd 100644 --- a/configuration/network.nix +++ b/configuration/network.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { @@ -14,8 +12,8 @@ mkIf true { # fix: Hostname -s renvoie "Unknown host" alors que hostname renvoie la bonne valeur # Il s'avère que hostname vérifie la validité du FQDN et du reverse. # Fixer ces paramètres dans les hosts permet de faire tomber en marche - networking.extraHosts = '' - 127.0.0.1 ${config.networking.hostName} + networking.extraHosts = '' + 127.0.0.1 ${config.networking.hostName} ''; boot.kernel.sysctl = { diff --git a/configuration/swap.nix b/configuration/swap.nix index 44cdfd0..7e200cc 100644 --- a/configuration/swap.nix +++ b/configuration/swap.nix @@ -2,15 +2,15 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.swap { +mkIf flags.swap { # Gestion du swap - + # https://en.wikipedia.org/wiki/Swappiness boot.kernel.sysctl = { # le swap est activé (!= 0) diff --git a/configuration/udev.nix b/configuration/udev.nix index a405d56..b473bc0 100644 --- a/configuration/udev.nix +++ b/configuration/udev.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf false { diff --git a/module-template.nix b/module-template.nix index 6dea158..0353644 100644 --- a/module-template.nix +++ b/module-template.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; - annuaire = config.r6d.machines; + cannuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/services/default.nix b/services/default.nix index 9d549e8..0d72833 100644 --- a/services/default.nix +++ b/services/default.nix @@ -2,11 +2,9 @@ let #inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in { diff --git a/services/docker.nix b/services/docker.nix index 56edc79..76c9531 100644 --- a/services/docker.nix +++ b/services/docker.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.docker { +mkIf flags.docker { # Paquets environment.systemPackages = with pkgs; [ diff --git a/services/elasticsearch.nix b/services/elasticsearch.nix index 1b8bb83..7c69723 100644 --- a/services/elasticsearch.nix +++ b/services/elasticsearch.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.elasticsearch { +mkIf flags.elasticsearch { # Paquets environment.systemPackages = with pkgs; [ diff --git a/services/haveged.nix b/services/haveged.nix index 97a9185..01d3f3a 100644 --- a/services/haveged.nix +++ b/services/haveged.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/services/hoogle.nix b/services/hoogle.nix index 8dbe1dd..b38dcf3 100644 --- a/services/hoogle.nix +++ b/services/hoogle.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.developpement-haskell { +mkIf flags.developpement-haskell { services.hoogle = { enable = true; diff --git a/services/hydra-build.nix b/services/hydra-build.nix index d63d106..add6631 100644 --- a/services/hydra-build.nix +++ b/services/hydra-build.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in # TODO: ménage -mkIf cfg.hydra-builder { +mkIf flags.hydra-builder { # Paquets environment.systemPackages = with pkgs; [ diff --git a/services/hydra-core.nix b/services/hydra-core.nix index 8a2124e..bdc38f2 100644 --- a/services/hydra-core.nix +++ b/services/hydra-core.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; #### https://github.com/NixOS/hydra/issues/413 @@ -25,7 +23,7 @@ let # hydra-queue-runner --status | json_pp in # TODO: passe de ménage -mkIf cfg.hydra-core { +mkIf flags.hydra-core { # Paquets environment.systemPackages = with pkgs; [ diff --git a/services/kibana.nix b/services/kibana.nix index 8cf4cc3..04a16ff 100644 --- a/services/kibana.nix +++ b/services/kibana.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.kibana { +mkIf flags.kibana { # Paquets environment.systemPackages = with pkgs; [ diff --git a/services/locate.nix b/services/locate.nix index 6b3d6ef..27a3ad9 100644 --- a/services/locate.nix +++ b/services/locate.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.locate { +mkIf flags.locate { # Services services.locate = { diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 499fc59..10c2ec7 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in # TODO: ajouter option diff --git a/services/print.nix b/services/print.nix index 650a7ad..df6c7fd 100644 --- a/services/print.nix +++ b/services/print.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.print { +mkIf flags.print { # Services ## Enable CUPS to print documents. diff --git a/services/pulseaudio.nix b/services/pulseaudio.nix index 9bfcd60..c69ac5a 100644 --- a/services/pulseaudio.nix +++ b/services/pulseaudio.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.pulseaudio { +mkIf flags.pulseaudio { # Pulse Audio hardware.pulseaudio = { diff --git a/services/scanner.nix b/services/scanner.nix index c55b2d8..89ba84f 100644 --- a/services/scanner.nix +++ b/services/scanner.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.scanner { +mkIf flags.scanner { # Paquets environment.systemPackages = with pkgs; [ diff --git a/services/ssh.nix b/services/ssh.nix index bc754bb..94b049f 100644 --- a/services/ssh.nix +++ b/services/ssh.nix @@ -2,11 +2,9 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in mkIf true { diff --git a/services/virtualbox.nix b/services/virtualbox.nix index dbacc29..6a91607 100644 --- a/services/virtualbox.nix +++ b/services/virtualbox.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.virtualbox { +mkIf flags.virtualbox { # Paquets environment.systemPackages = with pkgs; [ diff --git a/services/x11.nix b/services/x11.nix index ec29314..e7b4870 100644 --- a/services/x11.nix +++ b/services/x11.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf profiles.isDesktopEnvironment { +mkIf currentMachine.profiles.isDesktopEnvironment { # Services # Enable the X11 windowing system. diff --git a/services/xmonad/xmonad.nix b/services/xmonad/xmonad.nix index 7e32dab..49f306e 100644 --- a/services/xmonad/xmonad.nix +++ b/services/xmonad/xmonad.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.xmonad { +mkIf flags.xmonad { # Paquets environment.systemPackages = with pkgs; [ From e778ad19cb4ebbbb142062600908584df0992ea3 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 28 Apr 2017 16:17:21 +0200 Subject: [PATCH 016/120] fix: oubli d'une migration vers l'utilisation de l'annuaire --- applications/terminal/edition-musique.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/applications/terminal/edition-musique.nix b/applications/terminal/edition-musique.nix index b15d8a1..be79ce2 100644 --- a/applications/terminal/edition-musique.nix +++ b/applications/terminal/edition-musique.nix @@ -2,14 +2,12 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cfg = config.r6d.config-generator; - computers = config.r6d.computers; - profiles = config.r6d.profiles; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in -mkIf cfg.edition-musique { +mkIf flags.edition-musique { # Paquets environment.systemPackages = with pkgs; [ From 02f76b6a30ae79a2b81c10c4e48f5ac8e2a5f890 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 28 Apr 2017 16:24:04 +0200 Subject: [PATCH 017/120] fix: typo --- module-template.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module-template.nix b/module-template.nix index 0353644..8de5a75 100644 --- a/module-template.nix +++ b/module-template.nix @@ -2,7 +2,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; - cannuaire = config.r6d.machines; + annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; flags = currentMachine.configuration-flags; in From b08da50c3c30c45a63a52a6541fc9b5be45d29b2 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 28 Apr 2017 16:24:42 +0200 Subject: [PATCH 018/120] =?UTF-8?q?d=C3=A9sactivation=20de=20personnalisat?= =?UTF-8?q?ion=20de=20paquets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/graphical/client-internet.nix | 2 ++ applications/terminal/edition-video.nix | 2 ++ 2 files changed, 4 insertions(+) diff --git a/applications/graphical/client-internet.nix b/applications/graphical/client-internet.nix index 7883c5f..a49b6ec 100644 --- a/applications/graphical/client-internet.nix +++ b/applications/graphical/client-internet.nix @@ -32,6 +32,7 @@ environment.systemPackages = with pkgs; [ transmission_remote_gtk ]; + /* TODO: voir pour appliquer la personnalisation nixpkgs.config.packageOverrides = pkgs: { clawsMail = pkgs.clawsMail.override { enablePluginFancy = false; # nécessite wekitgtk qui est troué @@ -43,6 +44,7 @@ environment.systemPackages = with pkgs; [ }; mumble = pkgs.mumble.override { pulseSupport = true; }; }; + */ #nixpkgs.config.permittedInsecurePackages = [ # "webkitgtk-2.4.11" # pour que le plugin fancy de claws-mail fonctionne diff --git a/applications/terminal/edition-video.nix b/applications/terminal/edition-video.nix index dab9e00..76bfc93 100644 --- a/applications/terminal/edition-video.nix +++ b/applications/terminal/edition-video.nix @@ -14,10 +14,12 @@ mkIf flags.edition-video { ffmpeg-full # assemblage de flux audio & video en ligne de commande ]; + /* TODO: voir pour appliquer la personnalisation nixpkgs.config.packageOverrides = pkgs: { ffmpeg-full = pkgs.ffmpeg-full.override { nonfreeLicensing = true; nvenc = true; }; }; + */ } From 21d6e212146eeacb5c26eaa1e57d3067efe94d45 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 28 Apr 2017 17:25:42 +0200 Subject: [PATCH 019/120] options: ensemble d'options pour nix-serve-client --- options.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/options.nix b/options.nix index b4738b7..1371158 100644 --- a/options.nix +++ b/options.nix @@ -39,7 +39,6 @@ let mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres."; multimediaSuite = mkEnableOption "Profil pour la suite multimédia."; murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)"; - nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix."; nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix."; nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store"; officeSuite = mkEnableOption "Profil pour la suite bureautique"; @@ -71,7 +70,14 @@ let type = lib.types.string; }; nix-serve-server = mkEnableOption "nix-serve server"; - nix-serve-client = mkEnableOption "nix-serve client"; + nix-serve-client = { + enable = mkEnableOption "nix-serve client"; + servers = mkOption { + default = [ https://cache.nixos.org/ ]; + description = "List of nix-serve servers providing binary caches."; + type = types.listOf types.str; + }; + }; tinc = { enable = mkEnableOption "Enable tinc service"; From 2588e7052a12fbe8270f0e51e100b2cad975bbc2 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 28 Apr 2017 17:27:27 +0200 Subject: [PATCH 020/120] =?UTF-8?q?script=20qui=20relance=20une=20commande?= =?UTF-8?q?=20des=20changement=20du=20syst=C3=A8me=20de=20fichier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- onchange | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 onchange diff --git a/onchange b/onchange new file mode 100755 index 0000000..f3d75af --- /dev/null +++ b/onchange @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +EXCLUSION="~$|swp$|swo$" + +while inotifywait --exclude $EXCLUSION -r -e modify . +do + $@ +done From 24fa43926b252b9e66fed6134f6bae51761755c5 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 28 Apr 2017 17:36:07 +0200 Subject: [PATCH 021/120] ajout instructions readme --- README.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index da12b06..b6411b4 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,19 @@ Une recette dite "config-generator" adapte la configuration selon le nom de la m Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs. # Notes de mise-à-jour + +## pour l'utilisation de l'annuaire (2017-04-28) + +* faire les mises à jour de l'OS +* commiter & pusher l'état des dépôts (au cas où). Pour les différents dépôts `git a`, `git commit` puis `make tag push` +* mettre à jour les dépôts avec les dernières versions, `make submodules-update` +* tester la configuration : `nixos-rebuild build` +* corriger et ajouter les éléments manquant (notamment dans `private/annuaire.nix` ) +* lorsque tout semble bon, vérifier : + * qu'il y a toujours des utilisateurs dans la configuration + * que le moyen d'accéder à la machine n'a pas été supprimé (surtout les machines distantes) +* lancer la commande de build de l'os : `make` :) + ## pour le passage de 16.09 à unstable * mettre à jour tous les dépôts @@ -100,7 +113,7 @@ sudo su - * formater les partitions ~~~ -mkfs.ext4 -L nixos /dev/sda1 +mkfs.ext4 -L nixos /dev/sda1 swapoff -a mkswap /dev/sda2 swapon -a @@ -115,7 +128,7 @@ mkdir /etc/nixos mkdir /mnt/nix mount --bind /mnt/nix/ /nix ~~~ - + * installer les paquets nécessaires @@ -149,7 +162,7 @@ exit * créer un profil nix pour root & un channel ~~~ -. ~nix/.nix-profile/etc/profile.d/nix.sh +. ~nix/.nix-profile/etc/profile.d/nix.sh nix-channel --remove nixpkgs nix-channel --add http://nixos.org/channels/nixos-unstable nixos nix-channel --update @@ -167,7 +180,7 @@ nix-env -i vim_configurable cat < /root/configuration.nix { fileSystems."/" = {}; boot.loader.grub.enable = false; -} +} EOF export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos export NIXOS_CONFIG=/root/configuration.nix @@ -214,4 +227,3 @@ notamment le périphérique utilisé par grub unset NIXOS_CONFIG nixos-install ~~~ - From 01c3b6fc39441241c8b5fa88029024edb8cef050 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 30 Apr 2017 15:07:10 +0200 Subject: [PATCH 022/120] ajout option rmilter --- options.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/options.nix b/options.nix index 1371158..c56d4d5 100644 --- a/options.nix +++ b/options.nix @@ -46,6 +46,7 @@ let pulseaudio = mkEnableOption "Profil pour activer pulseaudio."; rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP."; radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts."; + rmilter = mkEnableOption "Profil pour activer le filtrage de mails par postfix."; scanner = mkEnableOption "Profil pour que les scanners soient utilisable."; securitySuite = mkEnableOption "Profil pour la suite de logiciels de sécurité."; smokeping = mkEnableOption "Profil pour activer le monitoring réseau par smokeping."; From 6e292406647c66c1ddd7abb1f2ae228685791717 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 May 2017 01:38:24 +0200 Subject: [PATCH 023/120] =?UTF-8?q?d=C3=A9sactivation=20sqlitebrowser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + applications/graphical/developpement.nix | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b6411b4..12aa9c4 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Actuellement, les scripts contiennent un peu de configuration spécifique pour l * mettre à jour les dépôts avec les dernières versions, `make submodules-update` * tester la configuration : `nixos-rebuild build` * corriger et ajouter les éléments manquant (notamment dans `private/annuaire.nix` ) +* vérifier que `configuration.nix` ne contient pas `services.xserver.enable = true;` * lorsque tout semble bon, vérifier : * qu'il y a toujours des utilisateurs dans la configuration * que le moyen d'accéder à la machine n'a pas été supprimé (surtout les machines distantes) diff --git a/applications/graphical/developpement.nix b/applications/graphical/developpement.nix index 30ea54f..93a7435 100644 --- a/applications/graphical/developpement.nix +++ b/applications/graphical/developpement.nix @@ -13,7 +13,7 @@ mkIf (flags.developpement && flags.graphical) { environment.systemPackages = with pkgs; [ # Base de données pgadmin # interface d'administration de postgres - sqlitebrowser # interface d'administration de sqlite + #sqlitebrowser # interface d'administration de sqlite # Documentation #zeal # consulter la documentation hors ligne From f2f49c62063a512ab961dc4bc81afda7fabe8d5f Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 May 2017 01:38:40 +0200 Subject: [PATCH 024/120] ajout plugin pandoc --- applications/terminal/developpement-haskell.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index da8ac0a..2dd123e 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -23,6 +23,7 @@ mkIf flags.developpement-haskell { ghc-mod hindent # indentation code hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques + pandoc-filter-graphviz # filtre pour utiliser graphviz à partir de pandoc #postgrest # mapper HTTP <-> PostgreSQL stylish-haskell # qualité de code turtle # genre shell-scripting From 197961745db907f3c03af06ebf676045c2811f4d Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 May 2017 01:39:19 +0200 Subject: [PATCH 025/120] indentation --- services/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/default.nix b/services/default.nix index 0d72833..46c4b52 100644 --- a/services/default.nix +++ b/services/default.nix @@ -16,20 +16,20 @@ in # commandées par config-generator ## option de configuration spécifique - ./print.nix # configuration de base de cups - ./docker.nix # activer docker + ./print.nix # configuration de base de cups + ./docker.nix # activer docker ./elasticsearch.nix # service de stockage et recher de données ./hoogle.nix # service hoogle pour haskell ./hydra-build.nix # service de construction de paquet. -> la machine compile des paquets ./hydra-core.nix # service pour l'instance d'hydra ./kibana.nix # service de visualisation de données stockées dans elasticsearch ./locate.nix # service locate - ./virtualbox.nix # activer virtualbox - ./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad + ./virtualbox.nix # activer virtualbox + ./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad ## if isDesktop ./pulseaudio.nix # activation du serveur audio - ./scanner.nix # utilisation d'un scanner + ./scanner.nix # utilisation d'un scanner ./x11.nix # activation du serveur graphique X ]; } From 55650f01b521f9c13e0c10ce465aadfdbad24b4f Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 May 2017 11:16:55 +0200 Subject: [PATCH 026/120] =?UTF-8?q?d=C3=A9sactivation=20locate=20(infinite?= =?UTF-8?q?=20recursion)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/default.nix b/services/default.nix index 46c4b52..352a9e8 100644 --- a/services/default.nix +++ b/services/default.nix @@ -23,7 +23,8 @@ in ./hydra-build.nix # service de construction de paquet. -> la machine compile des paquets ./hydra-core.nix # service pour l'instance d'hydra ./kibana.nix # service de visualisation de données stockées dans elasticsearch - ./locate.nix # service locate + # TODO: réactiver locate + #./locate.nix # service locate ./virtualbox.nix # activer virtualbox ./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad From 47493848344bd59533aa5f83bee7d9a228367b16 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 May 2017 11:22:45 +0200 Subject: [PATCH 027/120] =?UTF-8?q?x11=20doit=20=C3=AAtre=20activ=C3=A9=20?= =?UTF-8?q?=C3=A0=20la=20main=20dans=20configuration.nix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/x11.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/x11.nix b/services/x11.nix index e7b4870..b2acd10 100644 --- a/services/x11.nix +++ b/services/x11.nix @@ -7,12 +7,15 @@ let flags = currentMachine.configuration-flags; in +/** + * Il faut activer `services.xserver.enable = true;` dans configuration.nix + */ mkIf currentMachine.profiles.isDesktopEnvironment { # Services # Enable the X11 windowing system. services.xserver = { - enable = true; + # enable = true; layout = "fr"; xkbOptions = "eurosign:e"; displayManager.lightdm.enable = true; From 274f4812f45c0f504a0f841642ed1a58e418ab93 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 May 2017 11:39:11 +0200 Subject: [PATCH 028/120] =?UTF-8?q?d=C3=A9sactivation=20config-generator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base.nix b/base.nix index dca968c..0aaa718 100644 --- a/base.nix +++ b/base.nix @@ -3,7 +3,7 @@ { imports = [ # moulinette de configuration - ./config-generator.nix + /*./config-generator.nix*/ ./options.nix # subfolders From b03d4acfe24e63308195ac841a311a0c856582e6 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 13 May 2017 17:13:23 +0200 Subject: [PATCH 029/120] add assertions on base --- options.nix | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/options.nix b/options.nix index c56d4d5..9466eb4 100644 --- a/options.nix +++ b/options.nix @@ -128,6 +128,10 @@ let }; }; }; + + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; in { @@ -139,4 +143,33 @@ in ''; }; }; + + config = { + /** + prototype : (expression A ) && tests || !(expression A) -> réalise le test si A est satisfait, et continue sinon = pas de politique + */ + assertions = [ + { + assertion = (currentMachine.profiles.isWorkstation && (currentMachine.profiles.isDesktopEnvironment == true)) + || (!currentMachine.profiles.isWorkstation); + message = "A workstation requires a graphical environement."; + } + { + assertion = (currentMachine.profiles.isDesktopEnvironment && (config.services.xserver.enable == true)) + || (!currentMachine.profiles.isDesktopEnvironment); + message = "You need to enable xserver manually."; + } + { + assertion = (currentMachine.profiles.isServer && (currentMachine.profiles.isDesktopEnvironment == false)) + || (!currentMachine.profiles.isServer); + message = "A graphical environment is not required for a server."; + } + { + /* authorité xor resolveur */ + assertion = (flags.dns_autorite && ! flags.dns_resolveur) + || (!flags.dns_autorite && flags.dns_resolveur); + message = "Both authoritative and recursor DNS services can't be live simultaneously. Choose only one!"; + } + ]; + }; } From 419a1cbf53e18bc5a5241edf2586439e30d6393f Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Mon, 15 May 2017 20:34:35 +0200 Subject: [PATCH 030/120] fix: spacefm crashes https://github.com/IgnorantGuru/spacefm/issues/671 --- applications/terminal/default-applications.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/applications/terminal/default-applications.nix b/applications/terminal/default-applications.nix index efd1baf..5674eba 100644 --- a/applications/terminal/default-applications.nix +++ b/applications/terminal/default-applications.nix @@ -32,6 +32,7 @@ mkIf true { #python34Packages.glances # monitoring pwgen # générateur de mot de passe rtorrent # TODO outil de téléchargement de torrent & magnet + shared_mime_info # MIME info tmux # nécessaire pour byobu tree # affiche une arborescence de fichiers et dossiers usbutils From aa6ae3cc8db1a72e95dcbfaf84d2c31b7ecbe8aa Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Mon, 15 May 2017 22:53:29 +0200 Subject: [PATCH 031/120] ajout config yubike --- services/default.nix | 1 + services/yubikey.nix | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 services/yubikey.nix diff --git a/services/default.nix b/services/default.nix index 352a9e8..1caa947 100644 --- a/services/default.nix +++ b/services/default.nix @@ -13,6 +13,7 @@ in ./haveged.nix ./monitoring-munin.nix ./ssh.nix + ./yubikey.nix # commandées par config-generator ## option de configuration spécifique diff --git a/services/yubikey.nix b/services/yubikey.nix new file mode 100644 index 0000000..916893f --- /dev/null +++ b/services/yubikey.nix @@ -0,0 +1,42 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configuration-flags; +in + +mkIf true { + + # Services + # https://github.com/NixOS/nixpkgs/issues/15960 + + services = { + pcscd.enable = true; + + udev.packages = with pkgs; [ + libu2f-host + yubikey-personalization + ]; + + xserver.displayManager.sessionCommands = '' + # https://github.com/NixOS/nixpkgs/commit/5391882ebd781149e213e8817fba6ac3c503740c + gpg-connect-agent /bye + GPG_TTY=$(tty) + export GPG_TTY + ''; + }; + users.extraGroups.yubikey = {}; + + environment.systemPackages = with pkgs; [ + gnupg opensc pcsctools libu2f-host yubikey-personalization + ]; + + security.pam.enableU2F = true; + + /*users.extraUsers.joko = { + isNormalUser = true; + extraGroups = [ "wheel" "input" "audio" "video" ]; + };*/ +} From a816a81b9e0b55ed1283fae59416bfaa7b4459c2 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 19 May 2017 12:37:39 +0200 Subject: [PATCH 032/120] migration machines --- config-generator.nix | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index 327e29f..fbcd2bc 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -138,25 +138,6 @@ in ## Affectation des profils aux machines - (mkIf comp.isHydra { - networking.hostName = "hydra.prunetwork.fr"; # Define your hostname. - r6d.profiles = { - isPrunetwork = true; - isServer = true; - }; - - r6d.config-generator = { - docker = true; - hydra-builder = true; - hydra-core = true; - nix-serve-server = true; - tincAddress = "192.168.12.9/24"; - tincExtraConfig = '' - ConnectTo = rollo_dubronetwork_fr - ConnectTo = ocean_prunetwork_fr - ''; - }; - }) (mkIf comp.isOcean { networking.hostName = "ocean.prunetwork.fr"; # Define your hostname. r6d.profiles = { @@ -177,31 +158,6 @@ in ''; }; }) - (mkIf comp.isRadx { - networking.hostName = "radx.prunetwork.fr"; # Define your hostname. - r6d.profiles = { - isPrunetwork = true; - isWorkstation = true; - }; - - r6d.config-generator = { - database_postgres = true; - elasticsearch = true; - #hydra-core = false; # DO NOT ENABLE ON WORKSTATION - kibana = true; - nix-serve-client = true; - nix-serve-server = true; - #rabbitmq = true; - tincAddress = "192.168.12.3/24"; - tincExtraConfig = '' - ConnectTo = monstre_dubronetwork_fr - ConnectTo = rollo_dubronetwork_fr - ConnectTo = hydra_prunetwork_fr - ConnectTo = ocean_prunetwork_fr - ''; - virtualbox = true; - }; - }) (mkIf comp.isLatitude { networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname. From cdd75e063d5e96217d5533aaab6f2ff946c9be15 Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Fri, 19 May 2017 12:58:39 +0200 Subject: [PATCH 033/120] assertion DNS --- options.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/options.nix b/options.nix index 9466eb4..9ea8361 100644 --- a/options.nix +++ b/options.nix @@ -164,6 +164,11 @@ in || (!currentMachine.profiles.isServer); message = "A graphical environment is not required for a server."; } + { + /* At least one (authorité or resolveur) */ + assertion = flags.dns_autorite || flags.dns_resolveur; + message = "DNS service is disabled. You must enable a dns recursor or autoritative."; + } { /* authorité xor resolveur */ assertion = (flags.dns_autorite && ! flags.dns_resolveur) From d3f1f2121e8021eb4620e973e84a7a4813fb9b09 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 19 May 2017 13:01:55 +0200 Subject: [PATCH 034/120] ajustement readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 12aa9c4..ff91662 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Actuellement, les scripts contiennent un peu de configuration spécifique pour l * mettre à jour les dépôts avec les dernières versions, `make submodules-update` * tester la configuration : `nixos-rebuild build` * corriger et ajouter les éléments manquant (notamment dans `private/annuaire.nix` ) -* vérifier que `configuration.nix` ne contient pas `services.xserver.enable = true;` +* vérifier que `configuration.nix` contient `services.xserver.enable = true;` pour les machines avec interface graphique * lorsque tout semble bon, vérifier : * qu'il y a toujours des utilisateurs dans la configuration * que le moyen d'accéder à la machine n'a pas été supprimé (surtout les machines distantes) From ff733c5d08a1cb38a37a7f63b376718da4d92605 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 19 May 2017 13:02:22 +0200 Subject: [PATCH 035/120] migration monstre --- config-generator.nix | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index fbcd2bc..3428ec2 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -180,27 +180,7 @@ in ''; }; }) - (mkIf comp.isMonstre { - networking.hostName = "monstre.dubronetwork.fr"; # Define your hostname. - r6d.profiles = { - isDubronetwork = true; - isServer = true; - }; - r6d.config-generator = { - fail2ban = true; - murmur = true; - nix-serve-client = true; - nix-serve-server = true; - nixStoreProxyCache = true; - tincAddress = "192.168.12.4/24"; - tincExtraConfig = '' - ConnectTo = rollo_dubronetwork_fr - ConnectTo = hydra_prunetwork_fr - ConnectTo = ocean_prunetwork_fr - ''; - }; - }) (mkIf comp.isNeoNomade{ networking.hostName = "neo-nomade.dubronetwork.fr"; # Define your hostname. r6d.profiles = { From 67eadfab97a3e02851bcc0679248dd0fadd8fcc3 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 19 May 2017 17:18:20 +0200 Subject: [PATCH 036/120] =?UTF-8?q?ces=20anciens=20profils=20ont=20=C3=A9t?= =?UTF-8?q?=C3=A9=20convertis=20en=20assertions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config-generator.nix | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index 3428ec2..811fca4 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -40,16 +40,6 @@ in config = mkMerge [ ## Définition des profils génériques - (mkIf pfl.isDesktopEnvironment { - r6d.config-generator = { - awesome = true; - internetSuite = true; - multimediaSuite = true; - officeSuite = true; - pulseaudio = true; - securitySuite = true; - }; - }) (mkIf (pfl.isServer && !comp.isMonstre) { r6d.config-generator = { #database_postgres = true; @@ -68,23 +58,8 @@ in dns_resolveur = true; }; }) - (mkIf pfl.isWorkstation { - r6d.profiles.isDesktopEnvironment = true; - - r6d.config-generator = { - docker = true; - graphical = true; - }; - }) ## Profils liés à Dubronetwork - (mkIf pfl.isDubronetwork { - r6d.config-generator = { - auto-upgrade = true; - locate = true; - print = true; - }; - }) (mkIf (pfl.isDubronetwork && pfl.isWorkstation) { r6d.config-generator = { cartographie = true; @@ -105,16 +80,6 @@ in }) ## Profils liés à Prunetwork - (mkIf pfl.isPrunetwork { - r6d.config-generator = { - auto-upgrade = true; - docker = true; - locate = true; - fail2ban = true; - smokeping = true; - swap = true; - }; - }) (mkIf (pfl.isPrunetwork && pfl.isWorkstation) { r6d.config-generator = { cartographie = true; From ab1d364327ecc62f67373783fbc9edcda2f2785b Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 20 May 2017 22:43:52 +0200 Subject: [PATCH 037/120] ajout option munin --- options.nix | 1 + services/monitoring-munin.nix | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/options.nix b/options.nix index 9ea8361..2b7cf0b 100644 --- a/options.nix +++ b/options.nix @@ -38,6 +38,7 @@ let locate = mkEnableOption "Profil pour activer la fonction locate."; mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres."; multimediaSuite = mkEnableOption "Profil pour la suite multimédia."; + munin = mkEnableOption "Profil pour activer la supervision par Munin"; murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)"; nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix."; nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store"; diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 10c2ec7..74b5cbd 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -7,9 +7,8 @@ let flags = currentMachine.configuration-flags; in -# TODO: ajouter option # TODO: changer adresse mail -mkIf true { +mkIf flags.munin { # Paquets environment.systemPackages = with pkgs; [ From b15672c3adefe39c6e2a3ea3fcf147f74bf99509 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 21 May 2017 13:58:09 +0200 Subject: [PATCH 038/120] =?UTF-8?q?m=C3=A9nage=20config=20generator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config-generator.nix | 46 -------------------------------------------- 1 file changed, 46 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index 811fca4..99b1805 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -21,15 +21,12 @@ in options = { #* Utilisé pour avoir des raccourcis de machine r6d.computers = { - isHydra = mkEnableOption "Identification du nom de machine."; isLatitude = mkEnableOption "Identification du nom de machine."; isMonstre = mkEnableOption "Identification du nom de machine."; isNeoNomade = mkEnableOption "Identification du nom de machine."; isNomade = mkEnableOption "Identification du nom de machine."; - isOcean = mkEnableOption "Identification du nom de machine."; isPedro = mkEnableOption "Identification du nom de machine."; isPhenom = mkEnableOption "Identification du nom de machine."; - isRadx = mkEnableOption "Identification du nom de machine."; isRollo = mkEnableOption "Identification du nom de machine."; }; }; @@ -79,50 +76,7 @@ in }; }) - ## Profils liés à Prunetwork - (mkIf (pfl.isPrunetwork && pfl.isWorkstation) { - r6d.config-generator = { - cartographie = true; - conception-assistee = true; - docker = true; - developpement = true; - #developpement-elm = true; - developpement-haskell = true; - developpement-java = true; - developpement-rust = true; - edition-musique = true; - edition-photo = true; - edition-video = true; - hydra-core = false; # DO NOT ENABLE ON WORKSTATION, YOU CAN CRASH YOUR SYSTEM - print = true; - scanner = true; - #virtualbox = true; - #xmonad = true; - }; - }) - - ## Affectation des profils aux machines - (mkIf comp.isOcean { - networking.hostName = "ocean.prunetwork.fr"; # Define your hostname. - r6d.profiles = { - isPrunetwork = true; - isServer = true; - }; - - r6d.config-generator = { - docker = true; - hydra-builder = true; - radicale = true; - nix-serve-client = true; - nix-serve-server = true; - tincAddress = "192.168.12.6/24"; - tincExtraConfig = '' - ConnectTo = hydra_prunetwork_fr - ConnectTo = rollo_dubronetwork_fr - ''; - }; - }) (mkIf comp.isLatitude { networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname. From 8ee09217cb67faba7ed8d7132f6e799d4bc258b9 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Mon, 22 May 2017 10:42:16 +0200 Subject: [PATCH 039/120] =?UTF-8?q?une=20machine=20hydra-builder=20doit=20?= =?UTF-8?q?faire=20du=20garbage-collection=20r=C3=A9guli=C3=A8rement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/hydra-build.nix | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/services/hydra-build.nix b/services/hydra-build.nix index add6631..43ccdce 100644 --- a/services/hydra-build.nix +++ b/services/hydra-build.nix @@ -11,22 +11,32 @@ mkIf flags.hydra-builder { # Paquets environment.systemPackages = with pkgs; [ - qemu kvm + qemu + virtualbox ]; # Services ## Services de virtualisation utilisé pour les tests hydra - virtualisation.docker.enable = true; - virtualisation.libvirtd.enable = true; - virtualisation.libvirtd.enableKVM = true; - #virtualisation.virtualbox.guest.enable = true; - virtualisation.virtualbox.host.enable = true; - virtualisation.virtualbox.host.headless = true; + virtualisation = { + docker.enable = true; + libvirtd = { + enable = true; + enableKVM = true; + }; + virtualbox = { + #guest.enable = true; + host.enable = true; + host.headless = true; + }; + }; - ## Ménage automatique tous les jours - nix.gc.automatic = true; + ## Ménage automatique tous les jours - Frequent garbage collection is a good idea for build machines. + nix.gc = { + automatic = true; + dates = "*:0/30"; + }; # users.users."hydrabld" = { # description = "Execution des jobs hydra"; From 854eed92279507900be53e382b4df03ad0936e8d Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Thu, 25 May 2017 02:17:42 +0200 Subject: [PATCH 040/120] =?UTF-8?q?=C3=A9bauche=20de=20fonction=20pour=20g?= =?UTF-8?q?=C3=A9n=C3=A9rer=20un=20profil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib.nix | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lib.nix diff --git a/lib.nix b/lib.nix new file mode 100644 index 0000000..1f3a871 --- /dev/null +++ b/lib.nix @@ -0,0 +1,29 @@ +{lib}: +let + profiles = { + isDesktopEnvironment = { + awesome = true; + internetSuite = true; + multimediaSuite = true; + officeSuite = true; + pulseaudio = true; + securitySuite = true; + }; + isWorkstation = { + graphical = true; + docker = true; + }; + isServer = { + }; + }; + +in + +rec { + applyProfilesToDirectory = customProfiles: directory: + lib.mapAttrs (applyProfilesToMachine customProfiles) directory; + + applyProfilesToMachine = customProfiles: machineName: machineOptions: + machineOptions; + #lib.recursiveUpdate {} machineOptions; +} From 259a1a0aa6da2aac64acc0cbd41658242e74fd60 Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Thu, 25 May 2017 02:18:07 +0200 Subject: [PATCH 041/120] cible make pour juste builder NixOS sans appliquer --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 4c13a2a..a56562b 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,9 @@ full-auto: submodules-update upgrade clean optimise optimise: $(TIME) nix-store --optimise +rebuild-build: + $(TIME) time nixos-rebuild build --fallback --show-trace + rebuild-switch: $(TIME) time nixos-rebuild switch --fallback --show-trace From 745d2cd171b665a6feff6f29d1f8f52bd6696afd Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Thu, 25 May 2017 23:30:50 +0200 Subject: [PATCH 042/120] =?UTF-8?q?on=20peut=20se=20passer=20de=20passer?= =?UTF-8?q?=20lib=20en=20param=C3=A8tre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib.nix b/lib.nix index 1f3a871..a796258 100644 --- a/lib.nix +++ b/lib.nix @@ -1,5 +1,6 @@ -{lib}: let + lib = with import {}; pkgs.lib; + profiles = { isDesktopEnvironment = { awesome = true; From c43adc80cb1949879e265c02b8e0895a9702223e Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Tue, 30 May 2017 23:21:33 +0200 Subject: [PATCH 043/120] utilisation des profils pour modifier les flags :) --- lib.nix | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/lib.nix b/lib.nix index a796258..7d907ec 100644 --- a/lib.nix +++ b/lib.nix @@ -14,17 +14,33 @@ let graphical = true; docker = true; }; - isServer = { - }; + #isServer = { + #}; }; in -rec { +with lib; rec{ + # Apply the profiles (pre-defined + custom) to the whole directory applyProfilesToDirectory = customProfiles: directory: lib.mapAttrs (applyProfilesToMachine customProfiles) directory; + # Apply the profiles (pre-defined + custom) to a machine applyProfilesToMachine = customProfiles: machineName: machineOptions: - machineOptions; - #lib.recursiveUpdate {} machineOptions; + { configuration-flags = lib.recursiveUpdate (generateFlagsSet customProfiles machineOptions.profiles) machineOptions.configuration-flags; + ipAddress = machineOptions.ipAddress; + tinc = machineOptions.tinc; + profiles = machineOptions.profiles; + }; + + # Generate a set of configuration flags based on profiles + generateFlagsSet = customProfiles: machineProfiles: + let + allProfiles = recursiveUpdate profiles customProfiles; + conditionalFlags = name: value: + if machineProfiles.${name} + then value + else {}; + in + foldr (a: b: a // b) {} (mapAttrsToList conditionalFlags allProfiles); } From ac91ce4492100da422c1412a1d9d9bbec7adcfeb Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Wed, 31 May 2017 00:23:10 +0200 Subject: [PATCH 044/120] =?UTF-8?q?regroupement=20des=20options=20=C3=A9pa?= =?UTF-8?q?rses=20en=20configurationOptions=20et=20renommage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/graphical/adminsys.nix | 2 +- applications/graphical/bureau.nix | 2 +- applications/graphical/bureautique.nix | 2 +- applications/graphical/cao.nix | 2 +- applications/graphical/cartographie.nix | 2 +- applications/graphical/client-internet.nix | 2 +- .../graphical/default-applications.nix | 2 +- applications/graphical/default.nix | 2 +- applications/graphical/developpement-elm.nix | 2 +- .../graphical/developpement-haskell.nix | 2 +- applications/graphical/developpement-java.nix | 2 +- .../graphical/developpement-jetbrains.nix | 2 +- applications/graphical/developpement-rust.nix | 2 +- applications/graphical/developpement.nix | 2 +- applications/graphical/edition-musique.nix | 2 +- applications/graphical/edition-photo.nix | 2 +- applications/graphical/edition-video.nix | 2 +- applications/graphical/jeux.nix | 2 +- applications/graphical/multimedia.nix | 2 +- applications/graphical/network.nix | 2 +- applications/graphical/securite.nix | 2 +- applications/terminal/adminsys.nix | 2 +- applications/terminal/bureau.nix | 2 +- applications/terminal/bureautique.nix | 2 +- applications/terminal/cao.nix | 2 +- applications/terminal/cartographie.nix | 2 +- applications/terminal/client-internet.nix | 2 +- .../terminal/default-applications.nix | 2 +- applications/terminal/default.nix | 2 +- applications/terminal/developpement-elm.nix | 2 +- .../terminal/developpement-haskell.nix | 2 +- applications/terminal/developpement-java.nix | 2 +- .../terminal/developpement-jetbrains.nix | 2 +- applications/terminal/developpement-rust.nix | 2 +- applications/terminal/developpement.nix | 2 +- applications/terminal/edition-musique.nix | 2 +- applications/terminal/edition-photo.nix | 2 +- applications/terminal/edition-video.nix | 2 +- applications/terminal/jeux.nix | 2 +- applications/terminal/multimedia.nix | 2 +- applications/terminal/network.nix | 2 +- applications/terminal/securite.nix | 2 +- config-generator.nix | 2 +- configuration/auto-upgrade.nix | 2 +- configuration/awesome.nix | 2 +- configuration/default.nix | 2 +- configuration/environment.nix | 2 +- configuration/laptop.nix | 2 +- configuration/localisation.nix | 2 +- configuration/network-ipv6.nix | 2 +- configuration/network.nix | 2 +- configuration/swap.nix | 2 +- configuration/udev.nix | 2 +- lib.nix | 7 ++--- module-template.nix | 2 +- options.nix | 29 ++++++++++--------- services/default.nix | 2 +- services/docker.nix | 2 +- services/elasticsearch.nix | 2 +- services/haveged.nix | 2 +- services/hoogle.nix | 2 +- services/hydra-build.nix | 2 +- services/hydra-core.nix | 2 +- services/kibana.nix | 2 +- services/locate.nix | 2 +- services/monitoring-munin.nix | 2 +- services/print.nix | 2 +- services/pulseaudio.nix | 2 +- services/scanner.nix | 2 +- services/ssh.nix | 2 +- services/virtualbox.nix | 2 +- services/x11.nix | 2 +- services/xmonad/xmonad.nix | 2 +- services/yubikey.nix | 2 +- 74 files changed, 91 insertions(+), 89 deletions(-) diff --git a/applications/graphical/adminsys.nix b/applications/graphical/adminsys.nix index fd6175f..a94b723 100644 --- a/applications/graphical/adminsys.nix +++ b/applications/graphical/adminsys.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.graphical { diff --git a/applications/graphical/bureau.nix b/applications/graphical/bureau.nix index f0ed91c..252fe10 100644 --- a/applications/graphical/bureau.nix +++ b/applications/graphical/bureau.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf currentMachine.profiles.isDesktopEnvironment { diff --git a/applications/graphical/bureautique.nix b/applications/graphical/bureautique.nix index dd7b7b5..160d6c2 100644 --- a/applications/graphical/bureautique.nix +++ b/applications/graphical/bureautique.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.officeSuite && flags.graphical) { diff --git a/applications/graphical/cao.nix b/applications/graphical/cao.nix index 2945ce0..a3d2a6d 100644 --- a/applications/graphical/cao.nix +++ b/applications/graphical/cao.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.conception-assistee && flags.graphical) { diff --git a/applications/graphical/cartographie.nix b/applications/graphical/cartographie.nix index 0e307b4..4c3d269 100644 --- a/applications/graphical/cartographie.nix +++ b/applications/graphical/cartographie.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.cartographie && flags.graphical) { diff --git a/applications/graphical/client-internet.nix b/applications/graphical/client-internet.nix index a49b6ec..5f9edf1 100644 --- a/applications/graphical/client-internet.nix +++ b/applications/graphical/client-internet.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in # TODO: ménage mkIf (flags.internetSuite && flags.graphical) { diff --git a/applications/graphical/default-applications.nix b/applications/graphical/default-applications.nix index 3833fc8..659131d 100644 --- a/applications/graphical/default-applications.nix +++ b/applications/graphical/default-applications.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (true && flags.graphical) { diff --git a/applications/graphical/default.nix b/applications/graphical/default.nix index 90aae1d..3fa8a5a 100644 --- a/applications/graphical/default.nix +++ b/applications/graphical/default.nix @@ -4,7 +4,7 @@ let #inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in { diff --git a/applications/graphical/developpement-elm.nix b/applications/graphical/developpement-elm.nix index e3047c0..f37bc7b 100644 --- a/applications/graphical/developpement-elm.nix +++ b/applications/graphical/developpement-elm.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.developpement-elm && flags.graphical) { diff --git a/applications/graphical/developpement-haskell.nix b/applications/graphical/developpement-haskell.nix index ed42d5f..353322b 100644 --- a/applications/graphical/developpement-haskell.nix +++ b/applications/graphical/developpement-haskell.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.developpement-haskell && flags.graphical) { diff --git a/applications/graphical/developpement-java.nix b/applications/graphical/developpement-java.nix index ef2e267..2b830f3 100644 --- a/applications/graphical/developpement-java.nix +++ b/applications/graphical/developpement-java.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.developpement-java && flags.graphical) { diff --git a/applications/graphical/developpement-jetbrains.nix b/applications/graphical/developpement-jetbrains.nix index bb1e250..b42320a 100644 --- a/applications/graphical/developpement-jetbrains.nix +++ b/applications/graphical/developpement-jetbrains.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.jetbrains-licensed && flags.graphical) { diff --git a/applications/graphical/developpement-rust.nix b/applications/graphical/developpement-rust.nix index 9b41f24..0b6f0b4 100644 --- a/applications/graphical/developpement-rust.nix +++ b/applications/graphical/developpement-rust.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.developpement-rust && flags.graphical) { diff --git a/applications/graphical/developpement.nix b/applications/graphical/developpement.nix index 93a7435..1389237 100644 --- a/applications/graphical/developpement.nix +++ b/applications/graphical/developpement.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.developpement && flags.graphical) { diff --git a/applications/graphical/edition-musique.nix b/applications/graphical/edition-musique.nix index 1ccdaf8..2d04441 100644 --- a/applications/graphical/edition-musique.nix +++ b/applications/graphical/edition-musique.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.edition-musique && flags.graphical) { diff --git a/applications/graphical/edition-photo.nix b/applications/graphical/edition-photo.nix index 14646e9..e0573ad 100644 --- a/applications/graphical/edition-photo.nix +++ b/applications/graphical/edition-photo.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.edition-photo && flags.graphical) { diff --git a/applications/graphical/edition-video.nix b/applications/graphical/edition-video.nix index bccbcdb..61f9a2b 100644 --- a/applications/graphical/edition-video.nix +++ b/applications/graphical/edition-video.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.edition-video && flags.graphical) { diff --git a/applications/graphical/jeux.nix b/applications/graphical/jeux.nix index 14d301f..d426081 100644 --- a/applications/graphical/jeux.nix +++ b/applications/graphical/jeux.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.jeux && flags.graphical) { diff --git a/applications/graphical/multimedia.nix b/applications/graphical/multimedia.nix index dedb031..b76387d 100644 --- a/applications/graphical/multimedia.nix +++ b/applications/graphical/multimedia.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in # TODO ranger le spécifique pulseaudio diff --git a/applications/graphical/network.nix b/applications/graphical/network.nix index c16ed6d..15969e0 100644 --- a/applications/graphical/network.nix +++ b/applications/graphical/network.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (true && flags.graphical) { diff --git a/applications/graphical/securite.nix b/applications/graphical/securite.nix index acb7aaf..543c611 100644 --- a/applications/graphical/securite.nix +++ b/applications/graphical/securite.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf (flags.securitySuite && flags.graphical) { diff --git a/applications/terminal/adminsys.nix b/applications/terminal/adminsys.nix index 3dff337..34068b1 100644 --- a/applications/terminal/adminsys.nix +++ b/applications/terminal/adminsys.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/applications/terminal/bureau.nix b/applications/terminal/bureau.nix index 1b24332..02337b1 100644 --- a/applications/terminal/bureau.nix +++ b/applications/terminal/bureau.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/applications/terminal/bureautique.nix b/applications/terminal/bureautique.nix index ddfdc23..21bc344 100644 --- a/applications/terminal/bureautique.nix +++ b/applications/terminal/bureautique.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.officeSuite { diff --git a/applications/terminal/cao.nix b/applications/terminal/cao.nix index 478d27f..30f33c9 100644 --- a/applications/terminal/cao.nix +++ b/applications/terminal/cao.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.conception-assistee { diff --git a/applications/terminal/cartographie.nix b/applications/terminal/cartographie.nix index 3f7d4c2..f748045 100644 --- a/applications/terminal/cartographie.nix +++ b/applications/terminal/cartographie.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.cartographie { diff --git a/applications/terminal/client-internet.nix b/applications/terminal/client-internet.nix index 694bae2..cd85ecf 100644 --- a/applications/terminal/client-internet.nix +++ b/applications/terminal/client-internet.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in # TODO: ménage mkIf flags.internetSuite { diff --git a/applications/terminal/default-applications.nix b/applications/terminal/default-applications.nix index 5674eba..e0566f0 100644 --- a/applications/terminal/default-applications.nix +++ b/applications/terminal/default-applications.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/applications/terminal/default.nix b/applications/terminal/default.nix index 90aae1d..3fa8a5a 100644 --- a/applications/terminal/default.nix +++ b/applications/terminal/default.nix @@ -4,7 +4,7 @@ let #inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in { diff --git a/applications/terminal/developpement-elm.nix b/applications/terminal/developpement-elm.nix index d5a6bad..01a604b 100644 --- a/applications/terminal/developpement-elm.nix +++ b/applications/terminal/developpement-elm.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.developpement-elm { diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index 2dd123e..f65e4c8 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.developpement-haskell { diff --git a/applications/terminal/developpement-java.nix b/applications/terminal/developpement-java.nix index 8c4a358..354a193 100644 --- a/applications/terminal/developpement-java.nix +++ b/applications/terminal/developpement-java.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.developpement-java { diff --git a/applications/terminal/developpement-jetbrains.nix b/applications/terminal/developpement-jetbrains.nix index 9d6a16c..ff91e67 100644 --- a/applications/terminal/developpement-jetbrains.nix +++ b/applications/terminal/developpement-jetbrains.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.jetbrains-licensed { diff --git a/applications/terminal/developpement-rust.nix b/applications/terminal/developpement-rust.nix index a477b46..40a6750 100644 --- a/applications/terminal/developpement-rust.nix +++ b/applications/terminal/developpement-rust.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.developpement-rust { diff --git a/applications/terminal/developpement.nix b/applications/terminal/developpement.nix index d16838a..e9026bf 100644 --- a/applications/terminal/developpement.nix +++ b/applications/terminal/developpement.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.developpement { diff --git a/applications/terminal/edition-musique.nix b/applications/terminal/edition-musique.nix index be79ce2..cead741 100644 --- a/applications/terminal/edition-musique.nix +++ b/applications/terminal/edition-musique.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.edition-musique { diff --git a/applications/terminal/edition-photo.nix b/applications/terminal/edition-photo.nix index b775242..dc14969 100644 --- a/applications/terminal/edition-photo.nix +++ b/applications/terminal/edition-photo.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.edition-photo { diff --git a/applications/terminal/edition-video.nix b/applications/terminal/edition-video.nix index 76bfc93..19b2bfa 100644 --- a/applications/terminal/edition-video.nix +++ b/applications/terminal/edition-video.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.edition-video { diff --git a/applications/terminal/jeux.nix b/applications/terminal/jeux.nix index 64cc212..2f1aa79 100644 --- a/applications/terminal/jeux.nix +++ b/applications/terminal/jeux.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.jeux { diff --git a/applications/terminal/multimedia.nix b/applications/terminal/multimedia.nix index d257d50..717b9fb 100644 --- a/applications/terminal/multimedia.nix +++ b/applications/terminal/multimedia.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.multimediaSuite { diff --git a/applications/terminal/network.nix b/applications/terminal/network.nix index 88e6ff3..1dc77b7 100644 --- a/applications/terminal/network.nix +++ b/applications/terminal/network.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/applications/terminal/securite.nix b/applications/terminal/securite.nix index 9327d32..a03980e 100644 --- a/applications/terminal/securite.nix +++ b/applications/terminal/securite.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.securitySuite { diff --git a/config-generator.nix b/config-generator.nix index 99b1805..c2ab058 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -8,7 +8,7 @@ let host = config.networking.hostName; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in { diff --git a/configuration/auto-upgrade.nix b/configuration/auto-upgrade.nix index 96ae83a..04ff7f5 100644 --- a/configuration/auto-upgrade.nix +++ b/configuration/auto-upgrade.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.auto-upgrade { diff --git a/configuration/awesome.nix b/configuration/awesome.nix index 2eb007f..c6d0a3f 100644 --- a/configuration/awesome.nix +++ b/configuration/awesome.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in # TODO: rc.lua par défaut (système) diff --git a/configuration/default.nix b/configuration/default.nix index be1322e..a9984a1 100644 --- a/configuration/default.nix +++ b/configuration/default.nix @@ -4,7 +4,7 @@ let #inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in { diff --git a/configuration/environment.nix b/configuration/environment.nix index 90c8191..f29117e 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in # TODO: ménage diff --git a/configuration/laptop.nix b/configuration/laptop.nix index 1099461..7e69cd3 100644 --- a/configuration/laptop.nix +++ b/configuration/laptop.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.laptop { diff --git a/configuration/localisation.nix b/configuration/localisation.nix index 98d3e85..aa0c60a 100644 --- a/configuration/localisation.nix +++ b/configuration/localisation.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/configuration/network-ipv6.nix b/configuration/network-ipv6.nix index 90a151c..36c2425 100644 --- a/configuration/network-ipv6.nix +++ b/configuration/network-ipv6.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/configuration/network.nix b/configuration/network.nix index 0e3f5dd..ec84c69 100644 --- a/configuration/network.nix +++ b/configuration/network.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/configuration/swap.nix b/configuration/swap.nix index 7e200cc..602fdd5 100644 --- a/configuration/swap.nix +++ b/configuration/swap.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.swap { diff --git a/configuration/udev.nix b/configuration/udev.nix index b473bc0..bbdb94b 100644 --- a/configuration/udev.nix +++ b/configuration/udev.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf false { diff --git a/lib.nix b/lib.nix index 7d907ec..cd96259 100644 --- a/lib.nix +++ b/lib.nix @@ -5,13 +5,13 @@ let isDesktopEnvironment = { awesome = true; internetSuite = true; + graphical = true; multimediaSuite = true; officeSuite = true; pulseaudio = true; securitySuite = true; }; isWorkstation = { - graphical = true; docker = true; }; #isServer = { @@ -27,9 +27,8 @@ with lib; rec{ # Apply the profiles (pre-defined + custom) to a machine applyProfilesToMachine = customProfiles: machineName: machineOptions: - { configuration-flags = lib.recursiveUpdate (generateFlagsSet customProfiles machineOptions.profiles) machineOptions.configuration-flags; - ipAddress = machineOptions.ipAddress; - tinc = machineOptions.tinc; + { configurationFlags = lib.recursiveUpdate (generateFlagsSet customProfiles machineOptions.profiles) machineOptions.configurationFlags; + configurationOptions = machineOptions.configurationOptions; profiles = machineOptions.profiles; }; diff --git a/module-template.nix b/module-template.nix index 8de5a75..4efc539 100644 --- a/module-template.nix +++ b/module-template.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/options.nix b/options.nix index 2b7cf0b..ddc011f 100644 --- a/options.nix +++ b/options.nix @@ -6,7 +6,7 @@ let machineOptions = types.submodule { options = { - configuration-flags = { + configurationFlags = { #enable = mkEnableOption "Génération de la configuration d'une machine."; awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome."; auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques."; @@ -57,15 +57,7 @@ let znc = mkEnableOption "Profil pour activer le relais IRC ZNC."; }; - profiles = { - # Domaine - isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; - isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; - # Utilisation machine - isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique."; - isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur."; - isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler."; - }; + configurationOptions = { ipAddress = mkOption { description = "Adresse IP"; @@ -128,11 +120,22 @@ let }; }; }; + + profiles = { + # Domaine + isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; + isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; + # Utilisation machine + isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique."; + isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur."; + isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler."; + }; + }; }; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in { @@ -151,8 +154,8 @@ in */ assertions = [ { - assertion = (currentMachine.profiles.isWorkstation && (currentMachine.profiles.isDesktopEnvironment == true)) - || (!currentMachine.profiles.isWorkstation); + assertion = (currentMachine.profiles.isDesktopEnvironment && (currentMachine.configurationFlags.graphical == true)) + || (!currentMachine.profiles.isDesktopEnvironment); message = "A workstation requires a graphical environement."; } { diff --git a/services/default.nix b/services/default.nix index 1caa947..6de2f9e 100644 --- a/services/default.nix +++ b/services/default.nix @@ -4,7 +4,7 @@ let #inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in { diff --git a/services/docker.nix b/services/docker.nix index 76c9531..b6607cd 100644 --- a/services/docker.nix +++ b/services/docker.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.docker { diff --git a/services/elasticsearch.nix b/services/elasticsearch.nix index 7c69723..f3f4974 100644 --- a/services/elasticsearch.nix +++ b/services/elasticsearch.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.elasticsearch { diff --git a/services/haveged.nix b/services/haveged.nix index 01d3f3a..35a272c 100644 --- a/services/haveged.nix +++ b/services/haveged.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/services/hoogle.nix b/services/hoogle.nix index b38dcf3..cb8760f 100644 --- a/services/hoogle.nix +++ b/services/hoogle.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.developpement-haskell { diff --git a/services/hydra-build.nix b/services/hydra-build.nix index 43ccdce..066242a 100644 --- a/services/hydra-build.nix +++ b/services/hydra-build.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in # TODO: ménage mkIf flags.hydra-builder { diff --git a/services/hydra-core.nix b/services/hydra-core.nix index bdc38f2..b59e242 100644 --- a/services/hydra-core.nix +++ b/services/hydra-core.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; #### https://github.com/NixOS/hydra/issues/413 diff --git a/services/kibana.nix b/services/kibana.nix index 04a16ff..b002ef3 100644 --- a/services/kibana.nix +++ b/services/kibana.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.kibana { diff --git a/services/locate.nix b/services/locate.nix index 27a3ad9..adac879 100644 --- a/services/locate.nix +++ b/services/locate.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.locate { diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 74b5cbd..4063376 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in # TODO: changer adresse mail diff --git a/services/print.nix b/services/print.nix index df6c7fd..1362bac 100644 --- a/services/print.nix +++ b/services/print.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.print { diff --git a/services/pulseaudio.nix b/services/pulseaudio.nix index c69ac5a..e0c7e9c 100644 --- a/services/pulseaudio.nix +++ b/services/pulseaudio.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.pulseaudio { diff --git a/services/scanner.nix b/services/scanner.nix index 89ba84f..e78ec55 100644 --- a/services/scanner.nix +++ b/services/scanner.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.scanner { diff --git a/services/ssh.nix b/services/ssh.nix index 94b049f..8c13f95 100644 --- a/services/ssh.nix +++ b/services/ssh.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { diff --git a/services/virtualbox.nix b/services/virtualbox.nix index 6a91607..8d5e874 100644 --- a/services/virtualbox.nix +++ b/services/virtualbox.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.virtualbox { diff --git a/services/x11.nix b/services/x11.nix index b2acd10..acf108d 100644 --- a/services/x11.nix +++ b/services/x11.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in /** diff --git a/services/xmonad/xmonad.nix b/services/xmonad/xmonad.nix index 49f306e..2f1768c 100644 --- a/services/xmonad/xmonad.nix +++ b/services/xmonad/xmonad.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf flags.xmonad { diff --git a/services/yubikey.nix b/services/yubikey.nix index 916893f..2f786d7 100644 --- a/services/yubikey.nix +++ b/services/yubikey.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf mkMerge mkThenElse; annuaire = config.r6d.machines; currentMachine = annuaire."${config.networking.hostName}"; - flags = currentMachine.configuration-flags; + flags = currentMachine.configurationFlags; in mkIf true { From 1f480bbbff8757aa2f210aef3a49ff52ad264401 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 31 May 2017 14:45:39 +0200 Subject: [PATCH 045/120] add option to identify Workstations --- options.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/options.nix b/options.nix index ddc011f..cb19286 100644 --- a/options.nix +++ b/options.nix @@ -124,7 +124,9 @@ let profiles = { # Domaine isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; + isDubronetworkWorkstation = mkEnableOption "Pour distinguer les machines dubronetwork avec Workstation."; isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; + isPrunetworkWorkstation = mkEnableOption "Pour distinguer les machines prunetwork avec Workstation."; # Utilisation machine isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique."; isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur."; From acacc94903f943e1fc211d90f42eec8ed81dd2e6 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 31 May 2017 15:41:12 +0200 Subject: [PATCH 046/120] add development packages to workstation profile --- lib.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib.nix b/lib.nix index cd96259..ab38ed1 100644 --- a/lib.nix +++ b/lib.nix @@ -13,6 +13,11 @@ let }; isWorkstation = { docker = true; + developpement = true; + developpement-elm = true; + developpement-haskell = true; + developpement-java = true; + developpement-rust = true; }; #isServer = { #}; From aa22c6337d0af5498b0e63172ccc8aad007b843b Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 31 May 2017 15:43:42 +0200 Subject: [PATCH 047/120] migrated into profile --- config-generator.nix | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index c2ab058..3ccefc7 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -56,26 +56,6 @@ in }; }) - ## Profils liés à Dubronetwork - (mkIf (pfl.isDubronetwork && pfl.isWorkstation) { - r6d.config-generator = { - cartographie = true; - conception-assistee = true; - docker = true; - developpement = true; - developpement-elm = true; - developpement-haskell = true; - developpement-java = true; - developpement-rust = true; - edition-musique = true; - edition-photo = true; - edition-video = true; - scanner = true; - virtualbox = true; - xmonad = true; - }; - }) - ## Affectation des profils aux machines (mkIf comp.isLatitude { From cc851a79463d931a612a93255b87b47d18250070 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 31 May 2017 15:46:27 +0200 Subject: [PATCH 048/120] add assertion --- options.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/options.nix b/options.nix index cb19286..9cf4564 100644 --- a/options.nix +++ b/options.nix @@ -155,10 +155,15 @@ in prototype : (expression A ) && tests || !(expression A) -> réalise le test si A est satisfait, et continue sinon = pas de politique */ assertions = [ + { + assertion = (currentMachine.profiles.isWorkstation && (currentMachine.configurationFlags.graphical == true)) + || (!currentMachine.profiles.isWorkstation); + message = "A workstation requires a graphical environement."; + } { assertion = (currentMachine.profiles.isDesktopEnvironment && (currentMachine.configurationFlags.graphical == true)) || (!currentMachine.profiles.isDesktopEnvironment); - message = "A workstation requires a graphical environement."; + message = "A desktop station requires a graphical environement."; } { assertion = (currentMachine.profiles.isDesktopEnvironment && (config.services.xserver.enable == true)) From 78ece5641db67f8c03eabfd33ba56a4c5940eca4 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 31 May 2017 17:18:17 +0200 Subject: [PATCH 049/120] add server options --- options.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/options.nix b/options.nix index 9cf4564..226b769 100644 --- a/options.nix +++ b/options.nix @@ -124,8 +124,10 @@ let profiles = { # Domaine isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; + isDubronetworkServer = mkEnableOption "Pour distinguer les machines dubronetwork avec Server."; isDubronetworkWorkstation = mkEnableOption "Pour distinguer les machines dubronetwork avec Workstation."; isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; + isPrunetworkServer = mkEnableOption "Pour distinguer les machines prunetwork avec Server."; isPrunetworkWorkstation = mkEnableOption "Pour distinguer les machines prunetwork avec Workstation."; # Utilisation machine isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique."; From eca3d776107fbbfcc0c431483ad3f1f9371b6f00 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 3 Jun 2017 12:58:10 +0200 Subject: [PATCH 050/120] add option to build nixos documentation --- options.nix | 1 + services/default.nix | 1 + services/nixos-manual.nix | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 services/nixos-manual.nix diff --git a/options.nix b/options.nix index 226b769..216c10b 100644 --- a/options.nix +++ b/options.nix @@ -40,6 +40,7 @@ let multimediaSuite = mkEnableOption "Profil pour la suite multimédia."; munin = mkEnableOption "Profil pour activer la supervision par Munin"; murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)"; + nixos-manual = mkEnableOption "Profil pour activer la documentation nixos en local sur un TTY"; nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix."; nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store"; officeSuite = mkEnableOption "Profil pour la suite bureautique"; diff --git a/services/default.nix b/services/default.nix index 6de2f9e..3f5ec9c 100644 --- a/services/default.nix +++ b/services/default.nix @@ -26,6 +26,7 @@ in ./kibana.nix # service de visualisation de données stockées dans elasticsearch # TODO: réactiver locate #./locate.nix # service locate + ./nixos-manual.nix # documentation nixos sur TTY ./virtualbox.nix # activer virtualbox ./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad diff --git a/services/nixos-manual.nix b/services/nixos-manual.nix new file mode 100644 index 0000000..fe7227a --- /dev/null +++ b/services/nixos-manual.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configurationFlags; +in + +mkIf flags.nixos-manual { + + # Paquets + environment.systemPackages = with pkgs; [ + bc + mailutils + ]; + + # Services + + ## documentation sur ctrl + alt + F8 + services.nixosManual = { + enable = true; + showManual = true; + }; + + # Réseau + networking.firewall = { + allowedTCPPorts = [ + ]; + allowedUDPPorts = [ + ]; + }; +} From 60f466a887277f81352a25ed4da3ce7e68d2caf3 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 3 Jun 2017 13:02:37 +0200 Subject: [PATCH 051/120] add sqlite to dev profile --- applications/terminal/developpement.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/applications/terminal/developpement.nix b/applications/terminal/developpement.nix index e9026bf..4157502 100644 --- a/applications/terminal/developpement.nix +++ b/applications/terminal/developpement.nix @@ -11,6 +11,10 @@ mkIf flags.developpement { # Paquets environment.systemPackages = with pkgs; [ + # Base de données + pg_top # monitoring de PostgreSQL + sqlite # le moteur de base de données + # C / C++ gcc # pour les appels depuis les scripts From 92bf72c7bf7176dcc2d6ea7449f9145d71886029 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 3 Jun 2017 13:08:50 +0200 Subject: [PATCH 052/120] indentation --- applications/graphical/bureau.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/applications/graphical/bureau.nix b/applications/graphical/bureau.nix index 252fe10..6ae07d6 100644 --- a/applications/graphical/bureau.nix +++ b/applications/graphical/bureau.nix @@ -24,12 +24,14 @@ mkIf currentMachine.profiles.isDesktopEnvironment { gnome3.adwaita-icon-theme # thème d'icone - semble fonctionner avec spaceFM ## Manipulation de fichier - pcmanfm # gestionnaire de fichiers graphique - spaceFM # gestionnaire de fichiers graphique - #vifm # gestionnaire de fichiers basé sur VIM (console) + #kde5.dolphin # gestionnaire de fichiers graphique + #kde5.dolphin-plugins # gestionnaire de fichiers graphique + pcmanfm # gestionnaire de fichiers graphique + spaceFM # gestionnaire de fichiers graphique + #vifm # gestionnaire de fichiers basé sur VIM (console) ## Terminal - sakura # terminal + sakura # terminal ]; # Polices supplémentaires From 772cab2253017e1eab8aa56e5c1cdbc8ca3f362f Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 3 Jun 2017 13:10:00 +0200 Subject: [PATCH 053/120] nsp --- applications/graphical/adminsys.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/applications/graphical/adminsys.nix b/applications/graphical/adminsys.nix index a94b723..bfc6681 100644 --- a/applications/graphical/adminsys.nix +++ b/applications/graphical/adminsys.nix @@ -14,5 +14,8 @@ mkIf flags.graphical { # Gestion de FS gparted # Gestion graphique de partitions unetbootin # création de clefs USB bootables + + # visualisation de log + #logstalgia ]; } From 3a5ae68f3ac2bf1c07a2904a03b7cbd59cc697db Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Sat, 3 Jun 2017 17:44:49 +0200 Subject: [PATCH 054/120] migrated machines cleanup (latitude, monstre, pedro, phenom) --- config-generator.nix | 59 -------------------------------------------- 1 file changed, 59 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index 3ccefc7..6b41dc9 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -15,18 +15,13 @@ in # TODO camel case partout # TODO everything in english # TODO sortir ce qui est privé -# TODO portage du système d'annuaire de machines de capgemini ###### interface options = { #* Utilisé pour avoir des raccourcis de machine r6d.computers = { - isLatitude = mkEnableOption "Identification du nom de machine."; - isMonstre = mkEnableOption "Identification du nom de machine."; isNeoNomade = mkEnableOption "Identification du nom de machine."; isNomade = mkEnableOption "Identification du nom de machine."; - isPedro = mkEnableOption "Identification du nom de machine."; - isPhenom = mkEnableOption "Identification du nom de machine."; isRollo = mkEnableOption "Identification du nom de machine."; }; }; @@ -58,28 +53,6 @@ in ## Affectation des profils aux machines - (mkIf comp.isLatitude { - networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname. - r6d.profiles = { - isDubronetwork = true; - isWorkstation = true; - }; - - r6d.config-generator = { - jetbrains-licensed = true; - laptop = true; - nix-serve-client = true; - nix-serve-server = true; - tincAddress = "192.168.12.2/24"; - tincExtraConfig = '' - ConnectTo = monstre_dubronetwork_fr - ConnectTo = rollo_dubronetwork_fr - ConnectTo = hydra_prunetwork_fr - ConnectTo = ocean_prunetwork_fr - ''; - }; - }) - (mkIf comp.isNeoNomade{ networking.hostName = "neo-nomade.dubronetwork.fr"; # Define your hostname. r6d.profiles = { @@ -110,38 +83,6 @@ in laptop = true; }; }) - (mkIf comp.isPedro { - r6d.profiles = { - isDubronetwork = true; - isServer = true; - }; - - r6d.config-generator = { - fail2ban = true; - }; - }) - (mkIf comp.isPhenom { - networking.hostName = "phenom.dubronetwork.fr"; # Define your hostname. - r6d.profiles = { - isDubronetwork = true; - isWorkstation = true; - }; - - r6d.config-generator = { - jetbrains-licensed = true; - #hydra-core = true; - nix-serve-client = true; - nix-serve-server = true; - edition-photo = true; - tincAddress = "192.168.12.1/24"; - tincExtraConfig = '' - ConnectTo = monstre_dubronetwork_fr - ConnectTo = rollo_dubronetwork_fr - ConnectTo = hydra_prunetwork_fr - ConnectTo = ocean_prunetwork_fr - ''; - }; - }) (mkIf comp.isRollo { networking.hostName = "rollo.dubronetwork.fr"; # Define your hostname. r6d.profiles = { From 4dbcc8ddc0dac9d927bbf5eb7712b7443d730195 Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Sat, 3 Jun 2017 18:06:03 +0200 Subject: [PATCH 055/120] git alias to show commits not pushed to remotes --- configuration/gitconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configuration/gitconfig b/configuration/gitconfig index ca21c39..e3d4d5e 100644 --- a/configuration/gitconfig +++ b/configuration/gitconfig @@ -20,6 +20,7 @@ # Logs lol = log --graph --decorate --pretty=oneline --abbrev-commit lola = log --graph --decorate --pretty=oneline --abbrev-commit --all + not-pushed = log --branches --not --remotes [push] default = simple [core] From ad0799f08dc432b38d35520b54e9ac640b857961 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 22 Jun 2017 19:46:55 +0200 Subject: [PATCH 056/120] indentation --- .../terminal/developpement-haskell.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index f65e4c8..e80de53 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -18,17 +18,17 @@ mkIf flags.developpement-haskell { stack # pour les paquets en LTS de stackage ] ++ (with pkgs.haskellPackages; [ # Haskell lib - autoproc # ? procmail - darcs # Gestionnaire de version éponyme - ghc-mod - hindent # indentation code - hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques - pandoc-filter-graphviz # filtre pour utiliser graphviz à partir de pandoc - #postgrest # mapper HTTP <-> PostgreSQL - stylish-haskell # qualité de code - turtle # genre shell-scripting + autoproc # ? procmail + darcs # gestionnaire de version éponyme + ghc-mod # outil d'analyse de code haskell utilisé par IDE + hindent # indentation code + hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques + postgrest # mapper HTTP <-> PostgreSQL + stylish-haskell # qualité de code + turtle # genre shell-scripting # Application perso hahp + pandoc-filter-graphviz # filtre pour utiliser graphviz à partir de pandoc ]); } From 195f5e35a1509ced94e51ad924eadad13e38d13c Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Fri, 23 Jun 2017 23:16:02 +0200 Subject: [PATCH 057/120] =?UTF-8?q?+plantuml=20dans=20les=20paquets=20de?= =?UTF-8?q?=20d=C3=A9veloppement&?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/terminal/developpement.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/applications/terminal/developpement.nix b/applications/terminal/developpement.nix index 4157502..bf932c6 100644 --- a/applications/terminal/developpement.nix +++ b/applications/terminal/developpement.nix @@ -24,6 +24,9 @@ mkIf flags.developpement { mercurial subversion + # spécification + plantuml # diagrammes UML et plus si affinité + # Mono #mono46 # interpréteur .NET From 28fc448e0c9995225cbd9bb775870876d9e2cfde Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 1 Jul 2017 12:45:28 +0000 Subject: [PATCH 058/120] =?UTF-8?q?Mettre=20=C3=A0=20jour=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ff91662..477a5c2 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,10 @@ Actuellement, les scripts contiennent un peu de configuration spécifique pour l * faire les mises à jour de l'OS * commiter & pusher l'état des dépôts (au cas où). Pour les différents dépôts `git a`, `git commit` puis `make tag push` * mettre à jour les dépôts avec les dernières versions, `make submodules-update` +* vérifier que `configuration.nix` contient `services.xserver.enable = true;` pour les machines avec interface graphique +* vérifier que `configuration.nix` contient le nom de la machine `networking.hostName = "";` * tester la configuration : `nixos-rebuild build` * corriger et ajouter les éléments manquant (notamment dans `private/annuaire.nix` ) -* vérifier que `configuration.nix` contient `services.xserver.enable = true;` pour les machines avec interface graphique * lorsque tout semble bon, vérifier : * qu'il y a toujours des utilisateurs dans la configuration * que le moyen d'accéder à la machine n'a pas été supprimé (surtout les machines distantes) From f8a687be52a9e56368b1474190254c22f65b5ff7 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 1 Jul 2017 14:50:46 +0200 Subject: [PATCH 059/120] =?UTF-8?q?migration=20de=20neo-nomade=20=C3=A0=20?= =?UTF-8?q?l'annuaire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config-generator.nix | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index 6b41dc9..7c01b29 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -20,7 +20,6 @@ in options = { #* Utilisé pour avoir des raccourcis de machine r6d.computers = { - isNeoNomade = mkEnableOption "Identification du nom de machine."; isNomade = mkEnableOption "Identification du nom de machine."; isRollo = mkEnableOption "Identification du nom de machine."; }; @@ -53,26 +52,6 @@ in ## Affectation des profils aux machines - (mkIf comp.isNeoNomade{ - networking.hostName = "neo-nomade.dubronetwork.fr"; # Define your hostname. - r6d.profiles = { - isDubronetwork = true; - isDesktopEnvironment = true; - }; - - r6d.config-generator = { - laptop = true; - graphical = true; - scanner = true; - tincAddress = "192.168.12.7/24"; - tincExtraConfig = '' - ConnectTo = monstre_dubronetwork_fr - ConnectTo = rollo_dubronetwork_fr - ConnectTo = hydra_prunetwork_fr - ConnectTo = ocean_prunetwork_fr - ''; - }; - }) # Dubro Vivo - St Malo #tincAddress = "192.168.12.8/24"; (mkIf comp.isNomade{ From fcc1cba9fb08fe786138d50026c055b80c75e8eb Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Wed, 5 Jul 2017 22:02:20 +0200 Subject: [PATCH 060/120] =?UTF-8?q?d=C3=A9placement=20de=20d=C3=A9rivation?= =?UTF-8?q?s=20dans=20les=20fichiers=20ad=C3=A9quats?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/terminal/adminsys.nix | 5 ++++- applications/terminal/client-internet.nix | 3 +++ applications/terminal/default-applications.nix | 15 ++++----------- applications/terminal/developpement-haskell.nix | 2 +- applications/terminal/developpement.nix | 16 ++++++++-------- 5 files changed, 20 insertions(+), 21 deletions(-) diff --git a/applications/terminal/adminsys.nix b/applications/terminal/adminsys.nix index 34068b1..a68616a 100644 --- a/applications/terminal/adminsys.nix +++ b/applications/terminal/adminsys.nix @@ -12,7 +12,9 @@ mkIf true { # Paquets environment.systemPackages = with pkgs; [ # Adminsys + bind # utilisé pour les utilitaires comme dig cowsay # pour ansible & 4lulz + dhcp # client dhcp iotop lm_sensors lshw @@ -27,6 +29,7 @@ mkIf true { # Backup duplicity # création de sauvegarde chiffrées (GPG) + par2cmdline # outil de récupération de fichiers corrompus - .par2 # Compression lz4 @@ -47,7 +50,7 @@ mkIf true { ## Exploitation FS inotify-tools # être notifié lorsque le contenu d'un répertoire change - detox # The detox utility renames files to make them easier to work with. + detox # The detox utility renames files to make them easier to work with. duff # outil de recherche de fichiers en doublons rdfind # recherche de fichiers doublons pour remplacement par hard/soft link ]; diff --git a/applications/terminal/client-internet.nix b/applications/terminal/client-internet.nix index cd85ecf..188a23d 100644 --- a/applications/terminal/client-internet.nix +++ b/applications/terminal/client-internet.nix @@ -23,5 +23,8 @@ environment.systemPackages = with pkgs; [ ## Sauvegarde nuagique (cloud storage) rclone + + ## P2P + rtorrent # outil de téléchargement de torrent & magnet ]; } diff --git a/applications/terminal/default-applications.nix b/applications/terminal/default-applications.nix index e0566f0..ee97dfe 100644 --- a/applications/terminal/default-applications.nix +++ b/applications/terminal/default-applications.nix @@ -11,27 +11,20 @@ mkIf true { # Paquets environment.systemPackages = with pkgs; [ - bind # utilisé pour les utilitaires comme dig - byobu # permet de se déconnecter d'un terminal sans l'aréter - dhcp # client dhcp - git gitAndTools.gitSVN gitAndTools.tig gti # outil de gestion de version + byobu # permet de se déconnecter d'un terminal sans l'arréter + git gitAndTools.tig gti # outil de gestion de version gnumake # pour décrire les recettes de compilation gnupg # GPG - gpm # prise en charge de la souris en console htop # monitoring - lsb-release # pour les scripts qui utilisent cet outil + lsb-release # pour les scripts qui utilisent cet outil (dont byobu) #libressl # librairie pour faire du TLS et les algorithmes de crypto par OpenBSD ncdu # outil pour voir l'espace utilisé - par2cmdline # outil de récupération de fichiers corrompus - .par2 p7zip # compression de fichier parted # partitionnement de disque pciutils pinentry # pour taper les mots de passe gpg psmisc # fournis les utilitaires comme killall, fuser, pstree - python # python -- python -m SimpleHTTPServer 8000 - #python34Packages.glances # monitoring - pwgen # générateur de mot de passe - rtorrent # TODO outil de téléchargement de torrent & magnet + #python # python -- python -m SimpleHTTPServer 8000 shared_mime_info # MIME info tmux # nécessaire pour byobu tree # affiche une arborescence de fichiers et dossiers diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index e80de53..a2ae9ed 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -20,7 +20,7 @@ mkIf flags.developpement-haskell { # Haskell lib autoproc # ? procmail darcs # gestionnaire de version éponyme - ghc-mod # outil d'analyse de code haskell utilisé par IDE + #ghc-mod # outil d'analyse de code haskell utilisé par IDE hindent # indentation code hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques postgrest # mapper HTTP <-> PostgreSQL diff --git a/applications/terminal/developpement.nix b/applications/terminal/developpement.nix index bf932c6..ad04e6c 100644 --- a/applications/terminal/developpement.nix +++ b/applications/terminal/developpement.nix @@ -12,25 +12,25 @@ mkIf flags.developpement { # Paquets environment.systemPackages = with pkgs; [ # Base de données - pg_top # monitoring de PostgreSQL - sqlite # le moteur de base de données + pg_top # monitoring de PostgreSQL + sqlite # le moteur de base de données # C / C++ - gcc # pour les appels depuis les scripts + gcc # pour les appels depuis les scripts # Gestion des sources - cloc # outil pour compter les lignes de code source - git # déjà présent dans "base" + cloc # outil pour compter les lignes de code source + git gitAndTools.gitSVN # git et git-svn mercurial subversion # spécification - plantuml # diagrammes UML et plus si affinité + plantuml # diagrammes UML et plus si affinité # Mono - #mono46 # interpréteur .NET + #mono46 # interpréteur .NET ## Visualisation & outils de diff - #vbindiff # diff de fichier hexadecimaux avec vim + #vbindiff # diff de fichier hexadecimaux avec vim ]; } From 196cc008c86ff35d214cf85db65794c2a9ef7f22 Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Wed, 5 Jul 2017 22:02:33 +0200 Subject: [PATCH 061/120] +service gpm pour la souris en console --- services/default.nix | 1 + services/gpm.nix | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 services/gpm.nix diff --git a/services/default.nix b/services/default.nix index 3f5ec9c..74b9d0a 100644 --- a/services/default.nix +++ b/services/default.nix @@ -10,6 +10,7 @@ in { imports = [ # installées systématiquement + ./gpm.nix ./haveged.nix ./monitoring-munin.nix ./ssh.nix diff --git a/services/gpm.nix b/services/gpm.nix new file mode 100644 index 0000000..6bbcb44 --- /dev/null +++ b/services/gpm.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configurationFlags; +in + +mkIf true { + + # prise en charge de la souris en console + services.gpm.enable = true; +} From dcae05d4c0f81ec44f0cc634fb43331359ece79e Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Wed, 5 Jul 2017 22:11:49 +0200 Subject: [PATCH 062/120] =?UTF-8?q?m=C3=A9nage=20(suite)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/graphical/client-internet.nix | 3 +-- applications/graphical/multimedia.nix | 5 ----- applications/terminal/client-internet.nix | 8 ++++---- configuration/environment.nix | 4 ---- services/dbus.nix | 13 +++++++++++++ services/default.nix | 1 + services/pulseaudio.nix | 6 ++++++ 7 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 services/dbus.nix diff --git a/applications/graphical/client-internet.nix b/applications/graphical/client-internet.nix index 5f9edf1..d5c1f98 100644 --- a/applications/graphical/client-internet.nix +++ b/applications/graphical/client-internet.nix @@ -6,7 +6,7 @@ let currentMachine = annuaire."${config.networking.hostName}"; flags = currentMachine.configurationFlags; in -# TODO: ménage + mkIf (flags.internetSuite && flags.graphical) { # Paquets @@ -20,7 +20,6 @@ environment.systemPackages = with pkgs; [ ## Mail & Discussion (texte, audio) clawsMail hexchat - quassel quasselClient mumble pidgin diff --git a/applications/graphical/multimedia.nix b/applications/graphical/multimedia.nix index b76387d..1ea891a 100644 --- a/applications/graphical/multimedia.nix +++ b/applications/graphical/multimedia.nix @@ -7,15 +7,10 @@ let flags = currentMachine.configurationFlags; in -# TODO ranger le spécifique pulseaudio mkIf (flags.multimediaSuite && flags.graphical) { # Paquets environment.systemPackages = with pkgs; [ - ## Audio - paprefs # préferences pulseaudio - pavucontrol # mixer pulseaudio - ## Video smplayer # lecteur vidéo vlc # lecteur vidéo diff --git a/applications/terminal/client-internet.nix b/applications/terminal/client-internet.nix index 188a23d..6c56c6a 100644 --- a/applications/terminal/client-internet.nix +++ b/applications/terminal/client-internet.nix @@ -6,7 +6,7 @@ let currentMachine = annuaire."${config.networking.hostName}"; flags = currentMachine.configurationFlags; in -# TODO: ménage + mkIf flags.internetSuite { # Paquets @@ -15,14 +15,14 @@ environment.systemPackages = with pkgs; [ ## Réseaux sociaux #python27Packages.turses # client twitter en ncurse - python27Packages.rainbowstream # client twitter en console - rtv # client reddit en console + #python27Packages.rainbowstream # client twitter en console + #rtv # client reddit en console ## Mail & Discussion (texte, audio) mutt ## Sauvegarde nuagique (cloud storage) - rclone + #rclone ## P2P rtorrent # outil de téléchargement de torrent & magnet diff --git a/configuration/environment.nix b/configuration/environment.nix index f29117e..6d657e3 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -7,7 +7,6 @@ let flags = currentMachine.configurationFlags; in -# TODO: ménage { # Nombre de process d'installation en parrallèle effectués par Nix nix.buildCores = 0; @@ -21,9 +20,6 @@ in # On autorise les paquets non-libres nixpkgs.config.allowUnfree = true; - # Lancement de dbus pour les utilisateurs - services.dbus.socketActivated = true; - # NixOS Hardening #security.grsecurity.enable = true; diff --git a/services/dbus.nix b/services/dbus.nix new file mode 100644 index 0000000..78faab8 --- /dev/null +++ b/services/dbus.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configurationFlags; +in + +mkIf true { + # Lancement de dbus pour les utilisateurs + services.dbus.socketActivated = true; +} diff --git a/services/default.nix b/services/default.nix index 74b9d0a..8f86e92 100644 --- a/services/default.nix +++ b/services/default.nix @@ -10,6 +10,7 @@ in { imports = [ # installées systématiquement + ./dbus.nix ./gpm.nix ./haveged.nix ./monitoring-munin.nix diff --git a/services/pulseaudio.nix b/services/pulseaudio.nix index e0c7e9c..8f47776 100644 --- a/services/pulseaudio.nix +++ b/services/pulseaudio.nix @@ -9,6 +9,12 @@ in mkIf flags.pulseaudio { + # Paquets + environment.systemPackages = with pkgs; [ + paprefs # préferences pulseaudio + pavucontrol # mixer pulseaudio + ]; + # Pulse Audio hardware.pulseaudio = { enable = true; From 5803fdbbff7d7abd804d826835077f6ffffead32 Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Wed, 5 Jul 2017 22:50:26 +0200 Subject: [PATCH 063/120] =?UTF-8?q?configuration=20awesome=20par=20d=C3=A9?= =?UTF-8?q?faut=20link=C3=A9e=20dans=20/etc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configuration/awesome.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configuration/awesome.nix b/configuration/awesome.nix index c6d0a3f..ae5b73d 100644 --- a/configuration/awesome.nix +++ b/configuration/awesome.nix @@ -19,5 +19,7 @@ mkIf flags.awesome { # beautiful.init(config.dir .. "/share/awesome//themes/zenburn/theme.lua") # AWESOME_CONFIG_DIR = "${pkgs.awesome}"; - }; + }; + + environment.etc."xdg/awesome/rc.lua".text = builtins.readFile ./../public/config-awesome-4-rc.lua; } From dcdaf91f8bd5822a3fd6a38643e18bdad2362473 Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Wed, 5 Jul 2017 22:51:29 +0200 Subject: [PATCH 064/120] =?UTF-8?q?voir=20les=20diff=C3=A9rences=20entre?= =?UTF-8?q?=20la=20configuration=20actuelle=20et=20/etc/nixos/configuratio?= =?UTF-8?q?n.nix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index a56562b..6f79710 100644 --- a/Makefile +++ b/Makefile @@ -29,6 +29,9 @@ rebuild-build: rebuild-switch: $(TIME) time nixos-rebuild switch --fallback --show-trace +show-diff-with-current: + -diff /run/current-system/configuration.nix /etc/nixos/configuration.nix + show-roots: nix-store --gc --print-roots From 630217ce02c74917092a72f468e5b1520323ffdc Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Fri, 14 Jul 2017 17:03:47 +0200 Subject: [PATCH 065/120] =?UTF-8?q?ghc-mod=20fonctionne=20=C3=A0=20nouveau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/terminal/developpement-haskell.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index a2ae9ed..e80de53 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -20,7 +20,7 @@ mkIf flags.developpement-haskell { # Haskell lib autoproc # ? procmail darcs # gestionnaire de version éponyme - #ghc-mod # outil d'analyse de code haskell utilisé par IDE + ghc-mod # outil d'analyse de code haskell utilisé par IDE hindent # indentation code hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques postgrest # mapper HTTP <-> PostgreSQL From 19bd8fbfbc8a394a421ce23e6a43d10546cdbba9 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 15 Jul 2017 12:44:26 +0200 Subject: [PATCH 066/120] migration config rollo sur annuaire --- config-generator.nix | 37 +------------------------------------ 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/config-generator.nix b/config-generator.nix index 7c01b29..92ddc96 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -21,7 +21,6 @@ in #* Utilisé pour avoir des raccourcis de machine r6d.computers = { isNomade = mkEnableOption "Identification du nom de machine."; - isRollo = mkEnableOption "Identification du nom de machine."; }; }; @@ -31,18 +30,6 @@ in config = mkMerge [ ## Définition des profils génériques - (mkIf (pfl.isServer && !comp.isMonstre) { - r6d.config-generator = { - #database_postgres = true; - dns_autorite = true; - #dns_resolveur = true; - # inutile d'exposer la conf complète du serveur par le store tant qu'il n'y a pas de protection complémentaire - utilisation SSH ? - #nix-serve-server = true; - smokeping = true; - - #rabbitmq = true; - }; - }) # /!\ PAS un serveur (mkIf (!pfl.isServer || comp.isMonstre) { r6d.config-generator = { @@ -54,6 +41,7 @@ in # Dubro Vivo - St Malo #tincAddress = "192.168.12.8/24"; + (mkIf comp.isNomade{ networking.hostName = "nomade.dubronetwork.fr"; # Define your hostname. r6d.profiles.isDubronetwork = true; @@ -62,28 +50,5 @@ in laptop = true; }; }) - (mkIf comp.isRollo { - networking.hostName = "rollo.dubronetwork.fr"; # Define your hostname. - r6d.profiles = { - isDubronetwork = true; - isServer = true; - }; - - r6d.config-generator = { - dovecot = true; - fail2ban = true; - mailboxes = true; - murmur = true; - nix-serve-client = true; - nix-serve-server = true; - tincAddress = "192.168.12.5/24"; - tincExtraConfig = '' - ConnectTo = hydra_prunetwork_fr - ConnectTo = ocean_prunetwork_fr - ''; - virtualbox = true; - znc = true; - }; - }) ]; } From cc2f1c33afa5ef6a6b4e4ccd1064768c7a84159a Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Sat, 12 Aug 2017 09:45:22 +0000 Subject: [PATCH 067/120] lien howoldis pour dater les releases NixOS --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 477a5c2..2f6b058 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # nixos-template-base Versions de NixOS supportées : -* NixOS 16.09 * NixOS unstable Ce dépôt stocke une configuration générique des machines. @@ -9,6 +8,9 @@ Une recette dite "config-generator" adapte la configuration selon le nom de la m Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs. +# Liens +* http://howoldis.herokuapp.com/ pour savoir de quand datent les différentes releases de NixOS + # Notes de mise-à-jour ## pour l'utilisation de l'annuaire (2017-04-28) From b8106deb181a42409a9e230f54056e87f12cb7f2 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 13 Aug 2017 11:13:02 +0000 Subject: [PATCH 068/120] lien --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2f6b058..c5af9e4 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,18 @@ Versions de NixOS supportées : * NixOS unstable Ce dépôt stocke une configuration générique des machines. -Une recette dite "config-generator" adapte la configuration selon le nom de la machine (FQDN). -Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs. +~~Une recette dite "config-generator" adapte la configuration selon le nom de la machine (FQDN).~~ + +~~Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs.~~ # Liens * http://howoldis.herokuapp.com/ pour savoir de quand datent les différentes releases de NixOS +* https://repology.org/repository/nix_unstable/problems pour lister les paquets avec problèmes # Notes de mise-à-jour -## pour l'utilisation de l'annuaire (2017-04-28) +## pour l'utilisation de l'annuaire (à partir de 2017-04-28) * faire les mises à jour de l'OS * commiter & pusher l'état des dépôts (au cas où). Pour les différents dépôts `git a`, `git commit` puis `make tag push` From dfe2bde371180f63a9392d69d89c181d284d88ac Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 13 Aug 2017 14:37:29 +0200 Subject: [PATCH 069/120] commentaire --- configuration/network-ipv6.nix | 1 + configuration/network.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/configuration/network-ipv6.nix b/configuration/network-ipv6.nix index 36c2425..ab2d78a 100644 --- a/configuration/network-ipv6.nix +++ b/configuration/network-ipv6.nix @@ -23,6 +23,7 @@ mkIf true { "net.ipv6.conf.default.temp_valid_lft" = 3600; # 1 heure "net.ipv6.conf.default.use_tempaddr" = 2; # activé + # Activation du routage "net.ipv6.conf.all.forwarding" = true; "net.ipv6.conf.default.forwarding" = true; }; diff --git a/configuration/network.nix b/configuration/network.nix index ec84c69..b6b181a 100644 --- a/configuration/network.nix +++ b/configuration/network.nix @@ -16,6 +16,7 @@ mkIf true { 127.0.0.1 ${config.networking.hostName} ''; + # Activation du routage boot.kernel.sysctl = { "net.ipv4.conf.all.forwarding" = true; "net.ipv4.conf.default.forwarding" = true; From b1a19b811d8700138ea071e81fd4540df09879cc Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 13 Aug 2017 15:59:38 +0200 Subject: [PATCH 070/120] =?UTF-8?q?am=C3=A9lioration=20purge=20des=20logs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 6f79710..d59e4fa 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,7 @@ clean-total: $(TIME) nix-collect-garbage -d clean-log: + journalctl --flush --rotate journalctl --vacuum-size=1G full-auto: submodules-update upgrade clean optimise From dc24c48cfd60dea3d95fee1a569c516f2938258c Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 3 Sep 2017 10:09:16 +0200 Subject: [PATCH 071/120] =?UTF-8?q?d=C3=A9sactivation=20ansible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/terminal/adminsys.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/terminal/adminsys.nix b/applications/terminal/adminsys.nix index a68616a..ebfea87 100644 --- a/applications/terminal/adminsys.nix +++ b/applications/terminal/adminsys.nix @@ -22,7 +22,7 @@ mkIf true { ntp powerline-fonts powertop - python27Packages.ansible2 + #python27Packages.ansible2 python27Packages.glances sysstat # pour la commande "iostat -x -1" de monitoring d'activité disque usbutils From 0b6968338f8a27c69440b5d03e96024567914021 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 3 Sep 2017 09:33:51 +0000 Subject: [PATCH 072/120] =?UTF-8?q?Mettre=20=C3=A0=20jour=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c5af9e4..77e44cf 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,7 @@ mount /dev/sda1 /mnt/ mkdir /mnt/etc/ mkdir /etc/nixos mkdir /mnt/nix +mkdir /nix mount --bind /mnt/nix/ /nix ~~~ From 1458c750f3369b0de082f835b6bdebfe9ab77cae Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 3 Sep 2017 09:37:18 +0000 Subject: [PATCH 073/120] config des TMP pour l'install de machine --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 77e44cf..0946993 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,8 @@ mkdir /etc/nixos mkdir /mnt/nix mkdir /nix mount --bind /mnt/nix/ /nix +mkdir /mnt/tmp +mount --bind /mnt/tmp /tmp ~~~ From fc18c2a6c529531959809cb27fbd0cbcb4b4191d Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 3 Sep 2017 09:38:39 +0000 Subject: [PATCH 074/120] =?UTF-8?q?Mettre=20=C3=A0=20jour=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0946993..7e12252 100644 --- a/README.md +++ b/README.md @@ -162,7 +162,7 @@ update-ca-certificates * installer nix ~~~ -chown -R nix /nix +chown -R nix /nix /tmp su - nix bash <(curl https://nixos.org/nix/install) exit From 7329e54d045dd86afb37592c007b4c625e2a633e Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 3 Sep 2017 09:39:57 +0000 Subject: [PATCH 075/120] utilisation de httpS pour le channel https://nixos.org/channels/nixos-unstable --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e12252..6fb4476 100644 --- a/README.md +++ b/README.md @@ -173,7 +173,7 @@ exit ~~~ . ~nix/.nix-profile/etc/profile.d/nix.sh nix-channel --remove nixpkgs -nix-channel --add http://nixos.org/channels/nixos-unstable nixos +nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update ~~~ From 73b9eab55180631b22053404a6403153d554539a Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Mon, 4 Sep 2017 17:48:11 +0000 Subject: [PATCH 076/120] =?UTF-8?q?Mettre=20=C3=A0=20jour=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 6fb4476..a480fd7 100644 --- a/README.md +++ b/README.md @@ -112,13 +112,13 @@ Pour résoudre les soucis d'upgrade, il est conseillé : * se connecter à la machine * passer en root -~~~ +~~~bash sudo su - ~~~ * formater les partitions -~~~ +~~~bash mkfs.ext4 -L nixos /dev/sda1 swapoff -a mkswap /dev/sda2 @@ -127,7 +127,7 @@ swapon -a * monter les partitions dans /mnt -~~~ +~~~bash mount /dev/sda1 /mnt/ mkdir /mnt/etc/ mkdir /etc/nixos @@ -141,13 +141,13 @@ mount --bind /mnt/tmp /tmp * installer les paquets nécessaires -~~~ +~~~bash apt-get install bzip2 git byobu htop glances ~~~ * création d'utilisateur (n'importe quil mot de passe) -~~~ +~~~bash adduser nix groupadd -r nixbld for n in $(seq 1 10); do useradd -c "Nix build user $n" -d /var/empty -g nixbld -G nixbld -M -N -r -s "$(which nologin)" nixbld$n; done @@ -155,13 +155,13 @@ for n in $(seq 1 10); do useradd -c "Nix build user $n" -d /var/empty -g nixbld * mise-à-jour des certificats -~~~ +~~~bash update-ca-certificates ~~~ * installer nix -~~~ +~~~bash chown -R nix /nix /tmp su - nix bash <(curl https://nixos.org/nix/install) @@ -170,7 +170,7 @@ exit * créer un profil nix pour root & un channel -~~~ +~~~bash . ~nix/.nix-profile/etc/profile.d/nix.sh nix-channel --remove nixpkgs nix-channel --add https://nixos.org/channels/nixos-unstable nixos @@ -179,13 +179,13 @@ nix-channel --update * installer un editeur de texte -~~~ +~~~bash nix-env -i vim_configurable ~~~ * installation de nixos-install -~~~ +~~~bash cat < /root/configuration.nix { fileSystems."/" = {}; boot.loader.grub.enable = false; @@ -204,7 +204,7 @@ nix-env -i -A config.system.build.nixos-install \ si la machine existe déjà, cloner le dépôt dans /mnt/etc/nixos pour cela, créer clef ssh et l'ajouter sur la forge -~~~ +~~~bash ssh-keygen -t ed25519 cp ~/.ssh/id_ed25519* /mnt/etc/nixos/ @@ -215,13 +215,13 @@ git submodule update * monter /etc/nixos vers /mnt/etc/nixos pour que la config clonée fonctionne -~~~ +~~~bash mount --bind /mnt/etc/nixos/ /etc/nixos/ ~~~ * mettre à jour la configuration matérielle -~~~ +~~~bash export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos nixos-generate-config --root /mnt ~~~ @@ -232,7 +232,7 @@ notamment le périphérique utilisé par grub * installer le système sur le disque -~~~ +~~~bash unset NIXOS_CONFIG nixos-install ~~~ From eabecd5b6990ac525e813fc6d45cbbfe32011142 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Mon, 4 Sep 2017 17:50:31 +0000 Subject: [PATCH 077/120] =?UTF-8?q?Mettre=20=C3=A0=20jour=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a480fd7..d3310e7 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,7 @@ swapon -a ~~~bash mount /dev/sda1 /mnt/ mkdir /mnt/etc/ +mkdir /mnt/etc/nixos mkdir /etc/nixos mkdir /mnt/nix mkdir /nix From 99b3b11bd2fee8ed445b437aa5fe0333c38a9ef3 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Tue, 5 Sep 2017 20:23:59 +0200 Subject: [PATCH 078/120] MaJ clef ssh hydra --- services/hydra-core.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/hydra-core.nix b/services/hydra-core.nix index b59e242..0688dfd 100644 --- a/services/hydra-core.nix +++ b/services/hydra-core.nix @@ -76,7 +76,7 @@ mkIf flags.hydra-core { ### Machines connues programs.ssh.knownHosts = { - "hydra.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHqja/yYsQeS5amZKPUG+EKSIkjEN6fYW54Fzvj1pFaP"; + "hydra.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDYrZu31+/ybhel7LNPNgsALEoMHwTc1OiTcmJnXZ3He"; "monstre.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBTTrLhq1Cwm0rpnwEIxSLqVrJWZnt+/9dt+SKd8NiIc"; "pedro.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7fjo2ysLqlfSo6BKnc6I6m1ayoPrbwEEyTKZmUzsOD"; "ocean.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINCaRuTl8iCTUE4XInOpkSlwQj5Re4w4Iq+gNIlJe8pA"; From 88fa40fde3261c05d857326664487479c7f938cd Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Sat, 9 Sep 2017 10:39:28 +0200 Subject: [PATCH 079/120] haskell: ajout de servant --- applications/terminal/developpement-haskell.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index e80de53..b5668ed 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -24,6 +24,7 @@ mkIf flags.developpement-haskell { hindent # indentation code hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques postgrest # mapper HTTP <-> PostgreSQL + servant # génération d'API REST stylish-haskell # qualité de code turtle # genre shell-scripting From 38cf4631dd5b8fcf0fe8742b999b53d93d9df065 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 17 Sep 2017 12:24:23 +0200 Subject: [PATCH 080/120] =?UTF-8?q?d=C3=A9sactivation=20postgrest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/terminal/developpement-haskell.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/terminal/developpement-haskell.nix b/applications/terminal/developpement-haskell.nix index b5668ed..62fb4ce 100644 --- a/applications/terminal/developpement-haskell.nix +++ b/applications/terminal/developpement-haskell.nix @@ -23,7 +23,7 @@ mkIf flags.developpement-haskell { ghc-mod # outil d'analyse de code haskell utilisé par IDE hindent # indentation code hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques - postgrest # mapper HTTP <-> PostgreSQL + #postgrest # mapper HTTP <-> PostgreSQL servant # génération d'API REST stylish-haskell # qualité de code turtle # genre shell-scripting From 10937423fcff98c55662dbed2dc42f2a81b9df9c Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 5 Nov 2017 18:54:59 +0100 Subject: [PATCH 081/120] =?UTF-8?q?d=C3=A9sactivation=20textadept=20(erreu?= =?UTF-8?q?r=20compil)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/graphical/bureautique.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/graphical/bureautique.nix b/applications/graphical/bureautique.nix index 160d6c2..a1149a4 100644 --- a/applications/graphical/bureautique.nix +++ b/applications/graphical/bureautique.nix @@ -24,7 +24,7 @@ mkIf (flags.officeSuite && flags.graphical) { ## Editeur de texte #lyx # surcouche WISIWIM à LaTeX #focuswriter # outil pour l'écriture - textadept # un éditeur de texte facile pour copier-coller graphique + #textadept # un éditeur de texte facile pour copier-coller graphique #zim # outil de prise de notes, wiki de bureau ## Visionneuse From 29b388ee9507e5e5a5ce48b8ae40f137954e3975 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 5 Nov 2017 18:55:32 +0100 Subject: [PATCH 082/120] ajout commande pv --- applications/terminal/adminsys.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/applications/terminal/adminsys.nix b/applications/terminal/adminsys.nix index ebfea87..c0cb73c 100644 --- a/applications/terminal/adminsys.nix +++ b/applications/terminal/adminsys.nix @@ -24,6 +24,7 @@ mkIf true { powertop #python27Packages.ansible2 python27Packages.glances + pv # afficher le débit d'un flux dd if=/dev/zero | pv | dd of=/dev/null sysstat # pour la commande "iostat -x -1" de monitoring d'activité disque usbutils From b26bc099c8802fa6c7176c69110d62feb503aa72 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 5 Nov 2017 19:09:52 +0100 Subject: [PATCH 083/120] munin : fix script path --- services/monitoring-munin.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 4063376..345d2c6 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -41,7 +41,7 @@ mkIf flags.munin { address 127.0.0.1 ''; extraGlobalConfig = '' - contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/public/services/munin-muttrc -s "Munin notification for ''${var:host}" root@prunetwork.fr + contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/services/munin-muttrc -s "Munin notification for ''${var:host}" root@prunetwork.fr ''; }; From 5453b6bdcd006b6897f9247fc6af672aaf47bd87 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 8 Nov 2017 08:19:07 +0100 Subject: [PATCH 084/120] EXPERIMENTAL ajout config pour radio SDR --- applications/radio.nix | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 applications/radio.nix diff --git a/applications/radio.nix b/applications/radio.nix new file mode 100644 index 0000000..72167c6 --- /dev/null +++ b/applications/radio.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configurationFlags; +in + +mkIf true { + +# puur que ça marche +# sudo rmmod dvb_usb_rtl28xxu + + # Paquets + environment.systemPackages = with pkgs; [ + gnss-sdr # Global Navigation Satellite Systems software-defined receiver + #gnuradio # Software Defined Radio (SDR) software + #gnuradio-osmosdr # Gnuradio block for OsmoSDR and rtl-sdr + gnuradio-with-packages + gqrx # GUI + inspectrum # Tool for analysing captured signals from sdr receivers + kalibrate-rtl # Calculate local oscillator frequency offset in RTL-SDR devices + rtl-sdr # Turns your Realtek RTL2832 based DVB dongle into a SDR receiver + + + # Inutile + #hackrf # An open source SDR platform + + ]; + + nixpkgs.config.packageOverrides = pkgs: { + gnuradio-with-packages = pkgs.gnuradio-with-packages.override { + extraPackages = with pkgs; [ + gnuradio-ais + gnuradio-gsm + gnuradio-nacl + gnuradio-osmosdr + gnuradio-rds + ]; + }; + }; +} From 7ca303303c30ff8680dd4553a1e10db2a4a49968 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 8 Nov 2017 21:36:26 +0100 Subject: [PATCH 085/120] notes pulseaudio --- services/monitoring-munin.nix | 9 +++++++++ services/pulseaudio.nix | 3 +++ 2 files changed, 12 insertions(+) diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 345d2c6..161e38c 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -21,6 +21,15 @@ mkIf flags.munin { ## Noeud de supervision munin = pas de stockage des données locales services.munin-node = { enable = true; + extraConfig = '' + # Ignore the apc_nis plugin, as it throws errors as I don't have an UPS. + # It's there because munin-node-configure is called with the contrib group, + # and the plugin has no method to check whether there's a compatible UPS available. + ignore_file ^apc_nis$ + + ignore_file ^sensors_-wrapped$ + ignore_file ^.sensors_-wrapped$ + ''; }; systemd.services.munin-node = { path = with pkgs; [ munin lm_sensors ]; diff --git a/services/pulseaudio.nix b/services/pulseaudio.nix index 8f47776..98c1445 100644 --- a/services/pulseaudio.nix +++ b/services/pulseaudio.nix @@ -9,6 +9,9 @@ in mkIf flags.pulseaudio { + # Notes + # commande pour lister les cartes son : pacmd list-cards + # Paquets environment.systemPackages = with pkgs; [ paprefs # préferences pulseaudio From 99eac99e812e67cda98831e14291517e2a2d15f6 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 11 Nov 2017 15:38:46 +0100 Subject: [PATCH 086/120] EXP radio --- applications/radio.nix | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/applications/radio.nix b/applications/radio.nix index 72167c6..6f5b445 100644 --- a/applications/radio.nix +++ b/applications/radio.nix @@ -9,19 +9,30 @@ in mkIf true { -# puur que ça marche +# pour que ça marche # sudo rmmod dvb_usb_rtl28xxu +# lecture radio FM +# rtl_fm -f 96.9e6 -M wbfm -s 440000 -r 44100 - | aplay -r 44100 -f S16_LE +# rtl_fm -f 96.95e6 -M wbfm -s 441000 -r 44100 - | aplay -r 44100 -f S16_LE -t raw -c 1 +# rtl_fm -f 96.95e6 -M wbfm -s 441000 -r 44100 -E deemp - |pv| aplay -r 44100 -f S16_LE -t raw -c 1 + # Paquets environment.systemPackages = with pkgs; [ + ## TERMINAL + rtl-sdr # Turns your Realtek RTL2832 based DVB dongle into a SDR receiver + + ## GUI + #gnuradio + gnuradio-with-packages + + ## A Trier gnss-sdr # Global Navigation Satellite Systems software-defined receiver #gnuradio # Software Defined Radio (SDR) software #gnuradio-osmosdr # Gnuradio block for OsmoSDR and rtl-sdr - gnuradio-with-packages gqrx # GUI inspectrum # Tool for analysing captured signals from sdr receivers kalibrate-rtl # Calculate local oscillator frequency offset in RTL-SDR devices - rtl-sdr # Turns your Realtek RTL2832 based DVB dongle into a SDR receiver # Inutile From 39698058808631ad4f20041818c51a969d4e1d5b Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 15 Nov 2017 20:32:40 +0100 Subject: [PATCH 087/120] =?UTF-8?q?radio=20:=20configuration=20mat=C3=A9ri?= =?UTF-8?q?elle=20(module=20kernel=20masqu=C3=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/radio.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/applications/radio.nix b/applications/radio.nix index 6f5b445..a5e07e3 100644 --- a/applications/radio.nix +++ b/applications/radio.nix @@ -40,6 +40,11 @@ mkIf true { ]; + # Configuration matérielle + boot.blacklistedKernelModules = [ + "dvb_usb_rtl28xxu" + ]; + nixpkgs.config.packageOverrides = pkgs: { gnuradio-with-packages = pkgs.gnuradio-with-packages.override { extraPackages = with pkgs; [ From 75682ee66475d2e7de5624baeb4db6a2eb731d27 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 19 Nov 2017 11:42:03 +0100 Subject: [PATCH 088/120] radio : extraction d'une option pour activer le profil MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + découpage des modules terminal/graphical --- applications/graphical/default.nix | 1 + applications/graphical/radio.nix | 26 +++++++++++++++++++++ applications/terminal/default.nix | 1 + applications/{ => terminal}/radio.nix | 33 ++------------------------- options.nix | 1 + 5 files changed, 31 insertions(+), 31 deletions(-) create mode 100644 applications/graphical/radio.nix rename applications/{ => terminal}/radio.nix (54%) diff --git a/applications/graphical/default.nix b/applications/graphical/default.nix index 3fa8a5a..cdcdfc7 100644 --- a/applications/graphical/default.nix +++ b/applications/graphical/default.nix @@ -26,6 +26,7 @@ in ./edition-photo.nix # modifier les photos & assimilé ./edition-video.nix # modifier les vidéos ./jeux.nix # jouer, tout simplement ;) + ./radio.nix # outils pour faire de la radio SDR ## if isDesktop ./adminsys.nix # pour gérer le système dans son ensemble et les services diff --git a/applications/graphical/radio.nix b/applications/graphical/radio.nix new file mode 100644 index 0000000..3afa2b1 --- /dev/null +++ b/applications/graphical/radio.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configurationFlags; +in + +mkIf (flags.radio && flags.graphical) { + + # Paquets + environment.systemPackages = with pkgs; [ + ## GUI + gqrx # GUI + #gnuradio # Software Defined Radio (SDR) software + gnuradio-with-packages + + ## A Trier + # + #gnuradio-osmosdr # Gnuradio block for OsmoSDR and rtl-sdr + + inspectrum # Tool for analysing captured signals from sdr receivers + kalibrate-rtl # Calculate local oscillator frequency offset in RTL-SDR devices + ]; +} diff --git a/applications/terminal/default.nix b/applications/terminal/default.nix index 3fa8a5a..cdcdfc7 100644 --- a/applications/terminal/default.nix +++ b/applications/terminal/default.nix @@ -26,6 +26,7 @@ in ./edition-photo.nix # modifier les photos & assimilé ./edition-video.nix # modifier les vidéos ./jeux.nix # jouer, tout simplement ;) + ./radio.nix # outils pour faire de la radio SDR ## if isDesktop ./adminsys.nix # pour gérer le système dans son ensemble et les services diff --git a/applications/radio.nix b/applications/terminal/radio.nix similarity index 54% rename from applications/radio.nix rename to applications/terminal/radio.nix index a5e07e3..08769a3 100644 --- a/applications/radio.nix +++ b/applications/terminal/radio.nix @@ -7,7 +7,7 @@ let flags = currentMachine.configurationFlags; in -mkIf true { +mkIf flags.radio { # pour que ça marche # sudo rmmod dvb_usb_rtl28xxu @@ -19,41 +19,12 @@ mkIf true { # Paquets environment.systemPackages = with pkgs; [ - ## TERMINAL - rtl-sdr # Turns your Realtek RTL2832 based DVB dongle into a SDR receiver - - ## GUI - #gnuradio - gnuradio-with-packages - - ## A Trier gnss-sdr # Global Navigation Satellite Systems software-defined receiver - #gnuradio # Software Defined Radio (SDR) software - #gnuradio-osmosdr # Gnuradio block for OsmoSDR and rtl-sdr - gqrx # GUI - inspectrum # Tool for analysing captured signals from sdr receivers - kalibrate-rtl # Calculate local oscillator frequency offset in RTL-SDR devices - - - # Inutile - #hackrf # An open source SDR platform - + rtl-sdr # Turns your Realtek RTL2832 based DVB dongle into a SDR receiver ]; # Configuration matérielle boot.blacklistedKernelModules = [ "dvb_usb_rtl28xxu" ]; - - nixpkgs.config.packageOverrides = pkgs: { - gnuradio-with-packages = pkgs.gnuradio-with-packages.override { - extraPackages = with pkgs; [ - gnuradio-ais - gnuradio-gsm - gnuradio-nacl - gnuradio-osmosdr - gnuradio-rds - ]; - }; - }; } diff --git a/options.nix b/options.nix index 216c10b..d5cc47c 100644 --- a/options.nix +++ b/options.nix @@ -47,6 +47,7 @@ let print = mkEnableOption "Profil pour activer cups & pouvoir imprimer."; pulseaudio = mkEnableOption "Profil pour activer pulseaudio."; rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP."; + radio = mkEnableOption "Profil pour activer les outils pour faire de radio numérique - SDR."; radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts."; rmilter = mkEnableOption "Profil pour activer le filtrage de mails par postfix."; scanner = mkEnableOption "Profil pour que les scanners soient utilisable."; From 697f44f3bc224a40ea4cf89e03982e8022b24dac Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 19 Nov 2017 12:03:42 +0100 Subject: [PATCH 089/120] =?UTF-8?q?extraction=20des=20red=C3=A9finition=20?= =?UTF-8?q?des=20packages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -> ce n'est pas un fix très joli mais il a le mérite de réappliquer les config que nous avions été obligés de mettre en commentaires lors du dernier upgrade --- applications/graphical/client-internet.nix | 18 --------- applications/overrides.nix | 45 ++++++++++++++++++++++ applications/terminal/edition-video.nix | 9 ----- base.nix | 3 ++ 4 files changed, 48 insertions(+), 27 deletions(-) create mode 100644 applications/overrides.nix diff --git a/applications/graphical/client-internet.nix b/applications/graphical/client-internet.nix index d5c1f98..750aeaf 100644 --- a/applications/graphical/client-internet.nix +++ b/applications/graphical/client-internet.nix @@ -30,22 +30,4 @@ environment.systemPackages = with pkgs; [ transmission_gtk transmission_remote_gtk ]; - - /* TODO: voir pour appliquer la personnalisation - nixpkgs.config.packageOverrides = pkgs: { - clawsMail = pkgs.clawsMail.override { - enablePluginFancy = false; # nécessite wekitgtk qui est troué - enablePluginPdf = true; - enablePluginRavatar = true; - enablePluginSmime = true; - enablePluginVcalendar = true; - enableSpellcheck = true; - }; - mumble = pkgs.mumble.override { pulseSupport = true; }; - }; - */ - - #nixpkgs.config.permittedInsecurePackages = [ - # "webkitgtk-2.4.11" # pour que le plugin fancy de claws-mail fonctionne - #]; } diff --git a/applications/overrides.nix b/applications/overrides.nix new file mode 100644 index 0000000..71afe7e --- /dev/null +++ b/applications/overrides.nix @@ -0,0 +1,45 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configurationFlags; +in + +mkIf true { + + nixpkgs.config.packageOverrides = pkgs: { + clawsMail = pkgs.clawsMail.override { + enablePgp = true; + enablePluginArchive = true; + enablePluginFancy = false; # nécessite wekitgtk qui est troué + enablePluginPdf = true; + enablePluginRavatar = true; + enablePluginSmime = true; + enablePluginVcalendar = true; + enableSpellcheck = true; + }; + + ffmpeg-full = pkgs.ffmpeg-full.override { + nonfreeLicensing = true; + nvenc = true; + }; + + gnuradio-with-packages = pkgs.gnuradio-with-packages.override { + extraPackages = with pkgs; [ + gnuradio-ais + gnuradio-gsm + gnuradio-nacl + gnuradio-osmosdr + gnuradio-rds + ]; + }; + + mumble = pkgs.mumble.override { pulseSupport = true; }; + }; + + #nixpkgs.config.permittedInsecurePackages = [ + # "webkitgtk-2.4.11" # pour que le plugin fancy de claws-mail fonctionne + #]; +} diff --git a/applications/terminal/edition-video.nix b/applications/terminal/edition-video.nix index 19b2bfa..af23cb8 100644 --- a/applications/terminal/edition-video.nix +++ b/applications/terminal/edition-video.nix @@ -13,13 +13,4 @@ mkIf flags.edition-video { environment.systemPackages = with pkgs; [ ffmpeg-full # assemblage de flux audio & video en ligne de commande ]; - - /* TODO: voir pour appliquer la personnalisation - nixpkgs.config.packageOverrides = pkgs: { - ffmpeg-full = pkgs.ffmpeg-full.override { - nonfreeLicensing = true; - nvenc = true; - }; - }; - */ } diff --git a/base.nix b/base.nix index 0aaa718..c4d6c1d 100644 --- a/base.nix +++ b/base.nix @@ -6,6 +6,9 @@ /*./config-generator.nix*/ ./options.nix + # Redéfinition d'applications et de modules + ./applications/overrides.nix + # subfolders ./applications/graphical/default.nix ./applications/terminal/default.nix From c00cdb934326ec09d3a00fb96a33499fca215f6d Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 19 Nov 2017 12:07:55 +0100 Subject: [PATCH 090/120] bureau : ajout de grammalectre comme correcteur grammatical --- applications/terminal/bureautique.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/applications/terminal/bureautique.nix b/applications/terminal/bureautique.nix index 21bc344..f594437 100644 --- a/applications/terminal/bureautique.nix +++ b/applications/terminal/bureautique.nix @@ -12,7 +12,8 @@ mkIf flags.officeSuite { # Paquets environment.systemPackages = with pkgs; [ # Bureautique - aspell aspellDicts.fr # correction d'ortographe + aspell aspellDicts.fr # correction d'ortographe + python36Packages.grammalecte # correction gramatical # Gestion de tâche taskwarrior # gestionnaire de tâches en console From 6d13167f38ba6d3ee10d42a53a8b49ce925de35a Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 19 Nov 2017 12:13:30 +0100 Subject: [PATCH 091/120] python : update des packages vers python 3.6 lorsque possible --- applications/terminal/adminsys.nix | 4 ++-- applications/terminal/client-internet.nix | 4 ++-- services/docker.nix | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/applications/terminal/adminsys.nix b/applications/terminal/adminsys.nix index c0cb73c..a66799a 100644 --- a/applications/terminal/adminsys.nix +++ b/applications/terminal/adminsys.nix @@ -22,8 +22,8 @@ mkIf true { ntp powerline-fonts powertop - #python27Packages.ansible2 - python27Packages.glances + #ansible + python36Packages.glances pv # afficher le débit d'un flux dd if=/dev/zero | pv | dd of=/dev/null sysstat # pour la commande "iostat -x -1" de monitoring d'activité disque usbutils diff --git a/applications/terminal/client-internet.nix b/applications/terminal/client-internet.nix index 6c56c6a..7ee9da1 100644 --- a/applications/terminal/client-internet.nix +++ b/applications/terminal/client-internet.nix @@ -14,8 +14,8 @@ environment.systemPackages = with pkgs; [ # Clients Internet ## Réseaux sociaux - #python27Packages.turses # client twitter en ncurse - #python27Packages.rainbowstream # client twitter en console + #turses # client twitter en ncurse + #python36Packages.rainbowstream # client twitter en console #rtv # client reddit en console ## Mail & Discussion (texte, audio) diff --git a/services/docker.nix b/services/docker.nix index b6607cd..9663f89 100644 --- a/services/docker.nix +++ b/services/docker.nix @@ -13,7 +13,7 @@ mkIf flags.docker { environment.systemPackages = with pkgs; [ # Ecosystème Docker docker - python27Packages.docker_compose + python36Packages.docker_compose ]; virtualisation.docker.enable = true; From 3894796a143e13870cfa19436436a7ca17a7dad9 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 19 Nov 2017 22:09:01 +0100 Subject: [PATCH 092/120] MaJ nixos version --- configuration/environment.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration/environment.nix b/configuration/environment.nix index 6d657e3..7f434fb 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -12,7 +12,7 @@ in nix.buildCores = 0; # The NixOS release to be compatible with for stateful data such as databases. - system.stateVersion = "17.03"; + system.stateVersion = "18.03"; # copies the NixOS configuration file (usually /etc/nixos/configuration.nix) and links it from the resulting system (getting to /run/current-system/configuration.nix) system.copySystemConfiguration = true; From c0493bb03824f3b3f06415d3b2acdba975bdc270 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 25 Nov 2017 17:45:28 +0100 Subject: [PATCH 093/120] =?UTF-8?q?mtr:=20modification=20de=20la=20fac?= =?UTF-8?q?=C3=A7on=20d'activer=20les=20droits?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/terminal/network.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/applications/terminal/network.nix b/applications/terminal/network.nix index 1dc77b7..9e9c263 100644 --- a/applications/terminal/network.nix +++ b/applications/terminal/network.nix @@ -19,15 +19,14 @@ mkIf true { ## Diagnostic arp-scan + #mtr -> installé plus bas nmap # outil de scan de port réseau whois ]; - # Paquets avec setuid root - security.wrappers = { - # outil de diagnostic réseau - mtr.source = "${pkgs.mtr}/bin/mtr"; - }; + # https://github.com/NixOS/nixpkgs/issues/30335 + # Some programs need SUID wrappers, can be configured further or are started in user sessions. + programs.mtr.enable = true; networking.firewall = { allowedTCPPorts = [ From 8f21c1dc33d4f3a4f812d5b86e086387b2cc21e7 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 26 Nov 2017 21:59:31 +0100 Subject: [PATCH 094/120] =?UTF-8?q?all:=20m=C3=A9nage=20de=20/tmp=20au=20l?= =?UTF-8?q?ancement=20de=20nixos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configuration/environment.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/configuration/environment.nix b/configuration/environment.nix index 7f434fb..2502d33 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -14,7 +14,7 @@ in # The NixOS release to be compatible with for stateful data such as databases. system.stateVersion = "18.03"; - # copies the NixOS configuration file (usually /etc/nixos/configuration.nix) and links it from the resulting system (getting to /run/current-system/configuration.nix) + # copies the NixOS configuration file (usually /etc/nixos/configuration.nix) and links it from the resulting system (getting to /run/current-system/configuration.nix) system.copySystemConfiguration = true; # On autorise les paquets non-libres @@ -23,6 +23,9 @@ in # NixOS Hardening #security.grsecurity.enable = true; + # Ménage de /tmp au boot + boot.cleanTmpDir = true; + # Paquets environment = { shellAliases = { From b991fadc06670a59e9b66907f7acc1b20b9f2ca9 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 26 Nov 2017 22:02:44 +0100 Subject: [PATCH 095/120] all : activation des pages de manuel (backport de config radx) --- configuration/environment.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configuration/environment.nix b/configuration/environment.nix index 2502d33..274fb79 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -26,6 +26,9 @@ in # Ménage de /tmp au boot boot.cleanTmpDir = true; + # Activation des pages de manuel + programs.man.enable = true; + # Paquets environment = { shellAliases = { From db912bbc3b675236ea08cce148116d633a5137dd Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 26 Nov 2017 22:20:30 +0100 Subject: [PATCH 096/120] =?UTF-8?q?make:=20ajout=20cible=20show-blackholed?= =?UTF-8?q?=20pour=20facilement=20voir=20le=20nombre=20d'IP=20blackhol?= =?UTF-8?q?=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index d59e4fa..e941b9b 100644 --- a/Makefile +++ b/Makefile @@ -30,6 +30,9 @@ rebuild-build: rebuild-switch: $(TIME) time nixos-rebuild switch --fallback --show-trace +show-blackholed: + -ip route |grep blackhole |wc -l| awk '{print "Il y a "$$1" route(s) en blackhole"}' |cowsay + show-diff-with-current: -diff /run/current-system/configuration.nix /etc/nixos/configuration.nix From c3979947ecee3eddf749d1ebbea34a2ea8dbd7e7 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 13 Dec 2017 00:13:04 +0100 Subject: [PATCH 097/120] gnuradio: ajout commande pour ajuster le ficher de conf local --- applications/overrides.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/applications/overrides.nix b/applications/overrides.nix index 71afe7e..950fdbe 100644 --- a/applications/overrides.nix +++ b/applications/overrides.nix @@ -26,6 +26,9 @@ mkIf true { nvenc = true; }; + # bug connu : https://nixos.org/nix-dev/2014-December/015225.html + # find /nix/store/ -maxdepth 1 -type d -name "*gnuradio-*" + # Commande pour générer le path : find /nix/store/ -maxdepth 1 -type d -name "*gnuradio-*"|paste -d: -s - gnuradio-with-packages = pkgs.gnuradio-with-packages.override { extraPackages = with pkgs; [ gnuradio-ais From ecfe564d93b257bcae4b4853594bfcb492f1c82c Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 16 Dec 2017 14:57:40 +0100 Subject: [PATCH 098/120] ajout documentation --- applications/overrides.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/overrides.nix b/applications/overrides.nix index 950fdbe..9ebd866 100644 --- a/applications/overrides.nix +++ b/applications/overrides.nix @@ -34,8 +34,8 @@ mkIf true { gnuradio-ais gnuradio-gsm gnuradio-nacl - gnuradio-osmosdr - gnuradio-rds + gnuradio-osmosdr # support des dongle Realtek + gnuradio-rds # support du décodage de RDS sur les radio FM ]; }; From 3be18dce4bd1d29163deaf77c13d32774b8df59d Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 17 Dec 2017 12:09:11 +0100 Subject: [PATCH 099/120] awesome config: formattage --- public/config-awesome-4-rc.lua | 770 +++++++++++++++++---------------- 1 file changed, 395 insertions(+), 375 deletions(-) diff --git a/public/config-awesome-4-rc.lua b/public/config-awesome-4-rc.lua index 5b87e8d..76c9db9 100644 --- a/public/config-awesome-4-rc.lua +++ b/public/config-awesome-4-rc.lua @@ -18,9 +18,11 @@ local hotkeys_popup = require("awful.hotkeys_popup").widget -- Check if awesome encountered an error during startup and fell back to -- another config (This code will only ever execute for the fallback config) if awesome.startup_errors then - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, there were errors during startup!", - text = awesome.startup_errors }) + naughty.notify({ + preset = naughty.config.presets.critical, + title = "Oops, there were errors during startup!", + text = awesome.startup_errors + }) end -- Handle runtime errors after startup @@ -31,9 +33,11 @@ do if in_error then return end in_error = true - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, an error happened!", - text = tostring(err) }) + naughty.notify({ + preset = naughty.config.presets.critical, + title = "Oops, an error happened!", + text = tostring(err) + }) in_error = false end) end @@ -95,20 +99,24 @@ end -- {{{ Menu -- Create a launcher widget and a main menu myawesomemenu = { - { "hotkeys", function() return false, hotkeys_popup.show_help end}, - { "manual", terminal .. " -e man awesome" }, - { "edit config", editor_cmd .. " " .. awesome.conffile }, - { "restart", awesome.restart }, - { "quit", function() awesome.quit() end} + { "hotkeys", function() return false, hotkeys_popup.show_help end}, + { "manual", terminal .. " -e man awesome" }, + { "edit config", editor_cmd .. " " .. awesome.conffile }, + { "restart", awesome.restart }, + { "quit", function() awesome.quit() end} } -mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, - { "open terminal", terminal } - } - }) +mymainmenu = awful.menu({ + items = { + { "awesome", myawesomemenu, beautiful.awesome_icon }, + { "open terminal", terminal } + } +}) -mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, - menu = mymainmenu }) +mylauncher = awful.widget.launcher({ + image = beautiful.awesome_icon, + menu = mymainmenu +}) -- Menubar configuration menubar.utils.terminal = terminal -- Set the terminal for applications that require it @@ -123,46 +131,87 @@ mytextclock = wibox.widget.textclock() -- Create a wibox for each screen and add it local taglist_buttons = awful.util.table.join( - awful.button({ }, 1, function(t) t:view_only() end), - awful.button({ modkey }, 1, function(t) - if client.focus then - client.focus:move_to_tag(t) - end - end), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, function(t) - if client.focus then - client.focus:toggle_tag(t) - end - end), - awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), - awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) - ) + awful.button( + { }, + 1, + function(t) t:view_only() end + ), + awful.button( + { modkey }, + 1, + function(t) + if client.focus then + client.focus:move_to_tag(t) + end + end + ), + awful.button( + { }, + 3, + awful.tag.viewtoggle + ), + awful.button( + { modkey }, + 3, + function(t) + if client.focus then + client.focus:toggle_tag(t) + end + end + ), + awful.button( + { }, + 4, + function(t) awful.tag.viewnext(t.screen) end + ), + awful.button( + { }, + 5, + function(t) awful.tag.viewprev(t.screen) end + ) +) local tasklist_buttons = awful.util.table.join( - awful.button({ }, 1, function (c) - if c == client.focus then - c.minimized = true - else - -- Without this, the following - -- :isvisible() makes no sense - c.minimized = false - if not c:isvisible() and c.first_tag then - c.first_tag:view_only() - end - -- This will also un-minimize - -- the client, if needed - client.focus = c - c:raise() - end - end), - awful.button({ }, 3, client_menu_toggle_fn()), - awful.button({ }, 4, function () - awful.client.focus.byidx(1) - end), - awful.button({ }, 5, function () - awful.client.focus.byidx(-1) - end)) + awful.button( + { }, + 1, + function (c) + if c == client.focus then + c.minimized = true + else + -- Without this, the following + -- :isvisible() makes no sense + c.minimized = false + if not c:isvisible() and c.first_tag then + c.first_tag:view_only() + end + -- This will also un-minimize + -- the client, if needed + client.focus = c + c:raise() + end + end + ), + awful.button( + { }, + 3, + client_menu_toggle_fn() + ), + awful.button( + { }, + 4, + function () + awful.client.focus.byidx(1) + end + ), + awful.button( + { }, + 5, + function () + awful.client.focus.byidx(-1) + end + ) +) local function set_wallpaper(s) -- Wallpaper @@ -179,51 +228,54 @@ end -- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) screen.connect_signal("property::geometry", set_wallpaper) -awful.screen.connect_for_each_screen(function(s) - -- Wallpaper - set_wallpaper(s) - - -- Each screen has its own tag table. - awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) - - -- Create a promptbox for each screen - s.mypromptbox = awful.widget.prompt() - -- Create an imagebox widget which will contains an icon indicating which layout we're using. - -- We need one layoutbox per screen. - s.mylayoutbox = awful.widget.layoutbox(s) - s.mylayoutbox:buttons(awful.util.table.join( - awful.button({ }, 1, function () awful.layout.inc( 1) end), - awful.button({ }, 3, function () awful.layout.inc(-1) end), - awful.button({ }, 4, function () awful.layout.inc( 1) end), - awful.button({ }, 5, function () awful.layout.inc(-1) end))) - -- Create a taglist widget - s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, taglist_buttons) - - -- Create a tasklist widget - s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, tasklist_buttons) - - -- Create the wibox - s.mywibox = awful.wibar({ position = "top", screen = s }) - - -- Add widgets to the wibox - s.mywibox:setup { - layout = wibox.layout.align.horizontal, - { -- Left widgets - layout = wibox.layout.fixed.horizontal, - mylauncher, - s.mytaglist, - s.mypromptbox, - }, - s.mytasklist, -- Middle widget - { -- Right widgets - layout = wibox.layout.fixed.horizontal, - mykeyboardlayout, - wibox.widget.systray(), - mytextclock, - s.mylayoutbox, - }, - } -end) +awful.screen.connect_for_each_screen( + function(s) + -- Wallpaper + set_wallpaper(s) + + -- Each screen has its own tag table. + awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(awful.util.table.join( + awful.button({ }, 1, function () awful.layout.inc( 1) end), + awful.button({ }, 3, function () awful.layout.inc(-1) end), + awful.button({ }, 4, function () awful.layout.inc( 1) end), + awful.button({ }, 5, function () awful.layout.inc(-1) end) + )) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + mylauncher, + s.mytaglist, + s.mypromptbox + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + mykeyboardlayout, + wibox.widget.systray(), + mytextclock, + s.mylayoutbox + } + } + end +) -- }}} -- {{{ Mouse bindings @@ -236,208 +288,153 @@ root.buttons(awful.util.table.join( -- {{{ Key bindings globalkeys = awful.util.table.join( - awful.key({ modkey, }, "s", hotkeys_popup.show_help, - {description="show help", group="awesome"}), - awful.key({ modkey, }, "Left", awful.tag.viewprev, - {description = "view previous", group = "tag"}), - awful.key({ modkey, }, "Right", awful.tag.viewnext, - {description = "view next", group = "tag"}), - awful.key({ modkey, }, "Escape", awful.tag.history.restore, - {description = "go back", group = "tag"}), - - awful.key({ modkey, }, "j", - function () - awful.client.focus.byidx( 1) - end, - {description = "focus next by index", group = "client"} - ), - awful.key({ modkey, }, "k", - function () - awful.client.focus.byidx(-1) - end, - {description = "focus previous by index", group = "client"} - ), - awful.key({ modkey, }, "w", function () mymainmenu:show() end, - {description = "show main menu", group = "awesome"}), + awful.key({ modkey, }, "s", hotkeys_popup.show_help, {description="show help", group="awesome"}), + awful.key({ modkey, }, "Left", awful.tag.viewprev, {description = "view previous", group = "tag"}), + awful.key({ modkey, }, "Right", awful.tag.viewnext, {description = "view next", group = "tag"}), + awful.key({ modkey, }, "Escape", awful.tag.history.restore, {description = "go back", group = "tag"}), + + awful.key({ modkey, }, "j", function () awful.client.focus.byidx( 1) end, {description = "focus next by index", group = "client"}), + awful.key({ modkey, }, "k", function () awful.client.focus.byidx(-1) end, {description = "focus previous by index", group = "client"}), + awful.key({ modkey, }, "w", function () mymainmenu:show() end, {description = "show main menu", group = "awesome"}), -- Layout manipulation - awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, - {description = "swap with next client by index", group = "client"}), - awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, - {description = "swap with previous client by index", group = "client"}), - awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, - {description = "focus the next screen", group = "screen"}), - awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, - {description = "focus the previous screen", group = "screen"}), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto, - {description = "jump to urgent client", group = "client"}), - awful.key({ modkey, }, "Tab", - function () - awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - end, - {description = "go back", group = "client"}), + awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, {description = "swap with next client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, {description = "swap with previous client by index", group = "client"}), + awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, {description = "focus the previous screen", group = "screen"}), + awful.key({ modkey, }, "u", awful.client.urgent.jumpto, {description = "jump to urgent client", group = "client"}), + awful.key({ modkey, }, "Tab", function () awful.client.focus.history.previous() if client.focus then client.focus:raise() end end, + {description = "go back", group = "client"}), -- Standard program - awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, - {description = "open a terminal", group = "launcher"}), - awful.key({ modkey, "Control" }, "r", awesome.restart, - {description = "reload awesome", group = "awesome"}), - awful.key({ modkey, "Shift" }, "q", awesome.quit, - {description = "quit awesome", group = "awesome"}), - - awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, - {description = "increase master width factor", group = "layout"}), - awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, - {description = "decrease master width factor", group = "layout"}), - awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, - {description = "increase the number of master clients", group = "layout"}), - awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, - {description = "decrease the number of master clients", group = "layout"}), - awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, - {description = "increase the number of columns", group = "layout"}), - awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, - {description = "decrease the number of columns", group = "layout"}), - awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, - {description = "select next", group = "layout"}), - awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, - {description = "select previous", group = "layout"}), - - awful.key({ modkey, "Control" }, "n", - function () - local c = awful.client.restore() - -- Focus restored client - if c then - client.focus = c - c:raise() - end - end, - {description = "restore minimized", group = "client"}), + awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, {description = "open a terminal", group = "launcher"}), + awful.key({ modkey, "Control" }, "r", awesome.restart, {description = "reload awesome", group = "awesome"}), + awful.key({ modkey, "Shift" }, "q", awesome.quit, {description = "quit awesome", group = "awesome"}), + awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, {description = "increase master width factor", group = "layout"}), + awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, {description = "decrease master width factor", group = "layout"}), + awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, {description = "increase the number of master clients", group = "layout"}), + awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, {description = "decrease the number of master clients", group = "layout"}), + awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, {description = "increase the number of columns", group = "layout"}), + awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, {description = "decrease the number of columns", group = "layout"}), + awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, {description = "select next", group = "layout"}), + awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, {description = "select previous", group = "layout"}), + + awful.key({ modkey, "Control" }, "n", function () local c = awful.client.restore() --[[ Focus restored client ]] if c then client.focus = c c:raise() end end, + {description = "restore minimized", group = "client"}), -- Prompt - awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, - {description = "run prompt", group = "launcher"}), + awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, {description = "run prompt", group = "launcher"}), awful.key({ modkey }, "x", - function () - awful.prompt.run { - prompt = "Run Lua code: ", - textbox = awful.screen.focused().mypromptbox.widget, - exe_callback = awful.util.eval, - history_path = awful.util.get_cache_dir() .. "/history_eval" - } - end, - {description = "lua execute prompt", group = "awesome"}), + function () + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. "/history_eval" + } + end, + {description = "lua execute prompt", group = "awesome"}), -- Menubar - awful.key({ modkey }, "p", function() menubar.show() end, - {description = "show the menubar", group = "launcher"}), - -- Lanceurs perso - awful.key({ modkey }, "F1", function () awful.util.spawn("firefox") end), - awful.key({ modkey }, "F2", function () awful.util.spawn("firefox") end), --- awful.key({ modkey }, "F3", function () awful.util.spawn("") end), - awful.key({ modkey }, "F4", function () awful.util.spawn("chromium") end), - awful.key({ modkey }, "F5", function () awful.util.spawn("spacefm") end), - awful.key({ modkey }, "F6", function () awful.util.spawn("vlc") end), - awful.key({ modkey }, "F7", function () awful.util.spawn("claws-mail") end), - awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") end), - awful.key({ modkey }, "F12", function () awful.util.spawn("slock") end), - awful.key({ modkey, "Shift" }, "F1", function () awful.util.spawn("claws-mail") end), - awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") end), - awful.key({ modkey, "Shift" }, "F6", function () awful.util.spawn("clementine") end), - awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("xrandr-auto-2") end) --- awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-left") end), --- awful.key({ modkey, "Control" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-right") end), + awful.key({ modkey }, "p", function() menubar.show() end, {description = "show the menubar", group = "launcher"}), + -- Lanceurs perso + awful.key({ modkey }, "F1", function () awful.util.spawn("firefox") end, {description = "Lance Firefox", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F2", function () awful.util.spawn("firefox") end, {description = "Lance Firefox", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F3", function () awful.util.spawn("gqrx") end, {description = "Lance gqrx", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F4", function () awful.util.spawn("chromium") end, {description = "Lance Chromium", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F5", function () awful.util.spawn("spacefm") end, {description = "Lance spacefm", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F6", function () awful.util.spawn("vlc") end, {description = "Lance vlc", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F7", function () awful.util.spawn("claws-mail") end, {description = "Lance claws", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") end, {description = "Lance le script xrandr-auto", group = "Lanceurs personnels"}), + awful.key({ modkey }, "F12", function () awful.util.spawn("slock") end, {description = "Verouille la session avec slock", group = "Lanceurs personnels"}), + awful.key({ modkey, "Shift" }, "F1", function () awful.util.spawn("claws-mail") end, {description = "Lance claws", group = "Lanceurs personnels"}), + awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") end, {description = "Lance pcmanfm", group = "Lanceurs personnels"}), + awful.key({ modkey, "Shift" }, "F6", function () awful.util.spawn("clementine") end, {description = "Lance clementine", group = "Lanceurs personnels"}), + awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("xrandr-auto-2") end, {description = "Lance le script xrandr-auto-2", group = "Lanceurs personnels"}) + -- awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-left") end), + -- awful.key({ modkey, "Control" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-right") end), ) clientkeys = awful.util.table.join( - awful.key({ modkey, }, "f", - function (c) - c.fullscreen = not c.fullscreen - c:raise() - end, - {description = "toggle fullscreen", group = "client"}), - awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, - {description = "close", group = "client"}), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , - {description = "toggle floating", group = "client"}), - awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, - {description = "move to master", group = "client"}), - awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, - {description = "move to screen", group = "client"}), - awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, - {description = "toggle keep on top", group = "client"}), - awful.key({ modkey, }, "n", - function (c) - -- The client currently has the input focus, so it cannot be - -- minimized, since minimized clients can't have the focus. - c.minimized = true - end , - {description = "minimize", group = "client"}), - awful.key({ modkey, }, "m", - function (c) - c.maximized = not c.maximized - c:raise() - end , - {description = "maximize", group = "client"}) + awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen c:raise() end, {description = "toggle fullscreen", group = "client"}), + awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, {description = "close", group = "client"}), + awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , {description = "toggle floating", group = "client"}), + awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, {description = "move to master", group = "client"}), + awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, {description = "move to screen", group = "client"}), + awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, {description = "toggle keep on top", group = "client"}), + awful.key({ modkey, }, "n", function (c) --[[ The client currently has the input focus, so it cannot be minimized, since minimized clients can't have the focus. ]] c.minimized = true end , + {description = "minimize", group = "client"}), + awful.key({ modkey, }, "m", function (c) c.maximized = not c.maximized c:raise() end , {description = "maximize", group = "client"}) ) -- Bind all key numbers to tags. -- Be careful: we use keycodes to make it works on any keyboard layout. -- This should map on the top row of your keyboard, usually 1 to 9. for i = 1, 9 do - globalkeys = awful.util.table.join(globalkeys, + globalkeys = awful.util.table.join( + globalkeys, -- View tag only. - awful.key({ modkey }, "#" .. i + 9, - function () - local screen = awful.screen.focused() - local tag = screen.tags[i] - if tag then - tag:view_only() - end - end, - {description = "view tag #"..i, group = "tag"}), + awful.key( + { modkey }, + "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + tag:view_only() + end + end, + {description = "view tag #"..i, group = "tag"} + ), -- Toggle tag display. - awful.key({ modkey, "Control" }, "#" .. i + 9, - function () - local screen = awful.screen.focused() - local tag = screen.tags[i] - if tag then - awful.tag.viewtoggle(tag) - end - end, - {description = "toggle tag #" .. i, group = "tag"}), + awful.key( + { modkey, "Control" }, + "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + awful.tag.viewtoggle(tag) + end + end, + {description = "toggle tag #" .. i, group = "tag"} + ), -- Move client to tag. - awful.key({ modkey, "Shift" }, "#" .. i + 9, - function () - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:move_to_tag(tag) - end - end - end, - {description = "move focused client to tag #"..i, group = "tag"}), + awful.key( + { modkey, "Shift" }, + "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:move_to_tag(tag) + end + end + end, + {description = "move focused client to tag #"..i, group = "tag"} + ), -- Toggle tag on focused client. - awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, - function () - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:toggle_tag(tag) - end - end - end, - {description = "toggle focused client on tag #" .. i, group = "tag"}) + awful.key( + { modkey, "Control", "Shift" }, + "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:toggle_tag(tag) + end + end + end, + {description = "toggle focused client on tag #" .. i, group = "tag"} + ) ) end clientbuttons = awful.util.table.join( - awful.button({ }, 1, function (c) client.focus = c; c:raise() end), - awful.button({ modkey }, 1, awful.mouse.client.move), - awful.button({ modkey }, 3, awful.mouse.client.resize)) +awful.button({ }, 1, function (c) client.focus = c; c:raise() end), +awful.button({ modkey }, 1, awful.mouse.client.move), +awful.button({ modkey }, 3, awful.mouse.client.resize)) -- Set keys root.keys(globalkeys) @@ -447,119 +444,142 @@ root.keys(globalkeys) -- Rules to apply to new clients (through the "manage" signal). awful.rules.rules = { -- All clients will match this rule. - { rule = { }, - properties = { border_width = beautiful.border_width, - border_color = beautiful.border_normal, - focus = awful.client.focus.filter, - raise = true, - keys = clientkeys, - buttons = clientbuttons, - screen = awful.screen.preferred, - placement = awful.placement.no_overlap+awful.placement.no_offscreen - } - }, - - -- Floating clients. - { rule_any = { - instance = { - "DTA", -- Firefox addon DownThemAll. - "copyq", -- Includes session name in class. - }, - class = { - "Arandr", - "Gpick", - "Kruler", - "MessageWin", -- kalarm. - "Sxiv", - "Wpa_gui", - "pinentry", - "veromix", - "xtightvncviewer"}, - - name = { - "Event Tester", -- xev. - }, - role = { - "AlarmWindow", -- Thunderbird's calendar. - "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. - } - }, properties = { floating = true }}, - - -- Add titlebars to normal clients and dialogs - { rule_any = {type = { "normal", "dialog" } - }, properties = { titlebars_enabled = false } - }, - - -- Set Firefox to always map on the tag named "2" on screen 1. - -- { rule = { class = "Firefox" }, - -- properties = { screen = 1, tag = "2" } }, + { + rule = { }, + properties = { + border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + raise = true, + keys = clientkeys, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap+awful.placement.no_offscreen + } + }, + -- Floating clients. + { + rule_any = { + instance = { + "DTA", -- Firefox addon DownThemAll. + "copyq", -- Includes session name in class. + }, + class = { + "Arandr", + "Gpick", + "Kruler", + "MessageWin", -- kalarm. + "Sxiv", + "Wpa_gui", + "pinentry", + "veromix", + "xtightvncviewer" + }, + name = { + "Event Tester", -- xev. + }, + role = { + "AlarmWindow", -- Thunderbird's calendar. + "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. + } + }, + properties = { floating = true } + }, + + -- Add titlebars to normal clients and dialogs + { + rule_any = { + type = { "normal", "dialog" } + }, + properties = { titlebars_enabled = false } + }, + + -- Set Firefox to always map on the tag named "2" on screen 1. + -- { rule = { class = "Firefox" }, + -- properties = { screen = 1, tag = "2" } }, } -- }}} -- {{{ Signals -- Signal function to execute when a new client appears. -client.connect_signal("manage", function (c) - -- Set the windows at the slave, - -- i.e. put it at the end of others instead of setting it master. - -- if not awesome.startup then awful.client.setslave(c) end - - if awesome.startup and - not c.size_hints.user_position - and not c.size_hints.program_position then - -- Prevent clients from being unreachable after screen count changes. - awful.placement.no_offscreen(c) +client.connect_signal( + "manage", + function (c) + --[[ Set the windows at the slave, i.e. put it at the end of others instead of setting it master.]] + -- if not awesome.startup then awful.client.setslave(c) end + + if awesome.startup and + not c.size_hints.user_position + and not c.size_hints.program_position then + --[[ Prevent clients from being unreachable after screen count changes.]] + awful.placement.no_offscreen(c) + end end -end) +) -- Add a titlebar if titlebars_enabled is set to true in the rules. -client.connect_signal("request::titlebars", function(c) - -- buttons for the titlebar - local buttons = awful.util.table.join( - awful.button({ }, 1, function() - client.focus = c - c:raise() - awful.mouse.client.move(c) - end), - awful.button({ }, 3, function() - client.focus = c - c:raise() - awful.mouse.client.resize(c) - end) - ) - - awful.titlebar(c) : setup { - { -- Left - awful.titlebar.widget.iconwidget(c), - buttons = buttons, - layout = wibox.layout.fixed.horizontal - }, - { -- Middle - { -- Title - align = "center", - widget = awful.titlebar.widget.titlewidget(c) +client.connect_signal( + "request::titlebars", + function(c) + -- buttons for the titlebar + local buttons = awful.util.table.join( + awful.button( + { }, + 1, + function() + client.focus = c + c:raise() + awful.mouse.client.move(c) + end + ), + awful.button( + { }, + 3, + function() + client.focus = c + c:raise() + awful.mouse.client.resize(c) + end + ) + ) + + awful.titlebar(c) : setup { + { -- Left + awful.titlebar.widget.iconwidget(c), + buttons = buttons, + layout = wibox.layout.fixed.horizontal }, - buttons = buttons, - layout = wibox.layout.flex.horizontal - }, - { -- Right - awful.titlebar.widget.floatingbutton (c), - awful.titlebar.widget.maximizedbutton(c), - awful.titlebar.widget.stickybutton (c), - awful.titlebar.widget.ontopbutton (c), - awful.titlebar.widget.closebutton (c), - layout = wibox.layout.fixed.horizontal() - }, - layout = wibox.layout.align.horizontal - } -end) + { -- Middle + { -- Title + align = "center", + widget = awful.titlebar.widget.titlewidget(c) + }, + buttons = buttons, + layout = wibox.layout.flex.horizontal + }, + { -- Right + awful.titlebar.widget.floatingbutton (c), + awful.titlebar.widget.maximizedbutton(c), + awful.titlebar.widget.stickybutton (c), + awful.titlebar.widget.ontopbutton (c), + awful.titlebar.widget.closebutton (c), + layout = wibox.layout.fixed.horizontal() + }, + layout = wibox.layout.align.horizontal + } + end +) -- Enable sloppy focus, so that focus follows mouse. -client.connect_signal("mouse::enter", function(c) - if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier +client.connect_signal( + "mouse::enter", + function(c) + if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier and awful.client.focus.filter(c) then - client.focus = c + client.focus = c + end end -end) +) client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) From ebea0312a8f4e0487ef0daa50112ad4f5042a518 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 17 Dec 2017 14:47:49 +0100 Subject: [PATCH 100/120] awesome : ajout d'un widget iostat --- public/config-awesome-4-rc.lua | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/public/config-awesome-4-rc.lua b/public/config-awesome-4-rc.lua index 76c9db9..d62b520 100644 --- a/public/config-awesome-4-rc.lua +++ b/public/config-awesome-4-rc.lua @@ -225,6 +225,65 @@ local function set_wallpaper(s) end end + +local iostat_tooltiptext = "" +-- Widget de monitoring de l'activité des disques https://awesomewm.org/recipes/watch/ +-- disk I/O using iostat from sysstat utilities +local iotable = {} +local iostat = awful.widget.watch("iostat -dm -y -z 1 1", 2, -- in Kb, use -dm for Mb + function(widget, stdout) + for line in stdout:match("(sd.*)\n"):gmatch("(.-)\n") do + local device, tps, read_s, wrtn_s, read, wrtn = + line:match("(%w+)%s*(%d+,?%d*)%s*(%d+,?%d*)%s*(%d+,?%d*)%s*(%d+,?%d*)%s*(%d+,?%d*)") + -- [1] [2] [3] [4] [5] + iotable[device] = { tps, read_s, wrtn_s, read, wrtn } + end + + local label = "" + for device,values in spairs(iotable) do + label = label..(device..": "..iotable[device][2].." MB_read/s |"..iotable[device][3].." MB_wrtn/s").."\n" + end + iostat_tooltiptext = label + + -- customize here + --widget:set_text("sda: "..iotable["sda"][2].."/"..iotable["sda"][3]) -- read_s/wrtn_s + widget:set_text("iostat") + + widget_t = awful.tooltip({ + --objects = { }, + timer_function = function() + return iostat_tooltiptext + end, + }) + + widget_t:add_to_object(widget) + end +) + +-- tris d'un tableau par la clef https://stackoverflow.com/questions/15706270/sort-a-table-in-lua +function spairs(t, order) + -- collect the keys + local keys = {} + for k in pairs(t) do keys[#keys+1] = k end + + -- if order function given, sort by it by passing the table and keys a, b, + -- otherwise just sort the keys + if order then + table.sort(keys, function(a,b) return order(t, a, b) end) + else + table.sort(keys) + end + + -- return the iterator function + local i = 0 + return function() + i = i + 1 + if keys[i] then + return keys[i], t[keys[i]] + end + end +end + -- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) screen.connect_signal("property::geometry", set_wallpaper) @@ -268,6 +327,9 @@ awful.screen.connect_for_each_screen( s.mytasklist, -- Middle widget { -- Right widgets layout = wibox.layout.fixed.horizontal, + wibox.widget.textbox(' | '), + iostat, + wibox.widget.textbox(' | '), mykeyboardlayout, wibox.widget.systray(), mytextclock, From f7bd484863b083626ddab506ade7b15a47bc1e4a Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 17 Dec 2017 15:01:30 +0100 Subject: [PATCH 101/120] =?UTF-8?q?make:=20ajustement=20requ=C3=AAte=20bla?= =?UTF-8?q?ckhole=20pour=20afficher=20le=20nom=20de=20machine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e941b9b..abd7ba8 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ rebuild-switch: $(TIME) time nixos-rebuild switch --fallback --show-trace show-blackholed: - -ip route |grep blackhole |wc -l| awk '{print "Il y a "$$1" route(s) en blackhole"}' |cowsay + -@ip route |grep blackhole |wc -l| awk '{print "Il y a "$$1" route(s) en blackhole sur";system("hostname ")}' |cowsay show-diff-with-current: -diff /run/current-system/configuration.nix /etc/nixos/configuration.nix From 87e16c5fe72db87d56ab3d77a675f27b22aefd89 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 17 Dec 2017 16:22:06 +0100 Subject: [PATCH 102/120] awesome : inutile d'ajouter le tooltip en boucle --- public/config-awesome-4-rc.lua | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/public/config-awesome-4-rc.lua b/public/config-awesome-4-rc.lua index d62b520..e9bae9a 100644 --- a/public/config-awesome-4-rc.lua +++ b/public/config-awesome-4-rc.lua @@ -230,7 +230,7 @@ local iostat_tooltiptext = "" -- Widget de monitoring de l'activité des disques https://awesomewm.org/recipes/watch/ -- disk I/O using iostat from sysstat utilities local iotable = {} -local iostat = awful.widget.watch("iostat -dm -y -z 1 1", 2, -- in Kb, use -dm for Mb +local iostat = awful.widget.watch("iostat -dm -y 1 1", 2, -- in Kb, use -dm for Mb function(widget, stdout) for line in stdout:match("(sd.*)\n"):gmatch("(.-)\n") do local device, tps, read_s, wrtn_s, read, wrtn = @@ -248,18 +248,18 @@ local iostat = awful.widget.watch("iostat -dm -y -z 1 1", 2, -- in Kb, use -dm f -- customize here --widget:set_text("sda: "..iotable["sda"][2].."/"..iotable["sda"][3]) -- read_s/wrtn_s widget:set_text("iostat") - - widget_t = awful.tooltip({ - --objects = { }, - timer_function = function() - return iostat_tooltiptext - end, - }) - - widget_t:add_to_object(widget) end ) +iostat_t = awful.tooltip({ + --objects = { }, + timer_function = function() + return iostat_tooltiptext + end, + }) + +iostat_t:add_to_object(iostat) + -- tris d'un tableau par la clef https://stackoverflow.com/questions/15706270/sort-a-table-in-lua function spairs(t, order) -- collect the keys From f025b78d946cb60a57989c62299ae0e83df021e6 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 17 Dec 2017 17:25:26 +0100 Subject: [PATCH 103/120] radio: ajout de lib --- applications/terminal/radio.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/applications/terminal/radio.nix b/applications/terminal/radio.nix index 08769a3..fc196f6 100644 --- a/applications/terminal/radio.nix +++ b/applications/terminal/radio.nix @@ -20,7 +20,8 @@ mkIf flags.radio { # Paquets environment.systemPackages = with pkgs; [ gnss-sdr # Global Navigation Satellite Systems software-defined receiver - rtl-sdr # Turns your Realtek RTL2832 based DVB dongle into a SDR receiver + liquid-dsp # Digital signal processing library for software-defined radios + rtl-sdr # Turns your Realtek RTL2832 based DVB dongle into a SDR receiver ]; # Configuration matérielle From 4ab0e2ff473c9d0a3a61133e7dab734c908d4b1b Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 27 Dec 2017 20:40:01 +0100 Subject: [PATCH 104/120] =?UTF-8?q?hydra:=20suppression=20option=20suite?= =?UTF-8?q?=20=C3=A0=20evol=20nixos,=20l'option=20est=20deprecated/inutile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/hydra-build.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/services/hydra-build.nix b/services/hydra-build.nix index 066242a..42aeb13 100644 --- a/services/hydra-build.nix +++ b/services/hydra-build.nix @@ -23,7 +23,6 @@ mkIf flags.hydra-builder { docker.enable = true; libvirtd = { enable = true; - enableKVM = true; }; virtualbox = { #guest.enable = true; From b04e9502f0c83086f2cf1d4f439847be3bebdbd3 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 Jan 2018 21:09:49 +0100 Subject: [PATCH 105/120] make : ajout cible show-time pour avoir les stats de chrony (service ntp) --- Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Makefile b/Makefile index abd7ba8..44d8fec 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,9 @@ GSF=git submodule foreach TIME=time +CHRONY_STATUS=chronyc tracking +CHRONY_STATS=chronyc sources -v + all: rebuild-switch date ##--------- Commandes spécifiques pour NixOS @@ -39,6 +42,11 @@ show-diff-with-current: show-roots: nix-store --gc --print-roots +show-time: + -@$(CHRONY_STATUS) + #CHRONY_STATUS='chronyc tracking' CHRONY_STATS='chronyc sources -v' ${CHRONY_STATS} && watch -d -n 20 "${CHRONY_STATUS} && echo "--" && ${CHRONY_STATS}" + -@watch -d -n 20 "$(CHRONY_STATUS) && echo "--" && $(CHRONY_STATS)" + store-repair: $(TIME) nix-store --verify --check-contents --repair From 62164179edbf39c40c1f959630c5f47f52bf8d07 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 Jan 2018 21:10:27 +0100 Subject: [PATCH 106/120] profil developpement: ajout des autotools --- applications/terminal/developpement.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/applications/terminal/developpement.nix b/applications/terminal/developpement.nix index ad04e6c..7bc4cbc 100644 --- a/applications/terminal/developpement.nix +++ b/applications/terminal/developpement.nix @@ -11,6 +11,11 @@ mkIf flags.developpement { # Paquets environment.systemPackages = with pkgs; [ + # Build / outil de construction + autobuild + autoconf + automake + # Base de données pg_top # monitoring de PostgreSQL sqlite # le moteur de base de données From ab183dbc00219bdb9804d5dc8ea4d3d254db3fd2 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 Jan 2018 21:11:31 +0100 Subject: [PATCH 107/120] ajout d'une option dans tinc pour stocker le nom DNS de la machine --- options.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/options.nix b/options.nix index d5cc47c..c300d1c 100644 --- a/options.nix +++ b/options.nix @@ -77,6 +77,11 @@ let tinc = { enable = mkEnableOption "Enable tinc service"; + dnsFQDN = mkOption { + example = "device.example.net."; + description = "DNS name of host pointing to tunnel IP."; + type = lib.types.string; + }; connectToAddress = mkOption { default = ""; example = "192.168.1.1"; From bb08ab258f5af9479016a8c4ddc59ea2ad38195f Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 5 Jan 2018 21:27:12 +0100 Subject: [PATCH 108/120] =?UTF-8?q?ssh:=20ordre=20de=20param=C3=A9trage=20?= =?UTF-8?q?du=20client=20SSH?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configuration/environment.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration/environment.nix b/configuration/environment.nix index 274fb79..b99bd7d 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -60,7 +60,7 @@ in # Host keys the client accepts - order here is honored by OpenSSH HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256 - KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp256,ecdh-sha2-nistp384,diffie-hellman-group-exchange-sha256 + KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr ''; From e56040b333796ca89b8ddf15a503ac9dbac4d407 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 17 Jan 2018 21:08:25 +0100 Subject: [PATCH 109/120] u2f: import configuration pour activer le support des clefs FIDO / u2f Notes : - import de conf active sur radx - fonctionne avec Chromium & Github - ne fonctionne pas avec Firefox & Github --- configuration/default.nix | 1 + configuration/u2f.nix | 41 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 configuration/u2f.nix diff --git a/configuration/default.nix b/configuration/default.nix index a9984a1..b521f55 100644 --- a/configuration/default.nix +++ b/configuration/default.nix @@ -15,6 +15,7 @@ in ./localisation.nix ./network.nix #./network-ipv6.nix + ./u2f.nix ./udev.nix # commandées par config-generator diff --git a/configuration/u2f.nix b/configuration/u2f.nix new file mode 100644 index 0000000..7898217 --- /dev/null +++ b/configuration/u2f.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge mkThenElse; + annuaire = config.r6d.machines; + currentMachine = annuaire."${config.networking.hostName}"; + flags = currentMachine.configurationFlags; +in + +mkIf true { + # Ajout du support des yobikey & hyperfido + ## source des valeurs udev : https://github.com/Yubico/libu2f-host/blob/master/70-u2f.rules + + ## source car udev sur nixos semble ancien : https://raw.githubusercontent.com/Yubico/libu2f-host/master/70-old-u2f.rules + services.udev.extraRules = '' + # this udev file should be used with udev older than 188 + ACTION!="add|change", GOTO="u2f_end" + + # Yubico YubiKey + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0402|0403|0406|0407|0410", GROUP="plugdev", MODE="0660" + + # Happlink (formerly Plug-Up) Security KEY + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", GROUP="plugdev", MODE="0660" + + # Neowave Keydo and Keydo AES + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1d0|f1ae", GROUP="plugdev", MODE="0660" + + # HyperSecu HyperFIDO + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0880", GROUP="plugdev", MODE="0660" + + LABEL="u2f_end" + + SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", GROUP="audio", MODE="0666", SYMLINK+="rtl_sdr" + ''; + + security.pam.enableU2F = true; + + environment.systemPackages = with pkgs; [ + libu2f-host + ]; +} From 264a78222707687b83ff1b2896404546f8e0b4ef Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 18 Jan 2018 22:56:20 +0100 Subject: [PATCH 110/120] ajout options de config pour quagga --- options.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/options.nix b/options.nix index c300d1c..d6458e4 100644 --- a/options.nix +++ b/options.nix @@ -105,11 +105,26 @@ let Mode = router ConnecTo = bar ''; - description = "Configuration supplémentaire pour tinc"; + description = "Configuration supplémentaire pour tinc."; type = lib.types.string; }; }; + quagga = { + enable = mkEnableOption "Enable Quagga + BGP service"; + bgpConfig = mkOption { + type = types.lines; + default = ""; + example ='' + router bgp 65001 + neighbor 10.0.0.1 remote-as 65001 + ''; + description = '' + BGP configuration statements. + ''; + }; + }; + windowsBoot = { enable = mkEnableOption "Activation du démarrage de Windows par Grub"; drive = mkOption { From 76fce51cf0f00387db70d4d52d05706d1476891d Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Thu, 15 Feb 2018 23:52:30 +0100 Subject: [PATCH 111/120] munin: config notifications --- applications/graphical/client-internet.nix | 2 +- services/monitoring-munin.nix | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/applications/graphical/client-internet.nix b/applications/graphical/client-internet.nix index 750aeaf..5d463cf 100644 --- a/applications/graphical/client-internet.nix +++ b/applications/graphical/client-internet.nix @@ -21,7 +21,7 @@ environment.systemPackages = with pkgs; [ clawsMail hexchat quasselClient - mumble + #mumble pidgin thunderbird diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index 161e38c..ebde24e 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -48,9 +48,22 @@ mkIf flags.munin { hosts = '' [${config.networking.hostName}] address 127.0.0.1 + df._dev_sda2.warning 35 + use_node_name yes + #contacts syslog + contacts email ''; + # http://sametmax.com/monitorez-vos-serveurs-avec-munin-et-notifications-par-email/ + # http://guide.munin-monitoring.org/en/latest/tutorial/alert.html#syntax-of-warning-and-critical extraGlobalConfig = '' - contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/services/munin-muttrc -s "Munin notification for ''${var:host}" root@prunetwork.fr + #--- + #contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/services/munin-muttrc -s "Munin notification for ${config.networking.hostName}" root@ocean.prunetwork.fr + contact.email.command /run/current-system/sw/bin/mutt -F /etc/nixos/base/services/munin-muttrc -s "Munin notification for ${config.networking.hostName}" root@ocean.prunetwork.fr + contact.syslog.command /run/current-system/sw/bin/logger -p user.crit -t "Munin notification for ${config.networking.hostName}" + + #--- + contact.email.always_send ok,warning,critical,unknown + contact.syslog.always_send ok,warning,critical,unknown ''; }; From 3f038be64a83e2690cfd39d9442ab1cd10de01e2 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 2 Mar 2018 07:57:10 +0100 Subject: [PATCH 112/120] template : ajout d'un exemple d'assertion --- module-template.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/module-template.nix b/module-template.nix index 4efc539..3cb37ef 100644 --- a/module-template.nix +++ b/module-template.nix @@ -22,4 +22,11 @@ mkIf true { allowedUDPPorts = [ ]; }; +} // { + assertions = [ + { + assertion = true; + message = "Assetion toujours valide."; + } + ]; } From e94b16fce7e248b37e2d1458997352bc49893c67 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Fri, 2 Mar 2018 08:02:41 +0100 Subject: [PATCH 113/120] ahout de "." dans les descriptions --- options.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/options.nix b/options.nix index d6458e4..97d38da 100644 --- a/options.nix +++ b/options.nix @@ -62,10 +62,10 @@ let configurationOptions = { ipAddress = mkOption { - description = "Adresse IP"; + description = "Adresse IP."; type = lib.types.string; }; - nix-serve-server = mkEnableOption "nix-serve server"; + nix-serve-server = mkEnableOption "nix-serve server."; nix-serve-client = { enable = mkEnableOption "nix-serve client"; servers = mkOption { @@ -76,7 +76,7 @@ let }; tinc = { - enable = mkEnableOption "Enable tinc service"; + enable = mkEnableOption "Enable tinc service."; dnsFQDN = mkOption { example = "device.example.net."; description = "DNS name of host pointing to tunnel IP."; From 3f80d6be6ebd451e14278233c069bd1fa83b6cd3 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 4 Mar 2018 13:13:13 +0100 Subject: [PATCH 114/120] scanner: activation du service + driver HP --- services/scanner.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/scanner.nix b/services/scanner.nix index e78ec55..e320186 100644 --- a/services/scanner.nix +++ b/services/scanner.nix @@ -11,11 +11,20 @@ mkIf flags.scanner { # Paquets environment.systemPackages = with pkgs; [ + # Driver + hplip # Scanner HP + python27Packages.pyqt4 # dépendance hplip + + # Outils pour exploiter les scanners simple-scan ]; # Services hardware.sane.enable = true; + services.saned = { + enable = true; + extraConfig = "192.168.0.0/24"; + }; # Réseau networking.firewall = { From cffcd9bd3e302944bcedb0c615406b084373a749 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sun, 4 Mar 2018 18:29:42 +0100 Subject: [PATCH 115/120] makefile: utilisation de variable globale --- Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 44d8fec..e479a58 100644 --- a/Makefile +++ b/Makefile @@ -43,9 +43,8 @@ show-roots: nix-store --gc --print-roots show-time: - -@$(CHRONY_STATUS) - #CHRONY_STATUS='chronyc tracking' CHRONY_STATS='chronyc sources -v' ${CHRONY_STATS} && watch -d -n 20 "${CHRONY_STATUS} && echo "--" && ${CHRONY_STATS}" - -@watch -d -n 20 "$(CHRONY_STATUS) && echo "--" && $(CHRONY_STATS)" + -@$(CHRONY_STATUS) && $(CHRONY_STATS) + -@watch -d -n 5 "$(CHRONY_STATUS) && echo "--" && $(CHRONY_STATS)" store-repair: $(TIME) nix-store --verify --check-contents --repair From 8dcdea29c15846f5f0ff87b7e7ef5da4d85d79af Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 7 Apr 2018 10:40:02 +0200 Subject: [PATCH 116/120] munin : blocage du module car refuse de s'installer --- services/monitoring-munin.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index ebde24e..e61a95e 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -8,7 +8,8 @@ let in # TODO: changer adresse mail -mkIf flags.munin { +# 2018-04-07 : désactivation car bloquer l'install de nixos +mkIf (flags.munin && false) { # Paquets environment.systemPackages = with pkgs; [ From 0c47de1cb1a5d5ef819b1784766a53d883a97a5e Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Wed, 18 Apr 2018 07:34:36 +0200 Subject: [PATCH 117/120] =?UTF-8?q?l'attribut=20de=20g=C3=A9n=C3=A9ration?= =?UTF-8?q?=20des=20pages=20de=20man=20a=20chang=C3=A9=20de=20nom=20(->=20?= =?UTF-8?q?documentation.man.enable)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configuration/environment.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configuration/environment.nix b/configuration/environment.nix index b99bd7d..9f40af4 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -27,7 +27,8 @@ in boot.cleanTmpDir = true; # Activation des pages de manuel - programs.man.enable = true; + documentation.man.enable = true; + # Paquets environment = { From e2ba892109d4977946edd122ec9e609818e911e3 Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 5 May 2018 21:50:28 +0200 Subject: [PATCH 118/120] /!\ FORCE NIXOS 18.03 pour corriger une infinite recursion sur nix --- Makefile | 2 ++ configuration/environment.nix | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e479a58..2729856 100644 --- a/Makefile +++ b/Makefile @@ -28,6 +28,7 @@ optimise: $(TIME) nix-store --optimise rebuild-build: + nix-channel --add https://nixos.org/channels/nixos-18.03 nixos $(TIME) time nixos-rebuild build --fallback --show-trace rebuild-switch: @@ -50,6 +51,7 @@ store-repair: $(TIME) nix-store --verify --check-contents --repair upgrade: + nix-channel --add https://nixos.org/channels/nixos-18.03 nixos $(TIME) nixos-rebuild switch --upgrade --fallback --show-trace ##--------- Commandes spécifiques pour NixOS -- Opérations non courantes diff --git a/configuration/environment.nix b/configuration/environment.nix index 9f40af4..fc517a1 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -29,7 +29,6 @@ in # Activation des pages de manuel documentation.man.enable = true; - # Paquets environment = { shellAliases = { From 0073763f32983f73736c0f4f54258368b764983f Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 5 May 2018 22:08:17 +0200 Subject: [PATCH 119/120] Revert "munin : blocage du module car refuse de s'installer" -> fonctionne avec nixos stable This reverts commit 8dcdea29c15846f5f0ff87b7e7ef5da4d85d79af. --- services/monitoring-munin.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/monitoring-munin.nix b/services/monitoring-munin.nix index e61a95e..ebde24e 100644 --- a/services/monitoring-munin.nix +++ b/services/monitoring-munin.nix @@ -8,8 +8,7 @@ let in # TODO: changer adresse mail -# 2018-04-07 : désactivation car bloquer l'install de nixos -mkIf (flags.munin && false) { +mkIf flags.munin { # Paquets environment.systemPackages = with pkgs; [ From f2247b6e3e14e4c7e1f7a3410eb72357cfcdff4e Mon Sep 17 00:00:00 2001 From: Jean-Pierre PRUNARET Date: Sat, 5 May 2018 22:12:17 +0200 Subject: [PATCH 120/120] =?UTF-8?q?Revert=20"l'attribut=20de=20g=C3=A9n?= =?UTF-8?q?=C3=A9ration=20des=20pages=20de=20man=20a=20chang=C3=A9=20de=20?= =?UTF-8?q?nom=20(->=20documentation.man.enable)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 0c47de1cb1a5d5ef819b1784766a53d883a97a5e. --- configuration/environment.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configuration/environment.nix b/configuration/environment.nix index fc517a1..d20e764 100644 --- a/configuration/environment.nix +++ b/configuration/environment.nix @@ -27,7 +27,8 @@ in boot.cleanTmpDir = true; # Activation des pages de manuel - documentation.man.enable = true; + programs.man.enable = true; + # Paquets environment = {