Empowerment Through Free Software
#+BEGIN_COMMENT .. title: Empowerment Through Free Software .. author: Detlev Zundel .. date: 2025-04-03 23:15:39 CET .. slug: free-software-empowerment .. tags: debian, linux, fsf, gnome, simple-scan .. category: .. link: .. description: .. type: text #+END_COMMENTg

Due to having ordered a new multi-function printer, I find myself wanting a feature in my software stack, which seems not to be available. But as I use a Free Software GNU/Linux system, it is possible to modify and extend the software on every level, so I decide to find out if I can fix the problem myself.
Specifically, the new printer has a document feeder for the scanner, so that I can feed a whole stack of documents to it without manual intervention. Unfortunately, it is not able to do both side scans, as this feature is only available at a much higher price tag. But double-sided scanning can be done in two batches by first scanning the front sides, and then in a second batch the back sides. The scanned pages then need to be reordered in a post processing step to group the corresponding front- and back sides. Already with my own scanner, I am pretty happy using the default scan software from the GNOME desktop, i.e. simple-scan. I used the GUI to remove pages and reorder them manually, but I did not find such a functionality that I would now like to use. So the topic for today is how to make this work, ideally before the printer arrives.
I believe this to be a very good example of how empowering Free Software is, and so I decided to document all my steps in order to show how I approach this task, which is completely inaccessible for people working with non-free software. Actually I invite you to reproduce the steps on your own distribution to get a feeling on how easy (or difficult?) it is to work on an arbitrary aspect of the whole system.
So fire up your terminal and follow along! Expect some transcripts!
Finding The Binary
Of course the first step is to find the sources for the program that
we want to extend. The first step is to locate the program itself and
find the distribution package for it. For my Debian system I will use
dpkg for this, but on other distros there are comparable commands:
dzu@krikkit:~$ type -f simple-scan
simple-scan is /usr/bin/simple-scan
dzu@krikkit:~$ dpkg --search /usr/bin/simple-scan
simple-scan: /usr/bin/simple-scan
dzu@krikkit:~$
Setting Up The Build Environment
Ok, so we now know that we want to work on the package simple-scan.
In order to build the package from sources, it is likely that we will
need additional packages. Luckily, the Debian system has these
dependencies encoded in its package and so we can ask the system to
install them:
dzu@krikkit:~$ sudo apt build-dep simple-scan
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
gir1.2-colord-1.0 gir1.2-gusb-1.0 gnome-pkg-tools libcolord-dev libgusb-dev libhandy-1-dev
libpackagekit-glib2-dev libsane-dev libvala-0.56-0 libvalacodegen-0.56-0 scour valac valac-0.56-vapi
valac-bin
0 upgraded, 14 newly installed, 0 to remove and 1 not upgraded.
Need to get 6576 kB of archives.
After this operation, 46.6 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://deb.debian.org/debian bookworm/main amd64 gir1.2-colord-1.0 amd64 1.4.6-2.2 [26.5 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 gir1.2-gusb-1.0 amd64 0.3.10-1 [12.9 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 gnome-pkg-tools all 0.22.7 [24.5 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 libcolord-dev amd64 1.4.6-2.2 [69.3 kB]
Get:5 http://deb.debian.org/debian bookworm/main amd64 libgusb-dev amd64 0.3.10-1 [30.7 kB]
Get:6 http://deb.debian.org/debian bookworm/main amd64 libhandy-1-dev amd64 1.8.1-1 [439 kB]
Get:7 http://deb.debian.org/debian bookworm/main amd64 libpackagekit-glib2-dev amd64 1.2.6-5 [87.9 kB]
Get:8 http://deb.debian.org/debian bookworm/main amd64 libsane-dev amd64 1.2.1-2 [2480 kB]
Get:9 http://deb.debian.org/debian bookworm/main amd64 libvala-0.56-0 amd64 0.56.3-1 [849 kB]
Get:10 http://deb.debian.org/debian bookworm/main amd64 libvalacodegen-0.56-0 amd64 0.56.3-1 [709 kB]
Get:11 http://deb.debian.org/debian bookworm/main amd64 scour all 0.38.2-2 [19.3 kB]
Get:12 http://deb.debian.org/debian bookworm/main amd64 valac-0.56-vapi all 0.56.3-1 [1064 kB]
Get:13 http://deb.debian.org/debian bookworm/main amd64 valac-bin amd64 0.56.3-1 [335 kB]
Get:14 http://deb.debian.org/debian bookworm/main amd64 valac amd64 0.56.3-1 [428 kB]
Fetched 6576 kB in 0s (21.2 MB/s)
Selecting previously unselected package gir1.2-colord-1.0:amd64.
(Reading database ... 638409 files and directories currently installed.)
Preparing to unpack .../00-gir1.2-colord-1.0_1.4.6-2.2_amd64.deb ...
Unpacking gir1.2-colord-1.0:amd64 (1.4.6-2.2) ...
Selecting previously unselected package gir1.2-gusb-1.0:amd64.
Preparing to unpack .../01-gir1.2-gusb-1.0_0.3.10-1_amd64.deb ...
Unpacking gir1.2-gusb-1.0:amd64 (0.3.10-1) ...
Selecting previously unselected package gnome-pkg-tools.
Preparing to unpack .../02-gnome-pkg-tools_0.22.7_all.deb ...
Unpacking gnome-pkg-tools (0.22.7) ...
Selecting previously unselected package libcolord-dev:amd64.
Preparing to unpack .../03-libcolord-dev_1.4.6-2.2_amd64.deb ...
Unpacking libcolord-dev:amd64 (1.4.6-2.2) ...
Selecting previously unselected package libgusb-dev.
Preparing to unpack .../04-libgusb-dev_0.3.10-1_amd64.deb ...
Unpacking libgusb-dev (0.3.10-1) ...
Selecting previously unselected package libhandy-1-dev:amd64.
Preparing to unpack .../05-libhandy-1-dev_1.8.1-1_amd64.deb ...
Unpacking libhandy-1-dev:amd64 (1.8.1-1) ...
Selecting previously unselected package libpackagekit-glib2-dev.
Preparing to unpack .../06-libpackagekit-glib2-dev_1.2.6-5_amd64.deb ...
Unpacking libpackagekit-glib2-dev (1.2.6-5) ...
Selecting previously unselected package libsane-dev:amd64.
Preparing to unpack .../07-libsane-dev_1.2.1-2_amd64.deb ...
Unpacking libsane-dev:amd64 (1.2.1-2) ...
Selecting previously unselected package libvala-0.56-0:amd64.
Preparing to unpack .../08-libvala-0.56-0_0.56.3-1_amd64.deb ...
Unpacking libvala-0.56-0:amd64 (0.56.3-1) ...
Selecting previously unselected package libvalacodegen-0.56-0:amd64.
Preparing to unpack .../09-libvalacodegen-0.56-0_0.56.3-1_amd64.deb ...
Unpacking libvalacodegen-0.56-0:amd64 (0.56.3-1) ...
Selecting previously unselected package scour.
Preparing to unpack .../10-scour_0.38.2-2_all.deb ...
Unpacking scour (0.38.2-2) ...
Selecting previously unselected package valac-0.56-vapi.
Preparing to unpack .../11-valac-0.56-vapi_0.56.3-1_all.deb ...
Unpacking valac-0.56-vapi (0.56.3-1) ...
Selecting previously unselected package valac-bin.
Preparing to unpack .../12-valac-bin_0.56.3-1_amd64.deb ...
Unpacking valac-bin (0.56.3-1) ...
Selecting previously unselected package valac.
Preparing to unpack .../13-valac_0.56.3-1_amd64.deb ...
Unpacking valac (0.56.3-1) ...
Setting up libvala-0.56-0:amd64 (0.56.3-1) ...
Setting up libvalacodegen-0.56-0:amd64 (0.56.3-1) ...
Setting up libpackagekit-glib2-dev (1.2.6-5) ...
Setting up libsane-dev:amd64 (1.2.1-2) ...
Setting up gir1.2-gusb-1.0:amd64 (0.3.10-1) ...
Setting up gnome-pkg-tools (0.22.7) ...
Setting up scour (0.38.2-2) ...
Setting up gir1.2-colord-1.0:amd64 (1.4.6-2.2) ...
Setting up valac-0.56-vapi (0.56.3-1) ...
Setting up libcolord-dev:amd64 (1.4.6-2.2) ...
Setting up libhandy-1-dev:amd64 (1.8.1-1) ...
Setting up libgusb-dev (0.3.10-1) ...
Setting up valac-bin (0.56.3-1) ...
Setting up valac (0.56.3-1) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u3) ...
Scanning processes...
Scanning candidates...
Scanning processor microcode...
Scanning linux images...
Running kernel seems to be up-to-date.
Failed to check for processor microcode upgrades.
No services need to be restarted.
No containers need to be restarted.
User sessions running outdated binaries:
dzu @ user manager service: bash[4275], emacs[4708], gnome-session-b[3186], systemd[2953]
No VM guests are running outdated hypervisor (qemu) binaries on this host.
dzu@krikkit:~$
Working On The Debian Package Or Upstream?
At this stage I could download the Debian source package and work on that, but as I ultimately aim for extending the upstream project, I will aim for working directly on the upstream sources. I always aim as close as possible to the place where a project "lives", i.e. what I usually call upstream.
Now that the dependencies have been installed, we can follow the
pointers to the source of the software. The directory
/usr/share/doc/ carries one entry per Debian package and within the
copyright file is the link to the upstream source.
dzu@krikkit:~$ grep Source: /usr/share/doc/simple-scan/copyright
Source: https://gitlab.gnome.org/GNOME/simple-scan
dzu@krikkit:~$
Visiting the Gitlab site, we quickly find out that the git repository
is available by appending .git to the URL. So let's clone the repo:
Downloading The Sources
dzu@krikkit:~$ cd /opt/src/git/
dzu@krikkit:/opt/src/git$ git clone https://gitlab.gnome.org/GNOME/simple-scan.git
Cloning into 'simple-scan'...
remote: Enumerating objects: 18021, done.
remote: Counting objects: 100% (1412/1412), done.
remote: Compressing objects: 100% (423/423), done.
remote: Total 18021 (delta 986), reused 1390 (delta 973), pack-reused 16609
Receiving objects: 100% (18021/18021), 25.81 MiB | 9.11 MiB/s, done.
Resolving deltas: 100% (13860/13860), done.
dzu@krikkit:/opt/src/git$ cd simple-scan/
dzu@krikkit:/opt/src/git/simple-scan (master)$ ls
COPYING NEWS README.md build-aux/ data/ help/ meson.build po/ simple-scan.doap src/ subprojects/
dzu@krikkit:/opt/src/git/simple-scan (master)$
Building It
The README.md file contains instructions on how to build the
software. With a little command line foo, we can cut out that part
only:
dzu@krikkit:/opt/src/git/simple-scan (master)$ cat README.md | sed -n '/Build and run/,/^$/ p'
Build and run:
```
$ meson --prefix $PWD/_install _build
$ ninja -C _build all install
$ XDG_DATA_DIRS=_install/share:$XDG_DATA_DIRS ./_install/bin/simple-scan
```
dzu@krikkit:/opt/src/git/simple-scan (master)$
Ok, so we need to use meson to set up a ninja configuration and
then drive the compilation with ninja. Let's try that:
dzu@krikkit:/opt/src/git/simple-scan (master)$ meson --prefix $PWD/_install _build The Meson build system Version: 1.0.1 Source dir: /opt/src/git/simple-scan Build dir: /opt/src/git/simple-scan/_build Build type: native build Project name: simple-scan Project version: 44.0 C compiler for the host machine: ccache cc (gcc 12.2.0 "cc (Debian 12.2.0-14) 12.2.0") C linker for the host machine: cc ld.bfd 2.40 Vala compiler for the host machine: valac (valac 0.56.3) Host machine cpu family: x86_64 Host machine cpu: x86_64 Found pkg-config: /usr/bin/pkg-config (1.8.1) Run-time dependency glib-2.0 found: YES 2.74.6 Dependency gtk4 found: NO found 4.8.3 but need: '>=4.10.0' Found CMake: /usr/bin/cmake (3.25.1) WARNING: CMake Toolchain: Failed to determine CMake compilers state Run-time dependency gtk4 found: NO (tried cmake) meson.build:23:0: ERROR: Dependency lookup for gtk4 with method 'pkgconfig' failed: Invalid version, need 'gtk4' ['>=4.10.0'] found '4.8.3'. A full log can be found at /opt/src/git/simple-scan/_build/meson-logs/meson-log.txt WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated. dzu@krikkit:/opt/src/git/simple-scan (master)$
Urgs, so the current master tree of the program that we would like
to extend targets newer versions of the software stack than what we
use on the host.
From here I have basically two options that I can try:
- Set up a build environment with the latest packages matching what the source repo expects
- Target a branch of the package compatible with the versions that we use on the host
Of course, I want to fix my own problem, so if I can get away with it, the latter option is my preference. If and when I get my extension to work, I would expect that it should be "kind of straightforward" to port it to the current master version. If I fail with that, I can still try to ask the community for help or later try to do that myself. But I will always want to start with something that I can easily test on my local system.
Debian Bookworm Is Not Good Enough
Assessing the situation requires us to find the "targeted software stack" versus what we use on our host system. I hope to find out about the first by inspecting branches:
dzu@krikkit:/opt/src/git/simple-scan (master)$ git --no-pager branch -l -a * master remotes/origin/HEAD -> origin/master remotes/origin/gnome-3-10 remotes/origin/gnome-3-12 remotes/origin/gnome-3-14 remotes/origin/gnome-3-16 remotes/origin/gnome-3-18 remotes/origin/gnome-3-20 remotes/origin/gnome-3-22 remotes/origin/gnome-3-24 remotes/origin/gnome-3-26 remotes/origin/gnome-3-28 remotes/origin/gnome-3-30 remotes/origin/gnome-3-32 remotes/origin/gnome-3-34 remotes/origin/gnome-3-36 remotes/origin/gnome-3-38 remotes/origin/gnome-3-4 remotes/origin/gnome-3-6 remotes/origin/gnome-3-8 remotes/origin/gnome-40 remotes/origin/gnome-42 remotes/origin/gnome-44 remotes/origin/main remotes/origin/master remotes/origin/wip/cdavis/toggle-groups dzu@krikkit:/opt/src/git/simple-scan (master)$
Let's find out what version our system is based on:
dzu@krikkit:/opt/src/git/simple-scan (master)$ dpkg --no-pager -l gnome Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-===================================================== ii gnome 1:43+1 amd64 Full GNOME Desktop Environment, with extra components dzu@krikkit:/opt/src/git/simple-scan (master)$
Switching Development Branch
Hm, so Debian Bookworm uses GNOME 43, and simple-scan has branches for version 42 and 44. As there is no direct match there, let's try to be conservative and go back beyond what our host system supports and try again:
dzu@krikkit:/opt/src/git/simple-scan ((32eedcc1...))$ git checkout -b gnome-42 origin/gnome-42 branch 'gnome-42' set up to track 'origin/gnome-42'. Switched to a new branch 'gnome-42' dzu@krikkit:/opt/src/git/simple-scan (gnome-42)$ meson --prefix $PWD/_install _build The Meson build system Version: 1.0.1 Source dir: /opt/src/git/simple-scan Build dir: /opt/src/git/simple-scan/_build Build type: native build Project name: simple-scan Project version: 42.5 C compiler for the host machine: ccache cc (gcc 12.2.0 "cc (Debian 12.2.0-14) 12.2.0") C linker for the host machine: cc ld.bfd 2.40 Vala compiler for the host machine: valac (valac 0.56.3) Host machine cpu family: x86_64 Host machine cpu: x86_64 Found pkg-config: /usr/bin/pkg-config (1.8.1) Run-time dependency glib-2.0 found: YES 2.74.6 Run-time dependency gtk+-3.0 found: YES 3.24.38 Run-time dependency gmodule-export-2.0 found: YES 2.74.6 Run-time dependency gthread-2.0 found: YES 2.74.6 Run-time dependency libhandy-1 found: YES 1.8.1 Run-time dependency zlib found: YES 1.2.13 Run-time dependency cairo found: YES 1.16.0 Run-time dependency gdk-pixbuf-2.0 found: YES 2.42.10 Run-time dependency gusb found: YES 0.3.10 Run-time dependency colord found: YES 1.4.6 Run-time dependency packagekit-glib2 found: YES 1.2.6 Run-time dependency libwebp found: YES 1.2.4 Run-time dependency libwebpmux found: YES 1.2.4 Run-time dependency sane-backends found: YES 1.1.1-debian Program msgfmt found: YES (/usr/bin/msgfmt) Program itstool found: YES (/usr/bin/itstool) Program msgfmt found: YES (/usr/bin/msgfmt) Program msginit found: YES (/usr/bin/msginit) Program msgmerge found: YES (/usr/bin/msgmerge) Program xgettext found: YES (/usr/bin/xgettext) Found pkg-config: /usr/bin/pkg-config (1.8.1) Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources) Program itstool found: YES (/usr/bin/itstool) Program msgmerge found: YES (/usr/bin/msgmerge) Program msgfmt found: YES (/usr/bin/msgfmt) Build targets in project: 187 simple-scan 42.5 User defined options prefix: /opt/src/git/simple-scan/_install Found ninja-1.11.1 at /usr/bin/ninja WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated. dzu@krikkit:/opt/src/git/simple-scan (gnome-42)$
Success! So the final part will be to actually build it with =ninja:
dzu@krikkit:/opt/src/git/simple-scan (gnome-42)$ ninja -C _build all install ninja: Entering directory `_build' [150/165] Compiling Vala source ../src/config.vapi ..... ../src/screensaver.vala ../src/autosave-manager.vala ../src/book.vala:214.9-214.27: warning: delegates with scope="async" must be owned 214 | ThreadFunc<Error?>? write_delegate = null; | ^~~~~~~~~~~~~~~~~~~ ../src/book.vala:214.9-214.27: warning: delegates with scope="async" must be owned 214 | ThreadFunc<Error?>? write_delegate = null; | ^~~~~~~~~~~~~~~~~~~ ../src/book.vala:214.9-214.27: warning: delegates with scope="async" must be owned 214 | ThreadFunc<Error?>? write_delegate = null; | ^~~~~~~~~~~~~~~~~~~ ../src/app-window.vala:459.25-459.104: warning: unhandled error `GLib.ConvertError' 459 | directory = GLib.Filename.to_uri(Environment.get_user_special_dir (UserDirectory.DOCUMENTS)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/app-window.vala:1528.13-1528.24: warning: `Gtk.show_uri' has been deprecated since 3.22 1528 | Gtk.show_uri (screen, "help:simple-scan", Gtk.get_current_event_time ()); | ^~~~~~~~~~~~ ../src/app-window.vala:1118.13-1118.24: warning: `Gtk.show_uri' has been deprecated since 3.22 1118 | Gtk.show_uri (screen, file.get_uri (), Gtk.get_current_event_time ()); | ^~~~~~~~~~~~ sane-backends.vapi:239.33-239.37: warning: Argument `null_terminated' never used 239 | public Status get_devices ([CCode (array_length = false, null_terminated = true)] out unowned Device[] device_list, bool local_only); | ^~~~~ Compilation succeeded - 7 warning(s) [164/165] Installing files. Installing po/ab/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ab/LC_MESSAGES Installing po/af/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/af/LC_MESSAGES Installing po/am/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/am/LC_MESSAGES Installing po/ar/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ar/LC_MESSAGES Installing po/ast/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ast/LC_MESSAGES Installing po/az/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/az/LC_MESSAGES Installing po/be/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/be/LC_MESSAGES Installing po/bg/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/bg/LC_MESSAGES Installing po/bo/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/bo/LC_MESSAGES Installing po/ca/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ca/LC_MESSAGES Installing po/ca@valencia/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ca@valencia/LC_MESSAGES Installing po/cs/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/cs/LC_MESSAGES Installing po/da/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/da/LC_MESSAGES Installing po/de/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/de/LC_MESSAGES Installing po/el/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/el/LC_MESSAGES Installing po/en_GB/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/en_GB/LC_MESSAGES Installing po/eo/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/eo/LC_MESSAGES Installing po/es/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/es/LC_MESSAGES Installing po/et/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/et/LC_MESSAGES Installing po/eu/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/eu/LC_MESSAGES Installing po/fa/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/fa/LC_MESSAGES Installing po/fi/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/fi/LC_MESSAGES Installing po/fr/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/fr/LC_MESSAGES Installing po/fur/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/fur/LC_MESSAGES Installing po/gd/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/gd/LC_MESSAGES Installing po/gl/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/gl/LC_MESSAGES Installing po/he/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/he/LC_MESSAGES Installing po/hr/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/hr/LC_MESSAGES Installing po/hu/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/hu/LC_MESSAGES Installing po/hy/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/hy/LC_MESSAGES Installing po/id/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/id/LC_MESSAGES Installing po/is/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/is/LC_MESSAGES Installing po/it/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/it/LC_MESSAGES Installing po/ja/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ja/LC_MESSAGES Installing po/ka/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ka/LC_MESSAGES Installing po/kk/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/kk/LC_MESSAGES Installing po/km/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/km/LC_MESSAGES Installing po/ko/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ko/LC_MESSAGES Installing po/ku/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ku/LC_MESSAGES Installing po/ky/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ky/LC_MESSAGES Installing po/lt/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/lt/LC_MESSAGES Installing po/lv/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/lv/LC_MESSAGES Installing po/mhr/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/mhr/LC_MESSAGES Installing po/mjw/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/mjw/LC_MESSAGES Installing po/ml/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ml/LC_MESSAGES Installing po/ms/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ms/LC_MESSAGES Installing po/my/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/my/LC_MESSAGES Installing po/nb/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/nb/LC_MESSAGES Installing po/ne/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ne/LC_MESSAGES Installing po/nl/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/nl/LC_MESSAGES Installing po/oc/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/oc/LC_MESSAGES Installing po/pa/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/pa/LC_MESSAGES Installing po/pl/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/pl/LC_MESSAGES Installing po/pt_BR/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/pt_BR/LC_MESSAGES Installing po/pt/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/pt/LC_MESSAGES Installing po/ro/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ro/LC_MESSAGES Installing po/ru/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ru/LC_MESSAGES Installing po/sd/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/sd/LC_MESSAGES Installing po/se/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/se/LC_MESSAGES Installing po/shn/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/shn/LC_MESSAGES Installing po/sk/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/sk/LC_MESSAGES Installing po/sl/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/sl/LC_MESSAGES Installing po/sq/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/sq/LC_MESSAGES Installing po/sr/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/sr/LC_MESSAGES Installing po/sr@latin/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/sr@latin/LC_MESSAGES Installing po/sv/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/sv/LC_MESSAGES Installing po/ta/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ta/LC_MESSAGES Installing po/te/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/te/LC_MESSAGES Installing po/th/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/th/LC_MESSAGES Installing po/tr/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/tr/LC_MESSAGES Installing po/ug/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ug/LC_MESSAGES Installing po/uk/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/uk/LC_MESSAGES Installing po/ur/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/ur/LC_MESSAGES Installing po/uz/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/uz/LC_MESSAGES Installing po/vi/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/vi/LC_MESSAGES Installing po/zh_CN/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/zh_CN/LC_MESSAGES Installing po/zh_HK/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/zh_HK/LC_MESSAGES Installing po/zh_TW/LC_MESSAGES/simple-scan.mo to /opt/src/git/simple-scan/_install/share/locale/zh_TW/LC_MESSAGES Installing data/simple-scan.desktop to /opt/src/git/simple-scan/_install/share/applications Installing data/simple-scan.appdata.xml to /opt/src/git/simple-scan/_install/share/metainfo Installing help/ar/adf.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/crop.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/dpi.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/email.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/index.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/legal.xml to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/print.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/quality.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/reorder.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/rotate.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/save.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/scanner.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/ar/scanning.page to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan Installing help/bg/adf.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/crop.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/dpi.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/email.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/index.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/legal.xml to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/print.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/quality.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/reorder.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/rotate.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/save.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/scanner.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/bg/scanning.page to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan Installing help/ca/adf.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/crop.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/dpi.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/email.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/index.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/legal.xml to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/print.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/quality.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/reorder.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/rotate.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/save.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/scanner.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/ca/scanning.page to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan Installing help/cs/adf.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/crop.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/dpi.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/email.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/index.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/legal.xml to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/print.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/quality.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/reorder.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/rotate.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/save.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/scanner.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/cs/scanning.page to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan Installing help/da/adf.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/crop.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/dpi.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/email.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/index.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/legal.xml to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/print.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/quality.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/reorder.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/rotate.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/save.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/scanner.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/da/scanning.page to /opt/src/git/simple-scan/_install/share/help/da/simple-scan Installing help/de/adf.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/crop.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/dpi.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/email.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/index.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/legal.xml to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/print.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/quality.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/reorder.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/rotate.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/save.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/scanner.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/de/scanning.page to /opt/src/git/simple-scan/_install/share/help/de/simple-scan Installing help/el/adf.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/crop.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/dpi.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/email.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/index.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/legal.xml to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/print.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/quality.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/reorder.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/rotate.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/save.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/scanner.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/el/scanning.page to /opt/src/git/simple-scan/_install/share/help/el/simple-scan Installing help/en_GB/adf.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/crop.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/dpi.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/email.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/index.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/legal.xml to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/print.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/quality.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/reorder.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/rotate.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/save.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/scanner.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/en_GB/scanning.page to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan Installing help/es/adf.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/crop.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/dpi.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/email.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/index.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/legal.xml to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/print.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/quality.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/reorder.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/rotate.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/save.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/scanner.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/es/scanning.page to /opt/src/git/simple-scan/_install/share/help/es/simple-scan Installing help/eu/adf.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/crop.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/dpi.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/email.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/index.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/legal.xml to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/print.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/quality.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/reorder.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/rotate.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/save.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/scanner.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/eu/scanning.page to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan Installing help/fi/adf.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/crop.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/dpi.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/email.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/index.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/legal.xml to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/print.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/quality.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/reorder.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/rotate.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/save.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/scanner.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fi/scanning.page to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan Installing help/fr/adf.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/crop.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/dpi.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/email.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/index.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/legal.xml to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/print.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/quality.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/reorder.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/rotate.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/save.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/scanner.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/fr/scanning.page to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan Installing help/gl/adf.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/crop.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/dpi.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/email.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/index.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/legal.xml to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/print.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/quality.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/reorder.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/rotate.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/save.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/scanner.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/gl/scanning.page to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan Installing help/hr/adf.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/crop.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/dpi.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/email.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/index.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/legal.xml to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/print.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/quality.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/reorder.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/rotate.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/save.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/scanner.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hr/scanning.page to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan Installing help/hu/adf.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/crop.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/dpi.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/email.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/index.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/legal.xml to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/print.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/quality.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/reorder.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/rotate.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/save.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/scanner.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/hu/scanning.page to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan Installing help/ia/adf.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/crop.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/dpi.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/email.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/index.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/legal.xml to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/print.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/quality.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/reorder.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/rotate.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/save.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/scanner.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/ia/scanning.page to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan Installing help/id/adf.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/crop.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/dpi.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/email.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/index.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/legal.xml to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/print.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/quality.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/reorder.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/rotate.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/save.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/scanner.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/id/scanning.page to /opt/src/git/simple-scan/_install/share/help/id/simple-scan Installing help/it/adf.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/crop.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/dpi.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/email.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/index.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/legal.xml to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/print.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/quality.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/reorder.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/rotate.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/save.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/scanner.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/it/scanning.page to /opt/src/git/simple-scan/_install/share/help/it/simple-scan Installing help/ja/adf.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/crop.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/dpi.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/email.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/index.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/legal.xml to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/print.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/quality.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/reorder.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/rotate.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/save.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/scanner.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ja/scanning.page to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan Installing help/ku/adf.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/crop.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/dpi.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/email.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/index.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/legal.xml to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/print.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/quality.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/reorder.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/rotate.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/save.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/scanner.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/ku/scanning.page to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan Installing help/nb/adf.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/crop.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/dpi.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/email.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/index.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/legal.xml to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/print.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/quality.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/reorder.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/rotate.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/save.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/scanner.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nb/scanning.page to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan Installing help/nl/adf.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/crop.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/dpi.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/email.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/index.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/legal.xml to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/print.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/quality.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/reorder.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/rotate.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/save.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/scanner.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/nl/scanning.page to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan Installing help/pl/adf.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/crop.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/dpi.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/email.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/index.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/legal.xml to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/print.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/quality.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/reorder.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/rotate.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/save.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/scanner.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pl/scanning.page to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan Installing help/pt_BR/adf.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/crop.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/dpi.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/email.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/index.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/legal.xml to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/print.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/quality.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/reorder.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/rotate.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/save.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/scanner.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/pt_BR/scanning.page to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan Installing help/ro/adf.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/crop.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/dpi.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/email.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/index.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/legal.xml to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/print.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/quality.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/reorder.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/rotate.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/save.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/scanner.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ro/scanning.page to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan Installing help/ru/adf.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/crop.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/dpi.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/email.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/index.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/legal.xml to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/print.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/quality.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/reorder.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/rotate.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/save.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/scanner.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/ru/scanning.page to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan Installing help/sk/adf.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/crop.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/dpi.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/email.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/index.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/legal.xml to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/print.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/quality.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/reorder.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/rotate.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/save.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/scanner.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sk/scanning.page to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan Installing help/sl/adf.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/crop.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/dpi.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/email.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/index.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/legal.xml to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/print.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/quality.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/reorder.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/rotate.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/save.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/scanner.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sl/scanning.page to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan Installing help/sr/adf.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/crop.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/dpi.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/email.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/index.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/legal.xml to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/print.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/quality.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/reorder.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/rotate.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/save.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/scanner.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sr/scanning.page to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan Installing help/sv/adf.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/crop.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/dpi.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/email.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/index.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/legal.xml to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/print.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/quality.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/reorder.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/rotate.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/save.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/scanner.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/sv/scanning.page to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan Installing help/tr/adf.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/crop.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/dpi.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/email.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/index.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/legal.xml to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/print.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/quality.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/reorder.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/rotate.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/save.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/scanner.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/tr/scanning.page to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan Installing help/uk/adf.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/crop.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/dpi.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/email.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/index.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/legal.xml to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/print.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/quality.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/reorder.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/rotate.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/save.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/scanner.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/uk/scanning.page to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan Installing help/zh_TW/adf.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/crop.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/dpi.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/email.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/index.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/legal.xml to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/print.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/quality.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/reorder.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/rotate.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/save.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/scanner.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing help/zh_TW/scanning.page to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan Installing src/simple-scan to /opt/src/git/simple-scan/_install/bin Installing /opt/src/git/simple-scan/data/simple-scan.1 to /opt/src/git/simple-scan/_install/share/man/man1 Installing /opt/src/git/simple-scan/data/icons/hicolor/scalable/org.gnome.SimpleScan.svg to /opt/src/git/simple-scan/_install/share/icons/hicolor/scalable/apps Installing /opt/src/git/simple-scan/data/icons/hicolor/symbolic/org.gnome.SimpleScan-symbolic.svg to /opt/src/git/simple-scan/_install/share/icons/hicolor/symbolic/apps Installing /opt/src/git/simple-scan/data/org.gnome.SimpleScan.gschema.xml to /opt/src/git/simple-scan/_install/share/glib-2.0/schemas Installing /opt/src/git/simple-scan/help/C/adf.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/brightness-contrast.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/crop.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/dpi.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/email.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/index.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/legal.xml to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/print.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/quality.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/reorder.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/rotate.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/save.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/scanner.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/scanning.page to /opt/src/git/simple-scan/_install/share/help/C/simple-scan Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/C/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/C/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/C/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/ar/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/bg/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/ca/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan/figures Installing /opt/src/git/simple-scan/help/cs/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan/figures Installing /opt/src/git/simple-scan/help/cs/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/cs/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/da/simple-scan/figures Installing /opt/src/git/simple-scan/help/da/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/da/simple-scan/figures Installing /opt/src/git/simple-scan/help/da/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/da/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/de/simple-scan/figures Installing /opt/src/git/simple-scan/help/de/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/de/simple-scan/figures Installing /opt/src/git/simple-scan/help/de/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/de/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/el/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/el/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/el/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/en_GB/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/es/simple-scan/figures Installing /opt/src/git/simple-scan/help/es/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/es/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/es/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/eu/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/fi/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan/figures Installing /opt/src/git/simple-scan/help/fr/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan/figures Installing /opt/src/git/simple-scan/help/fr/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/fr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/gl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/hr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan/figures Installing /opt/src/git/simple-scan/help/hu/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan/figures Installing /opt/src/git/simple-scan/help/hu/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/hu/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/ia/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/id/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/id/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/id/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/it/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/it/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/it/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/ja/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/ku/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/nb/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/nl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan/figures Installing /opt/src/git/simple-scan/help/pl/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan/figures Installing /opt/src/git/simple-scan/help/pl/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/pl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan/figures Installing /opt/src/git/simple-scan/help/pt_BR/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan/figures Installing /opt/src/git/simple-scan/help/pt_BR/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/pt_BR/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan/figures Installing /opt/src/git/simple-scan/help/ro/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan/figures Installing /opt/src/git/simple-scan/help/ro/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/ro/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/ru/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/sk/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/sl/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/sr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan/figures Installing /opt/src/git/simple-scan/help/sv/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan/figures Installing /opt/src/git/simple-scan/help/sv/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/sv/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan/figures Installing /opt/src/git/simple-scan/help/tr/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan/figures Installing /opt/src/git/simple-scan/help/tr/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/tr/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/uk/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/icon.svg to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/preferences.png to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan/figures Installing /opt/src/git/simple-scan/help/C/figures/scan_toolbar.png to /opt/src/git/simple-scan/_install/share/help/zh_TW/simple-scan/figures Running custom install script '/opt/src/git/simple-scan/data/meson_compile_gschema.py' dzu@krikkit:/opt/src/git/simple-scan (gnome-42)$
Phew - that was a little bit much for my taste, but let's just assume
that we can ignore most of the messages and execute the binary just as
describe previously in README.md. So all we need to do is set up
some environment variables and call the binary:
dzu@krikkit:/opt/src/git/simple-scan (gnome-42)$ XDG_DATA_DIRS=_install/share:$XDG_DATA_DIRS ./_install/bin/simple-scan
And indeed, simple-scan starts, presents its startup screen and even
finds my scanner. Cool! So I'm now all set to hack on the project
itself. Compiling and running it is a repetition of the previous
command. Though I will only use ninja -C _build all (i.e. without
the install part) to compile the sources while developing.
So let's look at the actual sources so that we see what we will work with in this excercise. Until now, I would expect to find a C or C++ application, but let's check:
dzu@krikkit:/opt/src/git/simple-scan (gnome-42)$ ls src/ app-window.vala config.vapi page-view.vala scanner.vala authorize-dialog.vala libwebp.vapi page.vala screensaver.vala autosave-manager.vala libwebpmux.vapi postprocessor.vala simple-scan-postprocessing.sh* book-view.vala meson.build preferences-dialog.vala simple-scan.vala book.vala page-icon.vala sane-backends.vapi dzu@krikkit:/opt/src/git/simple-scan (gnome-42)$
Aha! So to my positive surprise, this piece of software is not written in a low level (assembly) language but in a more powerful language called Vala. The GNOME project uses this language to build powerful GUI applications with less boilerplate code than plain C/C++ programs. In the past I only read about the language but never tried to use it myself, but the occasion presents the chance to improve on this 🤓
Opening one of the source files in Emacs shows plain text without syntax coloring…. Oh no! 🙈
But on the other side… Hey, without expecting it, I will learn new
Emacs stuff today as well! So going through the package manager via
M-x list-packeges quickly reveals these packages:
vala-mode 20201218.2109 available melpa Vala mode derived mode
vala-snippets 20150429.352 available melpa Yasnippets for Vala
Installing vala-mode is two clicks away and done in a few seconds.
In toplevel form:
vale-mode-pkg.el:1:1: Warning: file has no ‘lexical-binding’ directive on its
first line
Leaving directory ‘/home/dzu/.emacs.d/elpa/vale-mode-20190725.125’
Compiling file /home/dzu/.emacs.d/elpa/vale-mode-20190725.125/vale-mode.el at Fri Dec 1 01:02:16 2023
Entering directory ‘/home/dzu/.emacs.d/elpa/vale-mode-20190725.125/’
Compiling internal form(s) at Fri Dec 1 01:03:18 2023
In toplevel form:
vala-mode-pkg.el:1:1: Warning: file has no ‘lexical-binding’ directive on its
first line
In toplevel form:
vala-mode.el:1:1: Warning: file has no ‘lexical-binding’ directive on its
first line
vala-mode.el:268:8: Warning: reference to free variable
‘vala-multiline-strings’
vala-mode.el:436:10: Warning: in defcustom for ‘vala-multiline-strings’:
‘bool’ is not a valid type
vala-mode.el:463:4: Error: Symbol’s value as variable is void: vala-multiline-strings
Oh no, another unexpected thing happened. Emacs throws an error at me, but hopefully this error will not affect our current hacking session. If we want, we can push it onto our fun tasks to do list, but currently I do not want to deal with it. And yes, opening a vala file afresh in Emacs now presents me with a syntax highlighted view of it. Hooray!
So glancing over the file names I am immediately attracted by the file
book.vala, as it sound like it contains control on the book level,
i.e. the level of individual pages. And indeed, I see those functions
which look exactly like something I can learn how the data strcutures
work in this application:
public void move_page (Page page, uint location)
{
pages.remove (page);
pages.insert (page, (int) location);
reordered ();
changed ();
}
public void reverse ()
{
var new_pages = new List<Page> ();
foreach (var page in pages)
new_pages.prepend (page);
pages = (owned) new_pages;
reordered ();
changed ();
}
Ho hum. So this is the first time that I have to admit that I wrote the blog post while doing it, i.e. this post is kind of a transcribed "How-To Video" that you can ingest at yourown pace. And at this stage I realized that even though Emacs nicely syntax colors the code, the blog post ends up without any colors at all. Hmm.
Ah, I now remember. The blog is exported from the org sources with the
org-mode plugin for nikola. So maybe it is time to extend the
plugin to support another language for syntax highlighting. Amending
the file is easy enough and the change is nicely documented in the
git diff:
dzu@krikkit:~/blog (main)$ git --no-pager diff diff --git a/plugins/orgmode/init.el b/plugins/orgmode/init.el index 2c95651..1fb6cef 100644 --- a/plugins/orgmode/init.el +++ b/plugins/orgmode/init.el @@ -105,6 +105,7 @@ ("sqlite" . "sqlite3") ("tcl" . "tcl") ("udiff" . "udiff") + ("vala" . "vala") ("xml" . "xml")) "Alist between org-babel languages and Pygments lexers. lang is downcased before assoc, so use lowercase to describe language available. dzu@krikkit:~/blog (main)$
With this in place, let's try to insert the previous code segment
again, this time marked up as vala source:
public void move_page (Page page, uint location)
{
pages.remove (page);
pages.insert (page, (int) location);
reordered ();
changed ();
}
public void reverse ()
{
var new_pages = new List<Page> ();
foreach (var page in pages)
new_pages.prepend (page);
pages = (owned) new_pages;
reordered ();
changed ();
}
Hooray! Now it's also easy to document the changes I'll be doing the vala sources. Extra nice.
Looking at the code samples, it becomes clear that the code indeed is
vary high level and the collection of pages is held in a global
variable, called pages, of type List<Page>.
So constructing a new List with the reordered pages, assigning it to
pages and calling reordered (); and changed (); after that
should actually do what we want. Now that raises my hopes that I can
implement the feature I need in only a few lines of vala code.
To hook our own code into the program, we need to register a menu
entry for it. Searching the sources, I finally find an entry point
that looks promising. This is in app-window.vala:
private const GLib.ActionEntry[] action_entries =
{
{ "new_document", new_document_cb },
{ "scan_single", scan_single_cb },
{ "scan_adf", scan_adf_cb },
{ "scan_batch", scan_batch_cb },
{ "scan_stop", scan_stop_cb },
{ "rotate_left", rotate_left_cb },
{ "rotate_right", rotate_right_cb },
{ "move_left", move_left_cb },
{ "move_right", move_right_cb },
{ "copy_page", copy_page_cb },
{ "delete_page", delete_page_cb },
{ "reorder", reorder_document_cb },
{ "save", save_document_activate_cb },
{ "email", email_document_cb },
{ "print", print_document_cb },
{ "preferences", preferences_cb },
{ "help", help_cb },
{ "about", about_cb },
{ "quit", quit_cb }
};
Huh, did someone already think of this, but I was just too dumb to find it?
Here is what I get if I select Reorder Pages from the hamburger menu
in the main application:

Argh, indeed. 🙈 The functionality that I was looking for is there already. And of course even better than what I envisioned for this little hacking excursion.
Kommentare
Comments powered by Disqus