diff options
Diffstat (limited to 'makefu')
-rw-r--r-- | makefu/1systems/gum.nix | 4 | ||||
-rw-r--r-- | makefu/1systems/vbob.nix | 26 | ||||
-rw-r--r-- | makefu/2configs/base-gui.nix | 10 | ||||
-rw-r--r-- | makefu/2configs/default.nix | 3 | ||||
-rw-r--r-- | makefu/2configs/hw/tp-x220.nix | 8 | ||||
-rw-r--r-- | makefu/2configs/omo-share.nix | 26 | ||||
-rw-r--r-- | makefu/2configs/temp-share-samba.nix | 28 | ||||
-rw-r--r-- | makefu/3modules/awesome-extra.nix | 40 | ||||
-rw-r--r-- | makefu/3modules/default.nix | 2 | ||||
-rw-r--r-- | makefu/3modules/taskserver.nix | 60 | ||||
-rw-r--r-- | makefu/5pkgs/awesomecfg/full.cfg | 10 | ||||
-rw-r--r-- | makefu/5pkgs/default.nix | 5 | ||||
-rw-r--r-- | makefu/5pkgs/devpi/default.nix | 70 | ||||
-rw-r--r-- | makefu/5pkgs/skytraq-logger/default.nix | 31 | ||||
l--------- | makefu/5pkgs/skytraq-logger/result | 1 | ||||
-rw-r--r-- | makefu/5pkgs/taskserver/default.nix | 43 |
16 files changed, 338 insertions, 29 deletions
diff --git a/makefu/1systems/gum.nix b/makefu/1systems/gum.nix index 7bac4398c..17b2b5093 100644 --- a/makefu/1systems/gum.nix +++ b/makefu/1systems/gum.nix @@ -41,6 +41,8 @@ in { ]; }; + makefu.taskserver.enable = true; + krebs.nginx.servers.cgit = { server-names = [ "cgit.euer.krebsco.de" ]; listen = [ "${external-ip}:80" "${internal-ip}:80" ]; @@ -86,6 +88,8 @@ in { 21032 # tinc-retiolum 21031 + # taskserver + 53589 ]; allowedUDPPorts = [ # tinc diff --git a/makefu/1systems/vbob.nix b/makefu/1systems/vbob.nix index 5e2382f37..8b71b1393 100644 --- a/makefu/1systems/vbob.nix +++ b/makefu/1systems/vbob.nix @@ -1,9 +1,7 @@ -# -# -# { lib, config, pkgs, ... }: { krebs.build.host = config.krebs.hosts.vbob; + makefu.awesome.modkey = "Mod1"; imports = [ # Include the results of the hardware scan. ../. @@ -19,6 +17,10 @@ device ="/dev/disk/by-label/nixstore"; fsType = "ext4"; }; + fileSystems."/var/lib/docker" = { + device ="/dev/disk/by-label/nix-docker"; + fsType = "ext4"; + }; #makefu.buildbot.master.enable = true; # allow vbob to deploy self users.extraUsers = { @@ -28,11 +30,14 @@ }; environment.systemPackages = with pkgs;[ fortclientsslvpn - buildbot - buildbot-slave get logstash + docker + devpi-web + devpi-client ]; + # virtualisation.docker.enable = true; + networking.firewall.allowedTCPPorts = [ 25 @@ -42,18 +47,21 @@ krebs.retiolum = { enable = true; - extraConfig = "Proxy = http global.proxy.alcatel-lucent.com 8000"; connectTo = [ + "omo" "gum" ]; }; - networking.proxy.default = "http://global.proxy.alcatel-lucent.com:8000"; + networking.extraHosts = '' + 172.17.20.190 gitlab + 172.17.62.27 svbittool01 tool + ''; + fileSystems."/media/share" = { fsType = "vboxsf"; device = "share"; - options = "rw,uid=9001,gid=9001"; + options = [ "rw" "uid=9001" "gid=9001" ]; }; } - diff --git a/makefu/2configs/base-gui.nix b/makefu/2configs/base-gui.nix index b807957ba..f7d6991c5 100644 --- a/makefu/2configs/base-gui.nix +++ b/makefu/2configs/base-gui.nix @@ -14,7 +14,6 @@ with config.krebs.lib; let mainUser = config.krebs.build.user.name; - awesomecfg = pkgs.awesomecfg.full; in { imports = [ ]; @@ -36,14 +35,7 @@ in }; # lid switch is handled via button presses services.logind.extraConfig = mkDefault "HandleLidSwitch=ignore"; - nixpkgs.config.packageOverrides = pkgs: rec { - awesome = pkgs.stdenv.lib.overrideDerivation pkgs.awesome (oldAttrs : { - postFixup = '' - cp ${awesomecfg} $out/etc/xdg/awesome/rc.lua - ''; - }); - }; - + makefu.awesome.enable = true; i18n.consoleFont = "Lat2-Terminus16"; fonts = { diff --git a/makefu/2configs/default.nix b/makefu/2configs/default.nix index 20faf7896..afdeec40e 100644 --- a/makefu/2configs/default.nix +++ b/makefu/2configs/default.nix @@ -138,6 +138,9 @@ with config.krebs.lib; "time.apple.com" "time.nist.gov" ]; + nix.extraOptions = '' + auto-optimise-store = true + ''; security.setuidPrograms = [ "sendmail" ]; services.journald.extraConfig = '' diff --git a/makefu/2configs/hw/tp-x220.nix b/makefu/2configs/hw/tp-x220.nix index 0a471bde0..be3d1eb70 100644 --- a/makefu/2configs/hw/tp-x220.nix +++ b/makefu/2configs/hw/tp-x220.nix @@ -4,8 +4,10 @@ with config.krebs.lib; { imports = [ ./tp-x2x0.nix ]; - - boot.kernelModules = [ "kvm-intel" ]; + boot = { + kernelModules = [ "kvm-intel" "acpi_call" ]; + extraModulePackages = [ config.boot.kernelPackages.tp_smapi ]; + }; services.xserver = { videoDriver = "intel"; @@ -15,6 +17,8 @@ with config.krebs.lib; ''; }; + security.rngd.enable = true; + services.xserver.displayManager.sessionCommands ='' xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 8 1 xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 8 2 diff --git a/makefu/2configs/omo-share.nix b/makefu/2configs/omo-share.nix index c943e3d9a..7e9842e14 100644 --- a/makefu/2configs/omo-share.nix +++ b/makefu/2configs/omo-share.nix @@ -13,6 +13,16 @@ in { omo-share = { listen = [ "${local-ip}:80" ]; locations = singleton (nameValuePair "/" '' + + access_log off; + # sendfile off; + # tcp_nopush on; + # aio on; + sendfile on; + sendfile_max_chunk 512k; + directio 512; + aio threads; + mp4; autoindex on; root /media; limit_rate_after 100m; @@ -24,7 +34,6 @@ in { keepalive_timeout 65; keepalive_requests 200; reset_timedout_connection on; - sendfile on; tcp_nopush on; gzip off; ''); @@ -48,7 +57,6 @@ in { browseable = "yes"; "guest ok" = "yes"; }; - emu = { path = "/media/crypt1/emu"; "read only" = "yes"; @@ -61,6 +69,20 @@ in { browseable = "yes"; "guest ok" = "yes"; }; + crypt0-rw = { + path = "/media/crypt0/"; + "read only" = "no"; + browseable = "yes"; + "guest ok" = "no"; + "valid users" = "makefu"; + }; + crypt1-rw = { + path = "/media/crypt1/"; + "read only" = "no"; + browseable = "yes"; + "guest ok" = "no"; + "valid users" = "makefu"; + }; }; extraConfig = '' guest account = smbguest diff --git a/makefu/2configs/temp-share-samba.nix b/makefu/2configs/temp-share-samba.nix new file mode 100644 index 000000000..5f21e3bf7 --- /dev/null +++ b/makefu/2configs/temp-share-samba.nix @@ -0,0 +1,28 @@ +{config, ... }:{ + users.users.smbguest = { + name = "smbguest"; + uid = config.ids.uids.smbguest; + description = "smb guest user"; + home = "/var/empty"; + }; + services.samba = { + enable = true; + shares = { + share-home = { + path = "/home/share/"; + "read only" = "no"; + browseable = "yes"; + "guest ok" = "yes"; + }; + }; + extraConfig = '' + guest account = smbguest + map to guest = bad user + # disable printing + load printers = no + printing = bsd + printcap name = /dev/null + disable spoolss = yes + ''; + }; +} diff --git a/makefu/3modules/awesome-extra.nix b/makefu/3modules/awesome-extra.nix new file mode 100644 index 000000000..b12556486 --- /dev/null +++ b/makefu/3modules/awesome-extra.nix @@ -0,0 +1,40 @@ +{config, lib, pkgs, ... }: + +with config.krebs.lib; +let + cfg = config.makefu.awesome; + out = { + options.makefu.awesome = api; + config = lib.mkIf cfg.enable imp; + }; + api = { + enable = mkEnableOption "awesome custom config"; + modkey = mkOption { + type = types.str; + description = "Modkey to be used"; + default = "Mod4"; + }; + baseConfig = mkOption { + type = types.path; + description = '' + rc.lua file to be used as default + This module will use substituteAll to replace strings before writing to + /etc/xdg/awesome/rc.lua + ''; + default = pkgs.awesomecfg.full; + }; + }; + imp = { + # TODO: configure display manager as well + nixpkgs.config.packageOverrides = pkgs: rec { + awesome = pkgs.stdenv.lib.overrideDerivation pkgs.awesome (oldAttrs : { + postFixup = let + rclua = pkgs.substituteAll { + src = cfg.baseConfig; + inherit (cfg) modkey; + }; + in "cp ${rclua} $out/etc/xdg/awesome/rc.lua"; + }); + }; + }; +in out diff --git a/makefu/3modules/default.nix b/makefu/3modules/default.nix index f007a8418..853bdca04 100644 --- a/makefu/3modules/default.nix +++ b/makefu/3modules/default.nix @@ -4,6 +4,8 @@ _: imports = [ ./snapraid.nix ./umts.nix + ./taskserver.nix + ./awesome-extra.nix ]; } diff --git a/makefu/3modules/taskserver.nix b/makefu/3modules/taskserver.nix new file mode 100644 index 000000000..41247fff3 --- /dev/null +++ b/makefu/3modules/taskserver.nix @@ -0,0 +1,60 @@ +{ config, lib, pkgs, ... }: + +with config.krebs.lib; +let + cfg = config.makefu.taskserver; + + out = { + options.makefu.taskserver = api; + config = lib.mkIf cfg.enable imp; + }; + + api = { + enable = mkEnableOption "taskserver"; + + workingDir = mkOption { + type = types.str; + default = "/var/lib/taskserver"; + }; + + package = mkOption { + type = types.package; + default = pkgs.taskserver; + }; + + + }; + + imp = { + environment.systemPackages = [ cfg.package ]; + systemd.services.taskserver = { + description = "taskd server"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + restartIfChanged = true; + unitConfig = { + Documentation = "http://taskwarrior.org/docs/#taskd" ; + # https://taskwarrior.org/docs/taskserver/configure.html + ConditionPathExists = "${cfg.workingDir}/config"; + }; + serviceConfig = { + Type = "simple"; + ExecStart = "${cfg.package}/bin/taskd server --data ${cfg.workingDir}"; + WorkingDirectory = cfg.workingDir; + PrivateTmp = true; + InaccessibleDirectories = "/home /boot /opt /mnt /media"; + User = "taskd"; + }; + }; + + users.users.taskd = { + uid = genid "taskd"; + home = cfg.workingDir; + createHome = true; + }; + users.groups.taskd.gid = genid "taskd"; + }; + +in +out + diff --git a/makefu/5pkgs/awesomecfg/full.cfg b/makefu/5pkgs/awesomecfg/full.cfg index c1b58aa90..f42aea003 100644 --- a/makefu/5pkgs/awesomecfg/full.cfg +++ b/makefu/5pkgs/awesomecfg/full.cfg @@ -83,13 +83,11 @@ vicious.register(batwidget, vicious.widgets.bat, "$2%", 61, "BAT0") -- {{{ Variable definitions -- Themes define colours, icons, and wallpapers -- beautiful.init("/usr/share/awesome/themes/default/theme.lua") --- ./qbx8r72yzaxpz41zq00902zwajl31b5h-awesome-3.5.6/share/awesome/lib/beautiful.lua --- --- Find the default theme --- --- beautiful.init("/nix/store/qbx8r72yzaxpz41zq00902zwajl31b5h-awesome-3.5.6/share/awesome/themes/default/theme.lua") +-- @awesome@/share/awesome/lib/beautiful.lua +-- beautiful.init("@awesome@/share/awesome/themes/default/theme.lua") +-- Find the default theme function find_default_theme() -- find the default lua theme in the package path for path in package.path:gmatch('([^;]+);') do @@ -115,7 +113,7 @@ browser = "firefox" -- If you do not like this or do not have such a key, -- I suggest you to remap Mod4 to another key using xmodmap or other tools. -- However, you can use another modifier like Mod1, but it may interact with others. -modkey = "Mod4" +modkey = "@modkey@" -- Table of layouts to cover with awful.layout.inc, order matters. local layouts = diff --git a/makefu/5pkgs/default.nix b/makefu/5pkgs/default.nix index 8caab433e..6d227fa6d 100644 --- a/makefu/5pkgs/default.nix +++ b/makefu/5pkgs/default.nix @@ -9,8 +9,11 @@ in alsa-hdspconf = callPackage ./alsa-tools { alsaToolTarget="hdspconf";}; alsa-hdsploader = callPackage ./alsa-tools { alsaToolTarget="hdsploader";}; awesomecfg = callPackage ./awesomecfg {}; - nodemcu-uploader = callPackage ./nodemcu-uploader {}; mycube-flask = callPackage ./mycube-flask {}; + nodemcu-uploader = callPackage ./nodemcu-uploader {}; tw-upload-plugin = callPackage ./tw-upload-plugin {}; + inherit (callPackage ./devpi {}) devpi-web devpi-server; + skytraq-logger = callPackage ./skytraq-logger/ {}; + taskserver = callPackage ./taskserver {}; }; } diff --git a/makefu/5pkgs/devpi/default.nix b/makefu/5pkgs/devpi/default.nix new file mode 100644 index 000000000..0df8ecd2c --- /dev/null +++ b/makefu/5pkgs/devpi/default.nix @@ -0,0 +1,70 @@ +{ pkgs ? import <nixpkgs> {} }: +with pkgs.stdenv.lib; +let + execnet14 = pkgs.python3Packages.buildPythonPackage rec { + name = "execnet-1.4.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/e/execnet/${name}.tar.gz"; + sha256 = "1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn"; + }; + + propagatedBuildInputs = with pkgs.python3Packages; + [ setuptools_scm apipkg ]; + meta = { + description = "rapid multi-Python deployment"; + license = licenses.gpl2; + }; + }; + + devpi-web = pkgs.python3Packages.buildPythonPackage rec { + name = "devpi-web"; + version = "3.0.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/d/devpi-web/devpi-web-${version}.tar.gz"; + sha256 = "156abxyhj17a8cg38hpyr31qkjb61mb2kggsxij4p4xvy9jwkbwi"; + }; + + propagatedBuildInputs = with pkgs.python3Packages; + [ devpi-server pyramid_chameleon beautifulsoup4 Whoosh defusedxml ]; + + meta = { + homepage = https://bitbucket.org/hpk42/devpi; + description = "a web view for devpi-server"; + license = licenses.mit; + maintainers = with maintainers; [ makefu ]; + }; + }; + devpi-server = pkgs.python3Packages.buildPythonPackage rec { + name = "devpi-server"; + version = "3.0.2"; + + # original postFixup adds "import sys; sys.argv[0] = 'devpi-server'" to + # `.devpi-server-wrapped` which + # results in "not existing devpi-server: 'devpi-server'" + postFixup = ""; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/d/devpi-server/devpi-server-${version}.tar.gz"; + sha256 = "14r1024i3x2pb72khyzvi56sh9smpdswmrbc88xvjxnalmzfn99d"; + }; + + propagatedBuildInputs = with pkgs.python3Packages; + [ devpi-common execnet14 itsdangerous pluggy waitress pyramid ]; + buildInputs = with pkgs.python3Packages; [ pytest beautifulsoup4 webtest ]; + + meta = { + homepage = https://bitbucket.org/hpk42/devpi; + description = "Devpi Server"; + license = licenses.mit; + maintainers = with maintainers; [ makefu ]; + }; + }; + +in { + inherit devpi-server; + devpi-web = pkgs.python3.buildEnv.override { + extraLibs = [ devpi-web devpi-server ]; + }; +} diff --git a/makefu/5pkgs/skytraq-logger/default.nix b/makefu/5pkgs/skytraq-logger/default.nix new file mode 100644 index 000000000..1ad81594a --- /dev/null +++ b/makefu/5pkgs/skytraq-logger/default.nix @@ -0,0 +1,31 @@ +{ stdenv, lib, pkgs, fetchFromGitHub, ... }: +stdenv.mkDerivation rec { + name = "skytraq-datalogger-${version}"; + version = "4966a8"; + src = fetchFromGitHub { + owner = "makefu"; + repo = "skytraq-datalogger"; + rev = version ; + sha256 = "1qaszrs7638kc9x4qq4m1yxqmk8jw7wajywvdk4wc2i007p89v3y"; + }; + buildFlags = "CC=gcc"; + makeFlags = "PREFIX=bin/ DESTDIR=$(out)"; + + preInstall = '' + mkdir -p $out/bin + ''; + #patchPhase = '' + # sed -i -e 's#/usr/bin/gcc#gcc#' -e Makefile + #''; + + buildInputs = with pkgs;[ + curl + gnugrep + ]; + + meta = { + homepage = http://github.com/makefu/skytraq-datalogger; + description = "datalogger for skytraq"; + license = lib.licenses.gpl2; + }; +} diff --git a/makefu/5pkgs/skytraq-logger/result b/makefu/5pkgs/skytraq-logger/result new file mode 120000 index 000000000..b132d6257 --- /dev/null +++ b/makefu/5pkgs/skytraq-logger/result @@ -0,0 +1 @@ +/nix/store/xpwdwpw2nkgi16yhpxin2kivaz7z588h-skytraq-datalogger-4966a8
\ No newline at end of file diff --git a/makefu/5pkgs/taskserver/default.nix b/makefu/5pkgs/taskserver/default.nix new file mode 100644 index 000000000..a1502b4d6 --- /dev/null +++ b/makefu/5pkgs/taskserver/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, cmake, libuuid, gnutls, makeWrapper }: + +stdenv.mkDerivation rec { + name = "taskserver-${version}"; + version = "1.1.0"; + + enableParallelBuilding = true; + + src = fetchurl { + url = "http://www.taskwarrior.org/download/taskd-${version}.tar.gz"; + sha256 = "1d110q9vw8g5syzihxymik7hd27z1592wkpz55kya6lphzk8i13v"; + }; + + patchPhase = '' + pkipath=$out/share/taskd/pki + mkdir -p $pkipath + cp -r pki/* $pkipath + echo "patching paths in pki/generate" + sed -i "s#^\.#$pkipath#" $pkipath/generate + for f in $pkipath/generate* ;do + i=$(basename $f) + echo patching $i + sed -i \ + -e 's/which/type -p/g' \ + -e 's#^\. ./vars#if test -e ./vars;then . ./vars; else echo "cannot find ./vars - copy the template from '$pkipath'/vars into the working directory";exit 1; fi#' $f + + echo wrapping $i + makeWrapper $pkipath/$i $out/bin/taskd-pki-$i \ + --prefix PATH : ${gnutls}/bin/ + done + ''; + + buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ cmake libuuid gnutls ]; + + meta = { + description = "Server for synchronising Taskwarrior clients"; + homepage = http://taskwarrior.org; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ matthiasbeyer makefu ]; + }; +} |