Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package gscan2pdf

v1.6.0-5 fixes bugs 854956 and 854957 (normal severity)

debdiff attached

unblock gscan2pdf/1.6.0-5

-- System Information:
Debian Release: 9.0
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
diff -Nru gscan2pdf-1.6.0/debian/changelog gscan2pdf-1.6.0/debian/changelog
--- gscan2pdf-1.6.0/debian/changelog    2017-01-15 15:52:43.000000000 +0100
+++ gscan2pdf-1.6.0/debian/changelog    2017-02-12 16:01:45.000000000 +0100
@@ -1,3 +1,10 @@
+gscan2pdf (1.6.0-5) unstable; urgency=low
+
+  * Closes: #854956 (fails to reload settings after scanning for devices)
+  * Closes: #854957 (rounding error from scanimage causes device to be 
rejected)
+
+ -- Jeffrey Ratcliffe <j...@debian.org>  Sun, 12 Feb 2017 16:01:45 +0100
+
 gscan2pdf (1.6.0-4) unstable; urgency=low
 
   * + patch to fix bug attaching PDF to email
diff -Nru 
gscan2pdf-1.6.0/debian/patches/0001-Suppress-errors-from-CLI-frontends-caused-by-roundin.patch
 
gscan2pdf-1.6.0/debian/patches/0001-Suppress-errors-from-CLI-frontends-caused-by-roundin.patch
--- 
gscan2pdf-1.6.0/debian/patches/0001-Suppress-errors-from-CLI-frontends-caused-by-roundin.patch
      1970-01-01 01:00:00.000000000 +0100
+++ 
gscan2pdf-1.6.0/debian/patches/0001-Suppress-errors-from-CLI-frontends-caused-by-roundin.patch
      2017-02-12 15:57:17.000000000 +0100
@@ -0,0 +1,204 @@
+From 09e3583ba0a88e70b2925c46497baee231687ac3 Mon Sep 17 00:00:00 2001
+From: Jeffrey Ratcliffe <jeffrey.ratcli...@gmail.com>
+Date: Mon, 30 Jan 2017 20:35:50 +0100
+Subject: [PATCH 1/2] Suppress errors from CLI frontends caused by rounding
+
+---
+ History                       |   5 ++
+ MANIFEST                      |   1 +
+ lib/Gscan2pdf/Frontend/CLI.pm |  17 +++--
+ t/06293_Dialog_Scan_CLI.t     | 151 ++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 169 insertions(+), 5 deletions(-)
+ create mode 100644 t/06293_Dialog_Scan_CLI.t
+
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -176,6 +176,7 @@
+ t/06290_Dialog_Scan_CLI.t
+ t/06291_Dialog_Scan_CLI.t
+ t/06292_Dialog_Scan_CLI.t
++t/06293_Dialog_Scan_CLI.t
+ t/06295_Dialog_Scan_CLI.t
+ t/07_Dialog_Renumber.t
+ t/081_Frontend_CLI.t
+--- a/lib/Gscan2pdf/Frontend/CLI.pm
++++ b/lib/Gscan2pdf/Frontend/CLI.pm
+@@ -108,12 +108,19 @@
+         running_callback  => $options{running_callback},
+         finished_callback => sub {
+             my ( $output, $error ) = @_;
+-            if ( defined $error and $error =~ /^$options{frontend}:[ 
](.*)/xsm )
+-            {
+-                $error = $1;
+-            }
+             if ( defined $error and defined $options{error_callback} ) {
+-                $options{error_callback}->($error);
++                while ( $error =~ /([\r\n])/xsm ) {
++                    my $le = $1;
++                    my $line = substr $error, 0, index $error, $le;
++                    $error = substr $error, index( $error, $le ) + 1,
++                      length $error;
++                    if ( $line =~ /^$options{frontend}:[ ](.*)/xsm ) {
++                        my $msg = $1;
++                        if ( $msg !~ /rounded/xsm ) {
++                            $options{error_callback}->($msg);
++                        }
++                    }
++                }
+             }
+             my $options = Gscan2pdf::Scanner::Options->new_from_data($output);
+             $_self->{device_name} = Gscan2pdf::Scanner::Options->device;
+--- /dev/null
++++ b/t/06293_Dialog_Scan_CLI.t
+@@ -0,0 +1,151 @@
++use warnings;
++use strict;
++use Test::More tests => 1;
++use Glib qw(TRUE FALSE);    # To get TRUE and FALSE
++use Gtk2 -init;             # Could just call init separately
++use Sane 0.05;              # To get SANE_* enums
++use Sub::Override;          # Override Frontend::CLI to test functionality 
that
++                            # we can't with the test backend
++
++BEGIN {
++    use Gscan2pdf::Dialog::Scan::CLI;
++}
++
++#########################
++
++my $window = Gtk2::Window->new;
++
++Glib::set_application_name('gscan2pdf');
++use Log::Log4perl qw(:easy);
++Log::Log4perl->easy_init($FATAL);
++my $logger = Log::Log4perl::get_logger;
++
++my $help_out = <<'EOS';
++Usage: scanimage [OPTION]...
++
++Start image acquisition on a scanner device and write PNM image data to 
standard output.
++
++-d, --device-name=DEVICE   use a given scanner device (e.g. hp:/dev/scanner)
++    --format=pnm|tiff      file format of output file
++-i, --icc-profile=PROFILE  include this ICC profile into TIFF file
++-L, --list-devices         show available scanner devices
++-f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output
++                           can be specified: %d (device name), %v (vendor),
++                           %m (model), %t (type), and %i (index number)
++-b, --batch[=FORMAT]       working in batch mode, FORMAT is `out%d.pnm' or
++                           `out%d.tif' by default depending on --format
++    --batch-start=#        page number to start naming files with
++    --batch-count=#        how many pages to scan in batch mode
++    --batch-increment=#    increase number in filename by an amount of #
++    --batch-double         increment page number by two for 2sided originals
++                           being scanned in a single sided scanner
++    --batch-prompt         ask for pressing a key before scanning a page
++    --accept-md5-only      only accept authorization requests using md5
++-p, --progress             print progress messages
++-n, --dont-scan            only set options, don't actually scan
++-T, --test                 test backend thoroughly
++-h, --help                 display this help message and exit
++-v, --verbose              give even more status messages
++-B, --buffer-size          change default input buffersize
++-V, --version              print version information
++
++Options specific to device `fujitsu:libusb:002:004':
++  Scan Mode:
++    --source ADF Front|ADF Back|ADF Duplex [ADF Front]
++        Selects the scan source (such as a document-feeder).
++    --mode Gray|Color [Gray]
++        Selects the scan mode (e.g., lineart, monochrome, or color).
++    --resolution 100..600dpi (in steps of 1) [600]
++        Sets the horizontal resolution of the scanned image.
++    --y-resolution 50..600dpi (in steps of 1) [600]
++        Sets the vertical resolution of the scanned image.
++  Geometry:
++    -l 0..224.846mm (in steps of 0.0211639) [0]
++        Top-left x position of scan area.
++    -t 0..863.489mm (in steps of 0.0211639) [0]
++        Top-left y position of scan area.
++    -x 0..224.846mm (in steps of 0.0211639) [215.872]
++        Width of scan-area.
++    -y 0..863.489mm (in steps of 0.0211639) [279.364]
++        Height of scan-area.
++    --pagewidth 0..224.846mm (in steps of 0.0211639) [215.872]
++        Must be set properly to align scanning window
++    --pageheight 0..863.489mm (in steps of 0.0211639) [279.364]
++        Must be set properly to eject pages
++  Enhancement:
++    --rif[=(yes|no)] [no]
++        Reverse image format
++  Advanced:
++    --dropoutcolor Default|Red|Green|Blue [Default]
++        One-pass scanners use only one color during gray or binary scanning,
++        useful for colored paper or ink
++    --sleeptimer 0..60 (in steps of 1) [0]
++        Time in minutes until the internal power supply switches to sleep mode
++  Sensors and Buttons:
++
++Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.
++
++List of available devices:
++   fujitsu:libusb:002:004
++EOS
++
++my $help_err = <<'EOS';
++scanimage: rounded value of br-x from 215.872 to 215.872
++scanimage: big ugly error
++EOS
++
++my $override = Sub::Override->new;
++$override->replace(
++    'Gscan2pdf::Frontend::CLI::_watch_cmd' => sub {
++        my (%options) = @_;
++        $options{started_callback}->();
++        $options{finished_callback}->( $help_out, $help_err );
++    }
++);
++
++Gscan2pdf::Frontend::CLI->setup($logger);
++
++my $dialog = Gscan2pdf::Dialog::Scan::CLI->new(
++    title           => 'title',
++    'transient-for' => $window,
++    'logger'        => $logger
++);
++$dialog->signal_connect(
++    'process-error' => sub {
++        my ( $widget, $process, $msg, $signal ) = @_;
++        $logger->debug( 'process-error', $widget, $process, $msg, $signal );
++        is( $msg, 'big ugly error', 'process-error ignored rounding' );
++    }
++);
++
++$dialog->signal_connect(
++    'reloaded-scan-options' => sub {
++        Gtk2->main_quit;
++    }
++);
++
++my $signal = $dialog->signal_connect(
++    'changed-device-list' => sub {
++
++        my $signal;
++        $signal = $dialog->signal_connect(
++            'changed-device' => sub {
++                my ( $widget, $name ) = @_;
++                $dialog->signal_handler_disconnect($signal);
++            }
++        );
++        $dialog->set( 'device', 'fujitsu:libusb:002:004' );
++    }
++);
++
++# give gtk a chance to hit the main loop before starting
++Glib::Idle->add(
++    sub {
++        $dialog->set( 'device-list',
++            [ { 'name' => 'fujitsu:libusb:002:004' } ] );
++    }
++);
++
++Gtk2->main;
++
++__END__
diff -Nru 
gscan2pdf-1.6.0/debian/patches/0002-Reload-default-scan-settings-after-rescanning-for-de.patch
 
gscan2pdf-1.6.0/debian/patches/0002-Reload-default-scan-settings-after-rescanning-for-de.patch
--- 
gscan2pdf-1.6.0/debian/patches/0002-Reload-default-scan-settings-after-rescanning-for-de.patch
      1970-01-01 01:00:00.000000000 +0100
+++ 
gscan2pdf-1.6.0/debian/patches/0002-Reload-default-scan-settings-after-rescanning-for-de.patch
      2017-02-12 15:58:28.000000000 +0100
@@ -0,0 +1,35 @@
+From 61cdfba68ecfa7849939defe7b4acfe706853790 Mon Sep 17 00:00:00 2001
+From: Jeffrey Ratcliffe <jeffrey.ratcli...@gmail.com>
+Date: Wed, 1 Feb 2017 20:24:04 +0100
+Subject: [PATCH 2/2] Reload default scan settings after rescanning for devices
+
+---
+ History       | 1 +
+ bin/gscan2pdf | 9 +++++----
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+--- a/bin/gscan2pdf
++++ b/bin/gscan2pdf
+@@ -3582,10 +3582,6 @@
+         }
+     );
+ 
+-    # Can't set the profile until the options have been loaded
+-    $windows->{reloaded_signal} = $windows->signal_connect(
+-        'reloaded-scan-options' => \&reloaded_scan_options_callback );
+-
+     $windows->signal_connect(
+         'changed-paper-formats' => sub {
+             my ( $widget, $formats ) = @_;
+@@ -3621,6 +3617,11 @@
+     else {
+         $logger->info("signal 'changed-device' emitted with data: undef");
+     }
++
++    # Can't set the profile until the options have been loaded. This
++    # should only be called the first time after loading the available options
++    $windows->{reloaded_signal} = $windows->signal_connect(
++        'reloaded-scan-options' => \&reloaded_scan_options_callback );
+     return;
+ }
+ 
diff -Nru gscan2pdf-1.6.0/debian/patches/series 
gscan2pdf-1.6.0/debian/patches/series
--- gscan2pdf-1.6.0/debian/patches/series       2017-01-11 21:09:25.000000000 
+0100
+++ gscan2pdf-1.6.0/debian/patches/series       2017-02-12 15:58:12.000000000 
+0100
@@ -2,3 +2,5 @@
 0002-Catch-error-setting-timestamp-for-dates-prior-to-197.patch
 0001-Fix-saving-TIFF-with-compression.patch
 0001-Fixed-bug-attaching-PDF-to-email.patch
+0001-Suppress-errors-from-CLI-frontends-caused-by-roundin.patch
+0002-Reload-default-scan-settings-after-rescanning-for-de.patch

Reply via email to