summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krebs/3modules/makefu/default.nix8
-rw-r--r--krebs/3modules/tinc.nix46
-rw-r--r--makefu/1systems/gum/config.nix7
-rw-r--r--makefu/1systems/gum/hetznercloud/default.nix50
-rw-r--r--makefu/1systems/gum/hetznercloud/doit13
-rw-r--r--makefu/1systems/gum/hetznercloud/network.nix35
-rw-r--r--makefu/1systems/gum/hetznercloud/sfdisk.part6
-rw-r--r--tv/2configs/retiolum.nix2
-rw-r--r--tv/5pkgs/default.nix57
-rw-r--r--tv/5pkgs/override/anbox.nix72
-rw-r--r--tv/5pkgs/override/default.nix24
-rw-r--r--tv/5pkgs/override/dhcpcd.nix7
-rw-r--r--tv/5pkgs/override/fzf/complete1.patch (renamed from tv/5pkgs/override/fzf.complete1.patch)0
-rw-r--r--tv/5pkgs/override/fzf/default.nix9
-rw-r--r--tv/5pkgs/override/gitAndTools.nix5
-rw-r--r--tv/5pkgs/override/input-fonts.nix13
-rw-r--r--tv/5pkgs/override/nix-prefetch-github.nix47
-rw-r--r--tv/5pkgs/simple/cr.nix16
-rw-r--r--tv/5pkgs/simple/ff.nix5
19 files changed, 280 insertions, 142 deletions
diff --git a/krebs/3modules/makefu/default.nix b/krebs/3modules/makefu/default.nix
index 68484a102..d63277132 100644
--- a/krebs/3modules/makefu/default.nix
+++ b/krebs/3modules/makefu/default.nix
@@ -154,6 +154,8 @@ in {
"krebsco.de" = ''
latte.euer IN A ${nets.internet.ip4.addr}
rss.euer IN A ${nets.internet.ip4.addr}
+ o.euer IN A ${nets.internet.ip4.addr}
+ bw.euer IN A ${nets.internet.ip4.addr}
'';
};
cores = 4;
@@ -217,7 +219,6 @@ in {
mon.euer IN A ${nets.internet.ip4.addr}
netdata.euer IN A ${nets.internet.ip4.addr}
nixos.unstable IN CNAME krebscode.github.io.
- o.euer IN A ${nets.internet.ip4.addr}
photostore IN A ${nets.internet.ip4.addr}
pigstarter IN CNAME makefu.github.io.
share.euer IN A ${nets.internet.ip4.addr}
@@ -233,14 +234,13 @@ in {
maps.work.euer IN A ${nets.internet.ip4.addr}
play.work.euer IN A ${nets.internet.ip4.addr}
ul.work.euer IN A ${nets.internet.ip4.addr}
- bw.euer IN A ${nets.internet.ip4.addr}
'';
};
cores = 8;
nets = rec {
internet = {
- ip4.addr = "144.76.26.247";
- ip6.addr = "2a01:4f8:191:12f6::2";
+ ip4.addr = "142.132.189.140";
+ ip6.addr = "fe80::9400:1ff:fe24:33f4";
aliases = [
"gum.i"
];
diff --git a/krebs/3modules/tinc.nix b/krebs/3modules/tinc.nix
index 1b28628d6..38e310908 100644
--- a/krebs/3modules/tinc.nix
+++ b/krebs/3modules/tinc.nix
@@ -26,9 +26,8 @@ with import <stockholm/lib>;
Port = ${toString tinc.config.host.nets.${netname}.tinc.port}
${tinc.config.extraConfig}
'';
- "tinc-up" = pkgs.writeScript "${netname}-tinc-up" ''
- #!/bin/sh
- ip link set ${netname} up
+ "tinc-up" = pkgs.writeDash "${netname}-tinc-up" ''
+ ${tinc.config.iproutePackage}/sbin/ip link set ${netname} up
${tinc.config.tincUp}
'';
});
@@ -60,14 +59,15 @@ with import <stockholm/lib>;
type = types.str;
default = let
net = tinc.config.host.nets.${netname};
+ iproute = tinc.config.iproutePackage;
in ''
${optionalString (net.ip4 != null) /* sh */ ''
- ip -4 addr add ${net.ip4.addr} dev ${netname}
- ip -4 route add ${net.ip4.prefix} dev ${netname}
+ ${iproute}/sbin/ip -4 addr add ${net.ip4.addr} dev ${netname}
+ ${iproute}/sbin/ip -4 route add ${net.ip4.prefix} dev ${netname}
''}
${optionalString (net.ip6 != null) /* sh */ ''
- ip -6 addr add ${net.ip6.addr} dev ${netname}
- ip -6 route add ${net.ip6.prefix} dev ${netname}
+ ${iproute}/sbin/ip -6 addr add ${net.ip6.addr} dev ${netname}
+ ${iproute}/sbin/ip -6 route add ${net.ip6.prefix} dev ${netname}
''}
${tinc.config.tincUpExtra}
'';
@@ -238,39 +238,41 @@ with import <stockholm/lib>;
description = "Tinc daemon for ${netname}";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- path = [
- cfg.iproutePackage
- cfg.tincPackage
- ];
- reloadIfChanged = true;
+ # Restart the service in a single step in order to prevent potential
+ # connection timeouts and subsequent issues while deploying via tinc.
+ stopIfChanged = false;
serviceConfig = {
Restart = "always";
LoadCredential = filter (x: x != "") [
(optionalString (cfg.privkey_ed25519 != null)
- "ed25519_key:${cfg.privkey_ed25519}"
+ "ed25519_key.priv:${cfg.privkey_ed25519}"
)
- "rsa_key:${cfg.privkey}"
+ "rsa_key.priv:${cfg.privkey}"
];
ExecStartPre = pkgs.writers.writeDash "init-tinc-${netname}" ''
+ set -efu
${pkgs.coreutils}/bin/mkdir -p /etc/tinc
- ${pkgs.rsync}/bin/rsync -vaL --delete \
+ ${pkgs.rsync}/bin/rsync -Lacv --delete \
--chown ${cfg.user.name} \
--chmod u=rwX,g=rX \
+ --exclude='/*.priv' \
${cfg.confDir}/ /etc/tinc/${netname}/
+ ${optionalString (cfg.privkey_ed25519 != null) /* sh */ ''
+ ${pkgs.coreutils}/bin/ln -fns \
+ "$CREDENTIALS_DIRECTORY"/ed25519_key.priv \
+ /etc/tinc/${netname}/
+ ''}
+ ${pkgs.coreutils}/bin/ln -fns \
+ "$CREDENTIALS_DIRECTORY"/rsa_key.priv \
+ /etc/tinc/${netname}/
'';
ExecStart = toString [
"${cfg.tincPackage}/sbin/tincd"
"-D"
"-U ${cfg.user.name}"
- "-c /etc/tinc/${netname}"
"-d 0"
- (optionalString (cfg.privkey_ed25519 != null)
- "-o Ed25519PrivateKeyFile=\${CREDENTIALS_DIRECTORY}/ed25519_key"
- )
- "-o PrivateKeyFile=\${CREDENTIALS_DIRECTORY}/rsa_key"
- "--pidfile=/var/run/tinc.${netname}.pid"
+ "-n ${netname}"
];
- ExecReload = "${cfg.tincPackage}/sbin/tinc -n ${netname} restart";
SyslogIdentifier = netname;
};
}) config.krebs.tinc;
diff --git a/makefu/1systems/gum/config.nix b/makefu/1systems/gum/config.nix
index 089fc8e9f..540106004 100644
--- a/makefu/1systems/gum/config.nix
+++ b/makefu/1systems/gum/config.nix
@@ -8,7 +8,7 @@ let
in {
imports = [
<stockholm/makefu>
- ./hardware-config.nix
+ ./hetznercloud
{
users.users.lass = {
uid = 19002;
@@ -42,7 +42,7 @@ in {
<stockholm/makefu/2configs/tools/core.nix>
<stockholm/makefu/2configs/tools/dev.nix>
<stockholm/makefu/2configs/tools/sec.nix>
- <stockholm/makefu/2configs/tools/desktop.nix>
+ #<stockholm/makefu/2configs/tools/desktop.nix>
<stockholm/makefu/2configs/zsh-user.nix>
<stockholm/makefu/2configs/mosh.nix>
@@ -109,7 +109,6 @@ in {
<stockholm/makefu/2configs/share/gum.nix> # samba sahre
<stockholm/makefu/2configs/torrent/rtorrent.nix>
# <stockholm/makefu/2configs/sickbeard>
- <stockholm/makefu/2configs/bitwarden.nix>
{ nixpkgs.config.allowUnfree = true; }
#<stockholm/makefu/2configs/retroshare.nix>
@@ -189,7 +188,7 @@ in {
];
# makefu.dl-dir = "/var/download";
- makefu.dl-dir = "/media/cloud/download";
+ makefu.dl-dir = "/media/cloud/download/finished";
services.openssh.hostKeys = lib.mkForce [
{ bits = 4096; path = (toString <secrets/ssh_host_rsa_key>); type = "rsa"; }
diff --git a/makefu/1systems/gum/hetznercloud/default.nix b/makefu/1systems/gum/hetznercloud/default.nix
new file mode 100644
index 000000000..cfcd894af
--- /dev/null
+++ b/makefu/1systems/gum/hetznercloud/default.nix
@@ -0,0 +1,50 @@
+{ config, lib, pkgs, modulesPath, ... }:
+{
+
+ imports =
+ [ ./network.nix
+ (modulesPath + "/profiles/qemu-guest.nix")
+ ];
+
+ # Disk
+ boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sd_mod" "sr_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "rpool/root";
+ fsType = "zfs";
+ };
+
+ fileSystems."/home" =
+ { device = "rpool/home";
+ fsType = "zfs";
+ };
+
+ fileSystems."/nix" =
+ { device = "rpool/nix";
+ fsType = "zfs";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/sda1";
+ fsType = "vfat";
+ };
+
+ swapDevices = [ ];
+ boot.loader.grub.device = "/dev/sda";
+
+ networking.hostId = "3150697b"; # required for zfs use
+ boot.tmpOnTmpfs = true;
+ boot.supportedFilesystems = [ "zfs" ];
+
+ boot.loader.grub.enable = true;
+ boot.loader.grub.version = 2;
+ boot.loader.grub.copyKernels = true;
+ boot.zfs.devNodes = "/dev"; # fixes some virtualmachine issues
+ boot.kernelParams = [
+ "boot.shell_on_fail"
+ "panic=30" "boot.panic_on_fail" # reboot the machine upon fatal boot issues
+ ];
+}
diff --git a/makefu/1systems/gum/hetznercloud/doit b/makefu/1systems/gum/hetznercloud/doit
new file mode 100644
index 000000000..45798587a
--- /dev/null
+++ b/makefu/1systems/gum/hetznercloud/doit
@@ -0,0 +1,13 @@
+ROOT_DEVICE=/dev/sda2
+NIXOS_BOOT=/dev/sda1
+
+zpool create -o ashift=12 -o altroot=/mnt rpool $ROOT_DEVICE
+zfs create -o mountpoint=legacy rpool/root
+zfs create -o mountpoint=legacy rpool/home
+zfs create -o mountpoint=legacy rpool/nix
+mount -t zfs rpool/root /mnt
+mkdir /mnt/{home,nix,boot}
+mount -t zfs rpool/home /mnt/home
+mount -t zfs rpool/nix /mnt/nix
+mount $NIXOS_BOOT /mnt/boot/
+
diff --git a/makefu/1systems/gum/hetznercloud/network.nix b/makefu/1systems/gum/hetznercloud/network.nix
new file mode 100644
index 000000000..24fe3842f
--- /dev/null
+++ b/makefu/1systems/gum/hetznercloud/network.nix
@@ -0,0 +1,35 @@
+{ config, lib, pkgs, modulesPath, ... }:
+let
+ external-mac = "96:00:01:24:33:f4";
+ external-gw = "172.31.1.1";
+ external-ip = "142.132.189.140";
+ external-ip6 = "2a01:4f8:1c17:5cdf::2/64";
+ external-gw6 = "fe80::1";
+ external-netmask = 32;
+ external-netmask6 = 64;
+ internal-ip = config.krebs.build.host.nets.retiolum.ip4.addr;
+ ext-if = "et0"; # gets renamed on the fly
+in
+{
+ makefu.server.primary-itf = ext-if;
+ services.udev.extraRules = ''
+ SUBSYSTEM=="net", ATTR{address}=="${external-mac}", NAME="${ext-if}"
+ '';
+ networking = {
+ interfaces."${ext-if}" = {
+ useDHCP = true;
+ };
+ #ipv4.addresses = [{
+ # address = external-ip;
+ # prefixLength = external-netmask;
+ #}];
+ #ipv6.addresses = [{
+ # address = external-ip6;
+ # prefixLength = external-netmask6;
+ # }];
+ #};
+ #defaultGateway6 = { address = external-gw6; interface = ext-if; };
+ #defaultGateway = external-gw;
+ nameservers = [ "1.1.1.1" ];
+ };
+}
diff --git a/makefu/1systems/gum/hetznercloud/sfdisk.part b/makefu/1systems/gum/hetznercloud/sfdisk.part
new file mode 100644
index 000000000..fb375b15a
--- /dev/null
+++ b/makefu/1systems/gum/hetznercloud/sfdisk.part
@@ -0,0 +1,6 @@
+label: gpt
+device: /dev/sda
+unit: sectors
+1 : size=524288 type=0FC63DAF-8483-4772-8E79-3D69D8477DE4
+4 : size=4096 type=21686148-6449-6E6F-744E-656564454649
+2 : type=0FC63DAF-8483-4772-8E79-3D69D8477DE4
diff --git a/tv/2configs/retiolum.nix b/tv/2configs/retiolum.nix
index 9940b1026..3c3b2adf0 100644
--- a/tv/2configs/retiolum.nix
+++ b/tv/2configs/retiolum.nix
@@ -6,9 +6,9 @@ with import <stockholm/lib>;
krebs.tinc.retiolum = {
enable = true;
connectTo = filter (ne config.krebs.build.host.name) [
- "gum"
"ni"
"prism"
+ "eve"
];
extraConfig = ''
LocalDiscovery = yes
diff --git a/tv/5pkgs/default.nix b/tv/5pkgs/default.nix
index cae5da112..2b9bdeeba 100644
--- a/tv/5pkgs/default.nix
+++ b/tv/5pkgs/default.nix
@@ -1,47 +1,20 @@
with import <stockholm/lib>;
+let
+ pushBack = x: xs:
+ if elem x xs then
+ remove x xs ++ [ x ]
+ else
+ names;
+in
self: super:
# Import files and subdirectories like they are overlays.
-foldl' mergeAttrs {}
- (map
- (name: import (./. + "/${name}") self super)
- (filter
- (name: name != "default.nix" && !hasPrefix "." name)
- (attrNames (readDir ./.))))
-
-//
-
-{
- cr = self.writeDashBin "cr" ''
- set -efu
- if test -n "''${XDG_RUNTIME_DIR-}"; then
- cache_dir=$XDG_RUNTIME_DIR/chromium-disk-cache
- else
- cache_dir=/tmp/chromium-disk-cache_$LOGNAME
- fi
- export LC_TIME=de_DE.utf8
- exec ${self.chromium}/bin/chromium \
- --ssl-version-min=tls1 \
- --disk-cache-dir="$cache_dir" \
- --disk-cache-size=50000000 \
- "$@"
- '';
-
- dhcpcd = overrideDerivation super.dhcpcd (old: {
- configureFlags = old.configureFlags ++ [
- "--dbdir=/var/lib/dhcpcd"
- ];
- });
-
- gitAndTools = super.gitAndTools // {
- inherit (self) diff-so-fancy;
- };
-
- ff = self.writeDashBin "ff" ''
- exec ${self.firefoxWrapper}/bin/firefox "$@"
- '';
-
- gnupg = self.gnupg22;
-
-}
+fix
+ (foldl' (flip extends) (_: super)
+ (map
+ (name: import (./. + "/${name}"))
+ (filter
+ (name: name != "default.nix" && !hasPrefix "." name)
+ (pushBack "override"
+ (attrNames (readDir ./.))))))
diff --git a/tv/5pkgs/override/anbox.nix b/tv/5pkgs/override/anbox.nix
new file mode 100644
index 000000000..394061733
--- /dev/null
+++ b/tv/5pkgs/override/anbox.nix
@@ -0,0 +1,72 @@
+self: super:
+
+# https://github.com/NixOS/nixpkgs/pull/125600
+super.anbox.overrideAttrs (old:
+ assert old.version == "unstable-2020-11-29";
+ rec {
+ version = "unstable-2021-05-26";
+
+ src = self.fetchFromGitHub {
+ owner = old.pname;
+ repo = old.pname;
+ rev = "ad377ff25354d68b76e2b8da24a404850f8514c6";
+ sha256 = "1bj07ixwbkli4ycjh41mnqdbsjz9haiwg2nhf9anbi29z1d0819w";
+ fetchSubmodules = true;
+ };
+
+ postPatch = old.patchPhase;
+
+ # patchPhase() from <nixpkgs/pkgs/stdenv/generic/setup.sh>
+ # TODO patchPhase = default.patchPhase; or something
+ patchPhase = ''
+ runHook prePatch
+
+ for i in ''${patches:-}; do
+ header "applying patch $i" 3
+ local uncompress=cat
+ case "$i" in
+ *.gz)
+ uncompress="gzip -d"
+ ;;
+ *.bz2)
+ uncompress="bzip2 -d"
+ ;;
+ *.xz)
+ uncompress="xz -d"
+ ;;
+ *.lzma)
+ uncompress="lzma -d"
+ ;;
+ esac
+ # "2>&1" is a hack to make patch fail if the decompressor fails (nonexistent patch, etc.)
+ # shellcheck disable=SC2086
+ $uncompress < "$i" 2>&1 | patch ''${patchFlags:--p1}
+ done
+
+ runHook postPatch
+ '';
+
+ patches = [
+ # Fixes compatibility with lxc 4
+ (self.fetchpatch {
+ url = "https://git.alpinelinux.org/aports/plain/community/anbox/lxc4.patch?id=64243590a16aee8d4e72061886fc1b15256492c3";
+ sha256 = "1da5xyzyjza1g2q9nbxb4p3njj2sf3q71vkpvmmdphia5qnb0gk5";
+ })
+ # Wait 10× more time when starting
+ # Not *strictly* needed, but helps a lot on slower hardware
+ (self.fetchpatch {
+ url = "https://git.alpinelinux.org/aports/plain/community/anbox/give-more-time-to-start.patch?id=058b56d4b332ef3379551b343bf31e0f2004321a";
+ sha256 = "0iiz3c7fgfgl0dvx8sf5hv7a961xqnihwpz6j8r0ib9v8piwxh9a";
+ })
+ # Ensures generated desktop files work on store path change
+ (self.fetchpatch {
+ url = "https://raw.githubusercontent.com/NixOS/nixpkgs/fdf7b4be1a659ed8b96586c2fc8ff90850e25feb/pkgs/os-specific/linux/anbox/0001-NixOS-Use-anbox-from-PATH-in-desktop-files.patch";
+ sha256 = "173z84g1r8h367a2dgk6945is6vxg4j1hs2hkfd3m3bbpwfw9221";
+ })
+ # Provide window icons
+ (self.fetchpatch {
+ url = "https://github.com/samueldr/anbox/commit/2387f4fcffc0e19e52e58fb6f8264fbe87aafe4d.patch";
+ sha256 = "12lmr0kxw1n68g3abh1ak5awmpczfh75c26f53jc8qpvdvv1ywha";
+ })
+ ];
+})
diff --git a/tv/5pkgs/override/default.nix b/tv/5pkgs/override/default.nix
index 4fb2e8061..4cc4749d0 100644
--- a/tv/5pkgs/override/default.nix
+++ b/tv/5pkgs/override/default.nix
@@ -1,24 +1,4 @@
with import <stockholm/lib>;
-self: super: {
- fzf = super.fzf.overrideAttrs (old: {
- # XXX cannot use `patches` because fzf has a custom patchPhase
- patchPhase = ''
- patch -Np1 < ${./fzf.complete1.patch}
- ${old.patchPhase or ""}
- '';
- });
- input-fonts = super.input-fonts.overrideAttrs (old: rec {
- src = self.fetchzip {
- url = "http://xu.r/~tv/mirrors/input-fonts/Input-Font-2.zip";
- sha256 = "1q58x92nm7dk9ylp09pvgj74nxkywvqny3xmfighnsl30dv42fcr";
- stripRoot = false;
- };
- sourceRoot = null;
- outputHash = null;
- outputHashAlgo = null;
- outputHashMode = null;
- });
+self: super:
- nix-prefetch-github =
- self.python3Packages.callPackage ./nix-prefetch-github.nix {};
-}
+mapNixDir (path: import path self super) ./.
diff --git a/tv/5pkgs/override/dhcpcd.nix b/tv/5pkgs/override/dhcpcd.nix
new file mode 100644
index 000000000..202b8e5da
--- /dev/null
+++ b/tv/5pkgs/override/dhcpcd.nix
@@ -0,0 +1,7 @@
+self: super:
+
+self.lib.overrideDerivation super.dhcpcd (old: {
+ configureFlags = old.configureFlags ++ [
+ "--dbdir=/var/lib/dhcpcd"
+ ];
+})
diff --git a/tv/5pkgs/override/fzf.complete1.patch b/tv/5pkgs/override/fzf/complete1.patch
index 4b2126a2c..4b2126a2c 100644
--- a/tv/5pkgs/override/fzf.complete1.patch
+++ b/tv/5pkgs/override/fzf/complete1.patch
diff --git a/tv/5pkgs/override/fzf/default.nix b/tv/5pkgs/override/fzf/default.nix
new file mode 100644
index 000000000..661db0ed5
--- /dev/null
+++ b/tv/5pkgs/override/fzf/default.nix
@@ -0,0 +1,9 @@
+self: super:
+
+super.fzf.overrideAttrs (old: {
+ # XXX cannot use `patches` because fzf has a custom patchPhase
+ patchPhase = ''
+ patch -Np1 < ${./complete1.patch}
+ ${old.patchPhase or ""}
+ '';
+})
diff --git a/tv/5pkgs/override/gitAndTools.nix b/tv/5pkgs/override/gitAndTools.nix
new file mode 100644
index 000000000..a460773b8
--- /dev/null
+++ b/tv/5pkgs/override/gitAndTools.nix
@@ -0,0 +1,5 @@
+self: super:
+
+super.gitAndTools // {
+ inherit (self) diff-so-fancy;
+}
diff --git a/tv/5pkgs/override/input-fonts.nix b/tv/5pkgs/override/input-fonts.nix
new file mode 100644
index 000000000..6ee7afac1
--- /dev/null
+++ b/tv/5pkgs/override/input-fonts.nix
@@ -0,0 +1,13 @@
+self: super:
+
+super.input-fonts.overrideAttrs (old: rec {
+ src = self.fetchzip {
+ url = "http://xu.r/~tv/mirrors/input-fonts/Input-Font-2.zip";
+ sha256 = "1q58x92nm7dk9ylp09pvgj74nxkywvqny3xmfighnsl30dv42fcr";
+ stripRoot = false;
+ };
+ sourceRoot = null;
+ outputHash = null;
+ outputHashAlgo = null;
+ outputHashMode = null;
+})
diff --git a/tv/5pkgs/override/nix-prefetch-github.nix b/tv/5pkgs/override/nix-prefetch-github.nix
deleted file mode 100644
index 67873f929..000000000
--- a/tv/5pkgs/override/nix-prefetch-github.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ fetchPypi
-, lib
-, buildPythonPackage
-, pythonOlder
-, attrs
-, click
-, effect
-, jinja2
-, git
-, pytestCheckHook
-, pytest-black
-, pytestcov
-, pytest-isort
-}:
-
-buildPythonPackage rec {
- pname = "nix-prefetch-github";
- version = "3.0";
-
- src = fetchPypi {
- inherit pname version;
- sha256 = "sha256-EN+EbVXUaf+id5UsK4EBm/9k9FYaH79g08kblvW60XA=";
- };
-
- propagatedBuildInputs = [
- attrs
- click
- effect
- jinja2
- ];
-
- checkInputs = [ pytestCheckHook pytest-black pytestcov pytest-isort git ];
- checkPhase = ''
- pytest -m 'not network'
- '';
-
- # latest version of isort will cause tests to fail
- # ignore tests which are impure
- disabledTests = [ "isort" "life" "outputs" "fetch_submodules" ];
-
- meta = with lib; {
- description = "Prefetch sources from github";
- homepage = "https://github.com/seppeljordan/nix-prefetch-github";
- license = licenses.gpl3;
- maintainers = with maintainers; [ seppeljordan ];
- };
-}
diff --git a/tv/5pkgs/simple/cr.nix b/tv/5pkgs/simple/cr.nix
new file mode 100644
index 000000000..048d77953
--- /dev/null
+++ b/tv/5pkgs/simple/cr.nix
@@ -0,0 +1,16 @@
+{ pkgs }:
+
+pkgs.writeDashBin "cr" ''
+ set -efu
+ if test -n "''${XDG_RUNTIME_DIR-}"; then
+ cache_dir=$XDG_RUNTIME_DIR/chromium-disk-cache
+ else
+ cache_dir=/tmp/chromium-disk-cache_$LOGNAME
+ fi
+ export LC_TIME=de_DE.utf8
+ exec ${pkgs.chromium}/bin/chromium \
+ --ssl-version-min=tls1 \
+ --disk-cache-dir="$cache_dir" \
+ --disk-cache-size=50000000 \
+ "$@"
+''
diff --git a/tv/5pkgs/simple/ff.nix b/tv/5pkgs/simple/ff.nix
new file mode 100644
index 000000000..ec20c4a2f
--- /dev/null
+++ b/tv/5pkgs/simple/ff.nix
@@ -0,0 +1,5 @@
+{ pkgs }:
+
+pkgs.writeDashBin "ff" ''
+ exec ${pkgs.firefoxWrapper}/bin/firefox "$@"
+''