]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Bubble up the imports to the main file
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Fri, 4 Jan 2019 16:02:27 +0000 (17:02 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Fri, 4 Jan 2019 16:03:19 +0000 (17:03 +0100)
virtual/eldiron.nix
virtual/packages.nix
virtual/packages/adminer.nix
virtual/packages/connexionswing.nix
virtual/packages/gitweb.nix
virtual/packages/mantisbt.nix
virtual/packages/nextcloud.nix
virtual/packages/ympd.nix

index 30face7aa65529c1a60bc94f3bb6873e197061f0..63106d603da53da37694a1fa8d4c1f659b80fcf7 100644 (file)
@@ -5,8 +5,16 @@
   };
 
   eldiron = { config, pkgs, ... }:
-    let mypkgs = import ./packages.nix;
-        mylibs = import ../libs.nix;
+    with import ../libs.nix;
+    let
+        mypkgs = nixpkgs_unstable.callPackage ./packages.nix {
+          inherit checkEnv fetchedGitPrivate fetchedGithub;
+          gitwebOverride = nixpkgs_unstable.gitweb.overrideAttrs(old: {
+            installPhase = old.installPhase + ''
+              cp -r ${./packages/gitweb} $out/gitweb-theme;
+              '';
+          });
+        };
     in
   {
     # FIXME: they are not overriden in packages.nix
         chown redis /run/redis
         '';
       gitolite =
-        assert mylibs.checkEnv "NIXOPS_GITOLITE_LDAP_PASSWORD";
+        assert checkEnv "NIXOPS_GITOLITE_LDAP_PASSWORD";
         let
-        gitolite_ldap_groups = mylibs.wrap {
+        gitolite_ldap_groups = wrap {
           name = "gitolite_ldap_groups.sh";
           file = ./packages/gitolite_ldap_groups.sh;
           vars = {
 
     environment.etc."ssh/ldap_authorized_keys" = let
       ldap_authorized_keys =
-        assert mylibs.checkEnv "NIXOPS_SSHD_LDAP_PASSWORD";
-        mylibs.wrap {
+        assert checkEnv "NIXOPS_SSHD_LDAP_PASSWORD";
+        wrap {
           name = "ldap_authorized_keys";
           file = ./ldap_authorized_keys.sh;
           vars = {
         };
         ldap = {
           modules = [ "ldap" "authnz_ldap" ];
-          extraConfig = assert mylibs.checkEnv "NIXOPS_HTTP_LDAP_PASSWORD"; ''
+          extraConfig = assert checkEnv "NIXOPS_HTTP_LDAP_PASSWORD"; ''
             <IfModule ldap_module>
               LDAPSharedCacheSize 500000
               LDAPCacheEntries 1024
 
     security.pam.services = let
       pam_ldap = pkgs.pam_ldap;
-      pam_ldap_mysql = assert mylibs.checkEnv "NIXOPS_MYSQL_PAM_PASSWORD";
+      pam_ldap_mysql = assert checkEnv "NIXOPS_MYSQL_PAM_PASSWORD";
               pkgs.writeText "mysql.conf" ''
         host ldap.immae.eu
         base dc=immae,dc=eu
index a115693c374da6382957b933c6c8fceb0f43d7b4..f3689b612d63e83b53739e3a5284b66e1f10df1e 100644 (file)
@@ -1,12 +1,11 @@
-with import ../libs.nix;
-with nixpkgs_unstable;
+{ callPackage, checkEnv, fetchedGitPrivate, fetchedGithub, gitwebOverride }:
 let
-  connexionswing = import ./packages/connexionswing.nix;
-  nextcloud = import ./packages/nextcloud.nix;
-  adminer = import ./packages/adminer.nix;
-  ympd = import ./packages/ympd.nix;
-  gitweb = import ./packages/gitweb.nix;
-  mantisbt = import ./packages/mantisbt.nix;
+  connexionswing = callPackage ./packages/connexionswing.nix { inherit checkEnv fetchedGitPrivate; };
+  nextcloud = callPackage ./packages/nextcloud.nix { inherit checkEnv; };
+  adminer = callPackage ./packages/adminer.nix {};
+  ympd = callPackage ./packages/ympd.nix {};
+  gitweb = callPackage ./packages/gitweb.nix { gitweb = gitwebOverride; };
+  mantisbt = callPackage ./packages/mantisbt.nix { inherit checkEnv fetchedGithub; };
 in
   {
     inherit adminer;
index 35fa791932fa128d597989a4e8d78ee3c406463d..034f0d47124d0aa5d6574ab79090714b1ad931d3 100644 (file)
@@ -1,11 +1,10 @@
-with import ../../libs.nix;
-with nixpkgs_unstable;
+{ stdenv, fetchurl, nginx }:
 let
   adminer = rec {
-    webRoot = pkgs.stdenv.mkDerivation rec {
+    webRoot = stdenv.mkDerivation rec {
       version = "4.7.0";
       name = "adminer-${version}";
-      src = pkgs.fetchurl {
+      src = fetchurl {
         url = "https://www.adminer.org/static/download/${version}/${name}.php";
         sha256 = "1qq2g7rbfh2vrqfm3g0bz0qs057b049n0mhabnsbd1sgnpvnc5z7";
       };
@@ -48,7 +47,7 @@ let
       alias = webRoot;
       index = "index.php";
       extraConfig = ''
-        include ${pkgs.nginx}/conf/fastcgi.conf;
+        include ${nginx}/conf/fastcgi.conf;
         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
         fastcgi_param HTTP_PROXY "";
         fastcgi_param SCRIPT_FILENAME ${webRoot}/index.php;
index 4c1da369f3a7268322ec80e55a5b07bda6a232e8..f178e495749251c0f11efac8ebec7d7b2a17f366 100644 (file)
@@ -1,5 +1,4 @@
-with import ../../libs.nix;
-with nixpkgs_unstable;
+{ lib, checkEnv, writeText, fetchedGitPrivate, stdenv, php, git, cacert }:
 let
   connexionswing = { environment ? "dev" }: rec {
     varDir = "/var/lib/connexionswing_${environment}";
@@ -11,7 +10,7 @@ let
       assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_MYSQL_NAME";
       assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_SECRET";
       assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_EMAIL";
-      pkgs.writeText "parameters.yml" ''
+      writeText "parameters.yml" ''
         # This file is auto-generated during the composer install
         parameters:
             database_host: db-1.immae.eu
@@ -139,15 +138,15 @@ let
       fi
       '';
     };
-    webappDir = pkgs.stdenv.mkDerivation (fetchedGitPrivate ./connexionswing_master.json // rec {
+    webappDir = stdenv.mkDerivation (fetchedGitPrivate ./connexionswing_master.json // rec {
       # FIXME: can we do better than symlink?
       # FIXME: imagick optional
       # FIXME: initial sync
       # FIXME: backup
       # FIXME: replace with pkgs.phpPackages.composer
       buildPhase = ''
-        export GIT_SSL_CAINFO=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
-        export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
+        export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
+        export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
 
         ln -sf ../../../../../${varDir}/{medias,uploads} web/images/
         ln -sf ${configRoot} app/config/parameters.yml
@@ -162,10 +161,10 @@ let
         cp -a . $out
         '';
       buildInputs = [
-        pkgs.php pkgs.git pkgs.cacert
+        php git cacert
       ];
     });
     webRoot = "${webappDir}/web";
   };
-in 
+in
   connexionswing
index 437a11a31cf5661a4e19001b6a2c6fef42223cbf..1c2430a59d553f0a5c3542a42491e3bbb409830a 100644 (file)
@@ -1,72 +1,64 @@
-with import ../../libs.nix;
-with nixpkgs_unstable;
-let
-  gitweb = rec {
-    varDir = "/var/lib/gitolite";
-    webRoot = pkgs.gitweb.overrideAttrs(old: {
-      installPhase = old.installPhase + ''
-        cp -r ${./gitweb} $out/gitweb-theme;
-        '';
-    });
-    config = pkgs.writeText "gitweb.conf" ''
-      $git_temp = "/tmp";
+{ gitweb, writeText, gitolite, git }:
+rec {
+  varDir = "/var/lib/gitolite";
+  webRoot = gitweb;
+  config = writeText "gitweb.conf" ''
+    $git_temp = "/tmp";
 
-      # The directories where your projects are. Must not end with a
-      # slash.
-      $projectroot = "${varDir}/repositories";
+    # The directories where your projects are. Must not end with a
+    # slash.
+    $projectroot = "${varDir}/repositories";
 
-      $projects_list = "${varDir}/projects.list";
-      $strict_export = "true";
+    $projects_list = "${varDir}/projects.list";
+    $strict_export = "true";
 
-      # Base URLs for links displayed in the web interface.
-      our @git_base_url_list = qw(ssh://gitolite@git.immae.eu https://git.immae.eu);
+    # Base URLs for links displayed in the web interface.
+    our @git_base_url_list = qw(ssh://gitolite@git.immae.eu https://git.immae.eu);
 
-      $feature{'blame'}{'default'} = [1];
-      $feature{'avatar'}{'default'} = ['gravatar'];
-      $feature{'highlight'}{'default'} = [1];
+    $feature{'blame'}{'default'} = [1];
+    $feature{'avatar'}{'default'} = ['gravatar'];
+    $feature{'highlight'}{'default'} = [1];
 
-      @stylesheets = ("gitweb-theme/gitweb.css");
-      $logo = "gitweb-theme/git-logo.png";
-      $favicon = "gitweb-theme/git-favicon.png";
-      $javascript = "gitweb-theme/gitweb.js";
-      $logo_url = "https://git.immae.eu/";
-      $projects_list_group_categories = "true";
-      $projects_list_description_width = 60;
-      $project_list_default_category = "__Others__";
-      '';
-    apache = {
-      user = "wwwrun";
-      group = "wwwrun";
-      modules = [ "cgid" ];
-      vhostConf = ''
-        SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/
-        ScriptAliasMatch \
-                    "(?x)^/(.*/(HEAD | \
-                                    info/refs | \
-                                    objects/(info/[^/]+ | \
-                                            [0-9a-f]{2}/[0-9a-f]{38} | \
-                                            pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
-                                    git-(upload|receive)-pack))$" \
-                    ${pkgs.git}/libexec/git-core/git-http-backend/$1
+    @stylesheets = ("gitweb-theme/gitweb.css");
+    $logo = "gitweb-theme/git-logo.png";
+    $favicon = "gitweb-theme/git-favicon.png";
+    $javascript = "gitweb-theme/gitweb.js";
+    $logo_url = "https://git.immae.eu/";
+    $projects_list_group_categories = "true";
+    $projects_list_description_width = 60;
+    $project_list_default_category = "__Others__";
+    '';
+  apache = {
+    user = "wwwrun";
+    group = "wwwrun";
+    modules = [ "cgid" ];
+    vhostConf = ''
+      SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/
+      ScriptAliasMatch \
+                  "(?x)^/(.*/(HEAD | \
+                                  info/refs | \
+                                  objects/(info/[^/]+ | \
+                                          [0-9a-f]{2}/[0-9a-f]{38} | \
+                                          pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
+                                  git-(upload|receive)-pack))$" \
+                  ${git}/libexec/git-core/git-http-backend/$1
 
-        <Directory "${pkgs.gitolite}">
-          Require all granted
-        </Directory>
-        <Directory "${pkgs.git}/libexec/git-core">
-          Require all granted
-        </Directory>
-        <Directory "${webRoot}">
-          DirectoryIndex gitweb.cgi
-          Require all granted
-          AllowOverride None
-          Options ExecCGI FollowSymLinks
-          <Files gitweb.cgi>
-            SetHandler cgi-script
-            SetEnv  GITWEB_CONFIG  "${config}"
-          </Files>
-        </Directory>
-        '';
+      <Directory "${gitolite}">
+        Require all granted
+      </Directory>
+      <Directory "${git}/libexec/git-core">
+        Require all granted
+      </Directory>
+      <Directory "${webRoot}">
+        DirectoryIndex gitweb.cgi
+        Require all granted
+        AllowOverride None
+        Options ExecCGI FollowSymLinks
+        <Files gitweb.cgi>
+          SetHandler cgi-script
+          SetEnv  GITWEB_CONFIG  "${config}"
+        </Files>
+      </Directory>
+      '';
   };
-};
-in 
-  gitweb
+}
index f136ea53bbd5f11af168b8577b9b48a7371e749b..82fc8ad15e8f424f957046311a9ceae17b69b7a8 100644 (file)
@@ -1,5 +1,4 @@
-with import ../../libs.nix;
-with nixpkgs_unstable;
+{ lib, checkEnv, writeText, stdenv, fetchurl, fetchedGithub }:
 let
   # FIXME: check that source-integration and slack still work
   mantisbt = let
@@ -23,7 +22,7 @@ let
       assert checkEnv "NIXOPS_MANTISBT_DB_PASSWORD";
       assert checkEnv "NIXOPS_MANTISBT_MASTER_SALT";
       assert checkEnv "NIXOPS_MANTISBT_LDAP_PASSWORD";
-      pkgs.writeText "config_inc.php" ''
+      writeText "config_inc.php" ''
       <?php
       $g_hostname              = 'db-1.immae.eu';
       $g_db_username           = 'mantisbt';
@@ -102,7 +101,7 @@ let
     phpFpm = rec {
       basedir = builtins.concatStringsSep ":" (
         [ webRoot config ]
-        ++ pkgs.lib.attrsets.mapAttrsToList (name: value: value) plugins);
+        ++ lib.attrsets.mapAttrsToList (name: value: value) plugins);
       socket = "/var/run/phpfpm/mantisbt.sock";
       pool = ''
         listen = ${socket}
index ff4b923d9d11ce132a8dc81430add787c2b90b57..d332a1047e9e85c3481386e270fe28445c0c1bb0 100644 (file)
@@ -1,11 +1,10 @@
-with import ../../libs.nix;
-with nixpkgs_unstable;
+{ stdenv, fetchurl, checkEnv, writeText, lib }:
 let
   nextcloud = let
     # FIXME: initial sync
     # FIXME: backup
     buildApp = { appName, version, url, sha256, installPhase ? "mkdir -p $out && cp -R . $out/" }:
-      pkgs.stdenv.mkDerivation rec {
+      stdenv.mkDerivation rec {
         name = "nextcloud-app-${appName}-${version}";
         inherit version;
         phases = "unpackPhase installPhase";
@@ -106,7 +105,7 @@ let
       assert checkEnv "NIXOPS_NEXTCLOUD_INSTANCE_ID";
       assert checkEnv "NIXOPS_NEXTCLOUD_SECRET";
       assert checkEnv "NIXOPS_NEXTCLOUD_REDIS_DB_INDEX";
-      pkgs.writeText "config.php" ''
+      writeText "config.php" ''
       <?php
       $CONFIG = array (
         'instanceid' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_INSTANCE_ID"}',
@@ -183,16 +182,16 @@ let
         rm -r $out/config
         ln -sf ${config} $out/config
         ${builtins.concatStringsSep "\n" (
-          pkgs.lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/apps/${name}") apps
+          lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/apps/${name}") apps
         )}
       '';
 
       meta = {
         description = "Sharing solution for files, calendars, contacts and more";
         homepage = https://nextcloud.com;
-        maintainers = with stdenv.lib.maintainers; [ schneefux bachp globin fpletz ];
-        license = stdenv.lib.licenses.agpl3Plus;
-        platforms = with stdenv.lib.platforms; unix;
+        maintainers = with lib.maintainers; [ schneefux bachp globin fpletz ];
+        license = lib.licenses.agpl3Plus;
+        platforms = with lib.platforms; unix;
       };
     };
     activationScript = {
@@ -229,7 +228,7 @@ let
     phpFpm = rec {
       basedir = builtins.concatStringsSep ":" (
         [ webRoot varDir config ]
-        ++ pkgs.lib.attrsets.mapAttrsToList (name: value: value) apps);
+        ++ lib.attrsets.mapAttrsToList (name: value: value) apps);
       socket = "/var/run/phpfpm/nextcloud.sock";
       pool = ''
         listen = ${socket}
index 643c860049b8e1c003c6e7247e9ddd32af16e152..74bf2e5d202c65449a6af4e152207405eafdcd9b 100644 (file)
@@ -1,5 +1,4 @@
-with import ../../libs.nix;
-with nixpkgs_unstable;
+{}:
 let
   ympd = rec {
     config = {