summaryrefslogtreecommitdiffstats
path: root/makefu
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2017-01-22 23:41:01 +0100
committermakefu <github@syntax-fehler.de>2017-01-22 23:41:01 +0100
commit97bd06f03ddccaba03cf7635a3a5c25d547aa404 (patch)
tree4d30aa52d85127f93d6472a7ec7cae17ff54c235 /makefu
parent150ecf6cf5141e26fdd372d6826875fc41b0293a (diff)
m omo: add shared printer
Diffstat (limited to 'makefu')
-rw-r--r--makefu/1systems/omo.nix1
-rw-r--r--makefu/2configs/git/brain-retiolum.nix67
-rw-r--r--makefu/2configs/printer-shared.nix38
3 files changed, 39 insertions, 67 deletions
diff --git a/makefu/1systems/omo.nix b/makefu/1systems/omo.nix
index 609d52134..5241b0b8e 100644
--- a/makefu/1systems/omo.nix
+++ b/makefu/1systems/omo.nix
@@ -58,6 +58,7 @@ in {
# ../2configs/elchos/search.nix
# ../2configs/elchos/log.nix
# ../2configs/elchos/irc-token.nix
+ ../2configs/printer-shared.nix
## as long as pyload is not in nixpkgs:
# docker run -d -v /var/lib/pyload:/opt/pyload/pyload-config -v /media/crypt0/pyload:/opt/pyload/Downloads --name pyload --restart=always -p 8112:8000 -P writl/pyload
diff --git a/makefu/2configs/git/brain-retiolum.nix b/makefu/2configs/git/brain-retiolum.nix
deleted file mode 100644
index b637ca039..000000000
--- a/makefu/2configs/git/brain-retiolum.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ config, lib, pkgs, ... }:
-# TODO: remove tv lib :)
-with import <stockholm/lib>;
-let
-
- repos = priv-repos // krebs-repos ;
- rules = concatMap krebs-rules (attrValues krebs-repos) ++ concatMap priv-rules (attrValues priv-repos);
-
- krebs-repos = mapAttrs make-krebs-repo {
- brain = { };
- };
-
- priv-repos = mapAttrs make-priv-repo {
- autosync = { };
- pass = { };
- };
-
- # TODO move users to separate module
- make-priv-repo = name: { ... }: {
- inherit name;
- public = false;
- };
-
- make-krebs-repo = with git; name: { ... }: {
- inherit name;
- public = false;
- hooks = {
- post-receive = pkgs.git-hooks.irc-announce {
- nick = config.networking.hostName;
- channel = "#retiolum";
- # TODO remove the hardcoded hostname
- server = "ni.r";
- };
- };
- };
-
- set-owners = with git;repo: user:
- singleton {
- inherit user;
- repo = [ repo ];
- perm = push "refs/*" [ non-fast-forward create delete merge ];
- };
-
- set-ro-access = with git; repo: user:
- singleton {
- inherit user;
- repo = [ repo ];
- perm = fetch;
- };
-
- # TODO: get the list of all krebsministers
- krebsminister = with config.krebs.users; [ lass tv ];
- all-makefu = with config.krebs.users; [ makefu makefu-omo makefu-tsp ];
-
- priv-rules = repo: set-owners repo all-makefu;
-
- krebs-rules = repo:
- set-owners repo all-makefu ++ set-ro-access repo krebsminister;
-
-in {
- imports = [ ];
- krebs.git = {
- enable = true;
- cgit.enable = false;
- inherit repos rules;
- };
-}
diff --git a/makefu/2configs/printer-shared.nix b/makefu/2configs/printer-shared.nix
new file mode 100644
index 000000000..2a9e6724d
--- /dev/null
+++ b/makefu/2configs/printer-shared.nix
@@ -0,0 +1,38 @@
+{ pkgs, config, ... }:
+
+{
+ nixpkgs.config.allowUnfree = true;
+ services.avahi.enable = true;
+ services.avahi.publish.enable = true;
+ services.avahi.publish.userServices = true;
+ services.avahi.interfaces = [ config.makefu.server.primary-itf ];
+ services.avahi.ipv6 = false;
+ services.avahi.nssmdns = true;
+ # via https://github.com/tjfontaine/airprint-generate/
+ # environment.etc."avahi/services/samsung_scx2300.service".text
+ nixpkgs.config.packageOverrides = pkgs: rec {
+ avahi = pkgs.stdenv.lib.overrideDerivation pkgs.avahi (oldAttrs: {
+ postFixup = let
+ cfg = pkgs.writeText "airprint-scx3200.service" ''<?xml version="1.0" ?><!DOCTYPE service-group SYSTEM 'avahi-service.dtd'><service-group><name replace-wildcards="yes">AirPrint Samsung_SCX-3200_Series @ %h</name><service><type>_ipp._tcp</type><subtype>_universal._sub._ipp._tcp</subtype><port>631</port><txt-record>txtvers=1</txt-record><txt-record>qtotal=1</txt-record><txt-record>Transparent=T</txt-record><txt-record>URF=none</txt-record><txt-record>rp=printers/Samsung_SCX-3200_Series</txt-record><txt-record>note=Samsung SCX-3200 Series</txt-record><txt-record>product=(GPL Ghostscript)</txt-record><txt-record>printer-state=3</txt-record><txt-record>printer-type=0x801044</txt-record><txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-command</txt-record></service></service-group>'';
+ in ''
+ cp ${cfg} $out/etc/avahi/services/airprint-scx3200.service
+ '';
+ });
+ };
+
+ # only allowed in local network
+ services.printing = {
+ enable = true;
+ browsing = true;
+ #avahiEnabled = true;
+ defaultShared = true;
+ listenAddresses = [ "*:631" ];
+ drivers = [
+ pkgs.samsungUnifiedLinuxDriver
+ ];
+ };
+
+ # scanners are printers just in reverse anyway
+ hardware.sane.enable = true;
+ hardware.sane.extraBackends = [ pkgs.samsungUnifiedLinuxDriver ];
+}