* CUPS: enabled support for printing via SMB.

svn path=/nixos/trunk/; revision=13218
This commit is contained in:
Eelco Dolstra 2008-11-07 13:37:28 +00:00
parent d1cf5f164e
commit 1573bdddfb
2 changed files with 38 additions and 17 deletions

View File

@ -1,11 +1,30 @@
{ writeText, cups {config, pkgs}:
}:
let let
logDir = "/var/log/cups"; logDir = "/var/log/cups";
cupsdConfig = writeText "cupsd.conf" "
inherit (pkgs) cups;
# Here we can enable additional backends, filters, etc. that are not
# part of CUPS itself, e.g. the SMB backend is part of Samba. Since
# we can't update ${cups}/lib/cups itself, we create a symlink tree
# here and add the additional programs. The ServerBin directive in
# cupsd.conf tells cupsd to use this tree.
bindir = pkgs.runCommand "cups-progs" {} ''
ensureDir $out/lib/cups
ln -s ${cups}/lib/cups/* $out/lib/cups/
rm $out/lib/cups/backend
ensureDir $out/lib/cups/backend
ln -s ${cups}/lib/cups/backend/* $out/lib/cups/backend/
ln -s ${pkgs.samba}/bin/smbspool $out/lib/cups/backend/smb
''; # */
cupsdConfig = pkgs.writeText "cupsd.conf" ''
LogLevel info LogLevel info
SystemGroup root SystemGroup root
@ -15,6 +34,8 @@ let
ServerRoot ${cups}/etc/cups ServerRoot ${cups}/etc/cups
ServerBin ${bindir}/lib/cups
AccessLog ${logDir}/access_log AccessLog ${logDir}/access_log
ErrorLog ${logDir}/access_log ErrorLog ${logDir}/access_log
PageLog ${logDir}/page_log PageLog ${logDir}/page_log
@ -65,7 +86,7 @@ let
Order deny,allow Order deny,allow
</Limit> </Limit>
</Policy> </Policy>
"; '';
in in
@ -76,19 +97,19 @@ in
cups cups
]; ];
job = " job = ''
description \"CUPS daemon\" description "CUPS printing daemon"
start on network-interfaces/started start on network-interfaces/started
stop on network-interfaces/stop stop on network-interfaces/stop
start script start script
mkdir -m 0755 -p ${logDir} mkdir -m 0755 -p ${logDir}
mkdir -m 0700 -p /var/cache/cups mkdir -m 0700 -p /var/cache/cups
mkdir -m 0700 -p /var/spool/cups mkdir -m 0700 -p /var/spool/cups
end script end script
respawn ${cups}/sbin/cupsd -c ${cupsdConfig} -F respawn ${cups}/sbin/cupsd -c ${cupsdConfig} -F
"; '';
} }

View File

@ -314,7 +314,7 @@ let
# CUPS (printing) daemon. # CUPS (printing) daemon.
++ optional config.services.printing.enable ++ optional config.services.printing.enable
(import ../upstart-jobs/cupsd.nix { (import ../upstart-jobs/cupsd.nix {
inherit (pkgs) writeText cups; inherit config pkgs;
}) })
# Gateway6 # Gateway6