diff options
Diffstat (limited to 'perl-install/scanner.pm')
-rw-r--r-- | perl-install/scanner.pm | 48 |
1 files changed, 12 insertions, 36 deletions
diff --git a/perl-install/scanner.pm b/perl-install/scanner.pm index 3fa4c9bef..777f7192f 100644 --- a/perl-install/scanner.pm +++ b/perl-install/scanner.pm @@ -1,5 +1,4 @@ package scanner; -# scanner.pm $Id$ # Yves Duret <yduret at mandriva.com> # Till Kamppeter <till at mandriva.com> # Copyright (C) 2001-2008 Mandriva @@ -35,7 +34,7 @@ our $scannerDB = readScannerDB("$scannerDBdir/ScannerDB"); sub confScanner { my ($model, $port, $vendor, $product, $firmware) = @_; - $port ||= "$::prefix/dev/scanner"; + $port ||= "/dev/scanner"; my $a = $scannerDB->{$model}{server}; #print "file:[$a]\t[$model]\t[$port]\n| ", (join "\n| ", @{$scannerDB->{$model}{lines}}),"\n"; my @driverconf = cat_("$sanedir/$a.conf"); @@ -178,9 +177,9 @@ sub nonroot_access_for_parport { # Desired state of this facility: 1: Enable, 0: Disable my ($enable, $in) = @_; # Is saned running? - my $sanedrunning = services::starts_on_boot("saned"); + my $sanedrunning = services::starts_on_boot("saned.socket"); # Is the "net" SANE backend active - my $netbackendactive = grep { /^\s*net\s*$/ } + my $netbackendactive = find { /^\s*net\s*$/ } cat_("/etc/sane.d/dll.conf"); # Set this to 1 to tell the caller that the list of locally available # scanners has changed (Here if the SANE client configuration has @@ -192,11 +191,9 @@ sub nonroot_access_for_parport { # Install/start saned if (!$sanedrunning) { - # Make sure saned and xinetd is installed and - # running - if (!files_exist('/usr/sbin/xinetd', - '/usr/sbin/saned')) { - if (!$in->do_pkgs->install('xinetd', 'saned')) { + # Make sure saned is installed and running + if (!files_exist('/usr/sbin/saned')) { + if (!$in->do_pkgs->install('saned')) { $in->ask_warn(N("Scannerdrake"), N("Could not install the packages needed to share your scanner(s).") . " " . N("Your scanner(s) will not be available for non-root users.")); @@ -205,12 +202,6 @@ sub nonroot_access_for_parport { } } - # Modify /etc/xinetd.d/saned to let saned run as root - my @sanedxinetdconf = cat_("/etc/xinetd.d/saned"); - s/(user\s*=\s*).*$/$1root/ foreach @sanedxinetdconf; - s/(group\s*=\s*).*$/$1root/ foreach @sanedxinetdconf; - output("/etc/xinetd.d/saned", @sanedxinetdconf); - # Read list of hosts to where to export the local scanners my @exports = cat_("/etc/sane.d/saned.conf"); # Read list of hosts from where to import scanners @@ -231,22 +222,7 @@ sub nonroot_access_for_parport { # (Re)start saned and make sure that it gets started on # every boot - services::start_service_on_boot("saned"); - services::start_service_on_boot("xinetd"); - services::restart("xinetd"); - - } else { - # Disable non-root access - - if (-r "/etc/xinetd.d/saned") { - # Modify /etc/xinetd.d/saned to let saned run as saned - my @sanedxinetdconf = cat_("/etc/xinetd.d/saned"); - s/(user\s*=\s*).*$/$1saned/ foreach @sanedxinetdconf; - s/(group\s*=\s*).*$/$1saned/ foreach @sanedxinetdconf; - output("/etc/xinetd.d/saned", @sanedxinetdconf); - # Restart xinetd - services::restart("xinetd") if $sanedrunning; - } + services::enable("saned.socket"); } return 1; @@ -279,13 +255,13 @@ sub detect { $productid = $3; } if ($vendorid && $productid) { - my ($vendor) = ($vendorid =~ /0x([0-9a-f]+)/); - my ($id) = ($productid =~ /0x([0-9a-f]+)/); + my ($vendor) = $vendorid =~ /0x([0-9a-f]+)/; + my ($id) = $productid =~ /0x([0-9a-f]+)/; my ($device) = grep { sprintf("%04x", $_->{vendor}) eq $vendor && sprintf("%04x", $_->{id}) eq $id } @devices; if ($device) { $driver = $device->{driver}; - $real_device = $device + $real_device = $device; } else { #warn "Failed to lookup $vendorid and $productid!\n"; } @@ -567,10 +543,10 @@ sub updateScannerDBfromSane { next if $f =~ /unsupported.desc$/; # Treat unsupported.desc in the end $f = "$sanesrcdir/doc/descriptions/unsupported.desc" if - ($f eq "UNSUPPORTED"); + $f eq "UNSUPPORTED"; my $F = common::openFileMaybeCompressed($f); $to_add .= "\n# from $f"; - my ($lineno, $cmd, $val) = 0; + my ($lineno, $cmd, $val); my ($name, $intf, $comment, $mfg, $backend); my $fs = { backend => sub { $backend = $val }, |