summaryrefslogtreecommitdiffstats
path: root/lst/ScannerDB
Commit message (Collapse)AuthorAgeFilesLines
* - Fix HP PSC 1315 name to match with usbtableTiago Salem Herrmann2008-03-101-1/+1
|
* - Added a new entry for HP PSC 1310 series. Bug #34631Tiago Salem Herrmann2008-03-051-0/+5
|
* ScannerDB for Epson's "epkowa" backend.Till Kamppeter2006-07-031-0/+250
|
* Scanner data for SANE 1.0.18.Till Kamppeter2006-07-031-4245/+5334
|
* - s/Hewlett Packard/Hewlett-Packard/ in ScannerDB.Till Kamppeter2006-01-201-2/+2
|
* - Updated for SANE 1.0.17Till Kamppeter2006-01-201-231/+657
| | | | | - Added lines for SCSI-over-parallel scanner kernel modules
* - Updated scanner database for SANE 1.0.16.Till Kamppeter2005-08-241-376/+1703
|
* - Updates for parallel scanners, especially auto-detection with "umax_pp"Till Kamppeter2005-03-031-5/+27
| | | | | driver.
* Updated scanner database for SANE 1.0.15.Till Kamppeter2005-02-191-715/+1903
|
* Updated entries for "avision" backend and for Kodak digicam backends.Till Kamppeter2004-03-221-1/+1
|
* Fixed entry for AGFA SnapScan Touch (bug #8441).Till Kamppeter2004-02-271-1/+1
|
* Fixed Firmware configuration templates for SANE backend "artec_eplus48u".Till Kamppeter2004-02-181-2760/+2760
|
* Updated ScannerDB for SANE 1.0.13.Till Kamppeter2003-12-171-392/+912
|
* Updated scanner database for SANE 1.0.12.Till Kamppeter2003-09-091-1722/+2150
|
* Added some missing drivrs to ScannerDB, Updates for SANE patches.Till Kamppeter2003-02-141-1648/+1805
|
* Restructured and updated ScannerDB. For easy, fully automatic generationTill Kamppeter2003-02-131-1334/+3441
| | | | | | | | of ScannerDB with Scannerdrake added scannerconfigs file which contains the lines to put into the config files (/etc/sane.d/*.conf) of the scanner drivers. Now Scannerdrake should be able to set up nearly every SANE-supported scanner.
* typo fix from the communauty (fix "unknown line 1574 ( #for hardwareThierry Vignaud2003-01-291-1/+2
| | | | | detection)")
* fix some Hewlett-Packard scanner from niash backendYves Duret2002-10-101-4/+4
|
* Added new Epson models to scanner database for scannerdrake.Till Kamppeter2002-08-201-0/+19
|
* added Agfa Snapscan Touch and fixed HP 2200c entry (unsupported both)Yves Duret2002-04-071-1/+7
|
* microtekX6 does not have Vendor string in scsi ids. (scisi over usb)Yves Duret2002-03-141-0/+3
|
* added ASK DEVICEYves Duret2002-03-101-58/+44
|
* fix Connectix entries (qcam server)Yves Duret2002-02-181-1/+1
|
* added support for Hewlett-Packard OfficeJet seriesYves Duret2002-02-181-16/+29
|
* fix Bell and Howell entriesYves Duret2002-02-181-0/+2
|
* sync with sane 1.0.7Yves Duret2002-02-181-16/+174
|
* ci before big mergeYves Duret2002-02-181-1/+17
|
* added more snapscan escanners + some add in usbtable (kbd..)Yves Duret2002-02-171-0/+32
|
* mustek_pp updatedYves Duret2002-02-171-0/+118
|
* one more HP escanner..Yves Duret2002-02-171-0/+4
|
* some HP escanners added (but in UNSUPPORTED :(Yves Duret2002-02-171-0/+10
|
* 1240U PhotoYves Duret2002-02-051-1/+1
|
* fix pbs in HP scanner usbYves Duret2002-02-051-10/+11
|
* added BW4830Pro thx MdkForumYves Duret2002-02-051-0/+5
|
* added Seiko Epson Corp.|Perfection 1650 PhotoYves Duret2001-11-271-2/+6
|
* the really big heavy fat updateYves Duret2001-11-121-87/+1496
|
* first versionYves Duret2001-10-101-0/+211
hl opt">); } sub set($$$) { my ($packages, $p, $val) = @_; $val ? &select($packages, $p) : unselect($packages, $p); } sub addInfosFromHeader($$;$) { my ($packages, $header, $file) = @_; my $name = c::headerGetEntry($header, 'name'); $packages->{$name} = { name => $name, file => $file, selected => 0, deps => [], header => $header, size => c::headerGetEntry($header, 'size'), }; } sub psUsingDirectory(;$) { my ($dirname) = @_; my %packages; $dirname ||= install_any::imageGetFile(''); log::l("scanning $dirname for packages"); foreach (all("$dirname")) { my ($name, $version, $release) = /(.*)-([^-]+)-([^-.]+)\.[^.]+\.rpm/ or log::l("skipping $_"), next; $packages{$name} = { name => $name, version => $version, release => $release, file => "$dirname/$_", selected => 0, deps => [], }; } \%packages; } sub getDeps($) { my ($packages) = @_; local *F; open F, install_any::imageGetFile("depslist") or die "can't find dependencies list"; foreach (<F>) { my ($name, $size, @deps) = split; $packages->{$name}->{size} = $size; $packages->{$name}->{deps} = \@deps; map { push @{$packages->{$_}->{provides}}, $name } @deps; } } sub readCompss($) { my ($packages) = @_; my (@compss, $ps, $category); local *F; open F, install_any::imageGetFile("compss") or die "can't find compss"; foreach (<F>) { /^\s*$/ || /^#/ and next; s/#.*//; my ($options, $name) = /^(\S*)\s+(.*?)\s*$/ or die "bad line in compss: $_"; if ($name =~ /(.*):$/) { if ($category) { push @compss, $category; $ps = []; } $category = { options => $options, name => $1, packages => $ps }; } else { my $p = $packages->{$name} or log::l("unknown package $name (in compss)"), next; $p->{options} = $options; push @$ps, $p; } } [ @compss, $category ]; } sub setCompssSelected($$$) { my ($compss, $packages, $install_class, $select) = @_; my $l = substr($install_class, 0, 1); my $L = uc $l; my $verif_lang = sub { $_[0] =~ /-([^-]*)$/; $1 eq $ENV{LANG} || eval { lang::text2lang($1) eq $ENV{LANG} } && !$@; }; foreach my $c (@$compss) { $c->{show} = bool($c->{options} =~ /($l|\*)/); my $nb = 0; foreach my $p (@{$c->{packages}}) { local $_ = $p->{options}; $p->{show} = ! (/$L/); &select($packages, $p, $p->{base}), $nb++ if /$l|\*/ && (!/l/ || &$verif_lang($p->{name})) || $p->{base}; } $c->{selected} = $nb; } } sub psFromHeaderListDesc { my ($fd, $noSeek) = @_; my %packages; my $end; unless ($noSeek) { my $current = sysseek $fd, 0, 1 or die "seek failed"; $end = sysseek $fd, 0, 2 or die "seek failed"; sysseek $fd, $current, 0 or die "seek failed"; } while (1) { my $header = c::headerRead(fileno($fd), 1); unless ($header) { $noSeek and last; die "error reading header at offset ", sysseek($fd, 0, 1); } addInfosFromHeader(\%packages, $header); $noSeek or $end <= sysseek($fd, 0, 1) and last; } log::l("psFromHeaderListDesc read " . scalar keys(%packages) . " headers"); \%packages; } sub psFromHeaderListFile { my ($file) = @_; local *F; sysopen F, $file, 0 or die "error opening header file $file: $!"; psFromHeaderListDesc(\*F, 0); } sub init_db { my ($prefix, $isUpgrade) = @_; my $f = "$prefix/tmp/" . ($isUpgrade ? "upgrade" : "install") . ".log"; open(F, "> $f") ? log::l("opened $f") : log::l("Failed to open $f. No install log will be kept."); $fd = fileno(F) || log::fd() || 2; c::rpmErrorSetCallback($fd); # c::rpmSetVeryVerbose(); $isUpgrade ? c::rpmdbRebuild($prefix) : c::rpmdbInit($prefix, 0644) or die "creation/rebuilding of rpm database failed: ", c::rpmErrorString(); } sub install { my ($prefix, $toInstall, $isUpgrade, $force) = @_; my $db = c::rpmdbOpen($prefix) or die "error opening RPM database: ", c::rpmErrorString(); log::l("opened rpm database"); my $trans = c::rpmtransCreateSet($db, $prefix); my ($total, $nb); foreach my $p (@$toInstall) { local *F; open F, $p->{file} or die "error opening package $p->{name} (file $p->{file})"; $p->{header} = c::rpmReadPackageHeader(fileno F); c::rpmtransAddPackage($trans, $p->{header}, $p->{file}, $isUpgrade); $nb++; $total += $p->{size}; } c::rpmdepOrder($trans) or c::rpmdbClose($db), c::rpmtransFree($trans), die "error ordering package list: ", c::rpmErrorString(); c::rpmtransSetScriptFd($trans, $fd); eval { fs::mount("/proc", "$prefix/proc", "proc", 0) }; log::ld("starting installation: ", $nb, " packages, ", $total, " bytes"); # !! do not translate these messages, they are used when catched (cf install_steps_graphical) my $callbackStart = sub { log::ld("starting installing package ", $_[0]) }; my $callbackProgress = sub { log::ld("progressing installation ", $_[0], "/", $_[1]) }; if (my @probs = c::rpmRunTransactions($trans, $callbackStart, $callbackProgress, $force)) { die "installation of rpms failed:\n ", join("\n ", @probs); } c::rpmtransFree($trans); c::rpmdbClose($db); log::l("rpm database closed"); }