One year later, i have to admit that GNOME Scan wasn’s as dead as i though. Thanks to Philipp SADLEDER, the team triaged bugs, kept master uptodate with GNOME hosting and dependencies, etc. I decided to release a quite stable snapshot of master, even if no fundamental features were added, to allow further developments.

This release was built with vala 0.7.6. It support SANE 1.0.20 which require some more controls from the frontend. Some bugs were fixed and minor features were added. I also added unit testing framework. Here are some details :

  • Added option value preselection. Preselect resolution, papersize and format ;
  • Compute scanner icon (e.g. multifunction printer) ;
  • Support pixel device (e.g. webcam) ;
  • Handle hardware extent. Filter papersize not fitting hardware extent ;
  • Fixed bugs:
    • inverted black&white on 1bit scan.
    • perpetual waiting cursor and call to null GdkWindow in GnomeScanDialog.

You will find sources at usual place :

No binary packages are planned. Help is still welcome. Next step is to write tests and continue development of features ! There are some news to go, stay tuned :)



GNOME Scan needs love

December 11, 2009


GNOME Scan is a asleep. Bugs are triaged and sometime fixed, but no development occurs on master.

There is tons of features to implement. Many uses cases and users. This is definitively a nice project. GNOME Scan just needs love.

So anyone wanting to write code, add features, use new GNOME technologies is welcome. I’ll be glad to help anyone !

Thanks !


0.6.2 in Ubuntu Karmic

July 14, 2009


Finally, GNOME Scan 0.6.2 got updated in Ubuntu. They used the old “gnomescan” packaging so if you use my packaging (in my PPA), you should uninstall it before using Ubuntu packaging.

Fedora and Foresight looks updated.


Allocating time

May 8, 2009


Since january, i’m obviously too involved in projects, scouting, work and life in general. I couldn’t allocate time for GNOME scan, only the minimal for git migration. Today i migrated GNOME scan to vala master. I can’t predicate 0.8 release. I’m managing my involvements to reduce the amount of work needed. GNOME scan will be a winner in the long term. I’m attached to GNOME scan, i just need to be less involved.

Anyway, contributions are welcome ;)

Best regards,

Updates on development

January 31, 2009


After 0.7.1, i paused my GNOME Scan development for few weeks. Luckily, i got some feedback about 0.7.1 and 0.6.X releases. Thanks to Philipp, the bugzilla is active. Today i woken up the development by adding a shiny new feature of GNOME Scan that make it actually a library, not a standalone program. This feature is inspired by the TWAIN standard i took some time to read. I call this feature « option preselection ».

Option Preselection

This feature allows end application to preselect various properties of option on all the nodes. Currently, only default value is implemented, but the final goal is to constraint logically hardware option. E.g. : only allow to select in RGB, ont Grey ; or add standard Picture format to format selector in your f-spot scanner plugin. Currently only default value is handled. I added back the “Use screen resolution as default resolution” feature in flegita.

In 0.6, application could override a value in GnomeScanSettings thus preselecting default value. This was an unpredicted feature :). But it shows its limits when it comes to constraint values.

Maintaining 0.6 branch

With Philipp, we are doing a good job on maintaining 0.6 series. This series is not that bad. Today i fixed the Gimp plugin to properly handle gray scan. We plan to release 0.6.2 a soon as possible. I would like to fix support of SANE backend using pixel unit for scan area.

There is also some bugs that cause GNOME Scan to crash randomously at startup. I suspect thread managment to cause this behaviour. Very bad bug :). That would be good to have it fixed for GNOME 2.26 in a 0.6.3 release. No plan through.

Developping 0.7 branch

For now, i want to implement a good preview handling in GNOME Scan, taking advantage of the new option infrastructure (both model and UI). After that big point, i’ll add processing back (rotation, correction, etc.) and option persistance in GConf.



First 0.7 alpha : 0.7.1

January 15, 2009


After one month of heavy development, i release GNOME Scan 0.7.1. This release is an alpha “preview” of the 0.8 series. It has several regression, however it already show improvments in behaviour, features and support.

You can download it at http://download.gnome.org/source/gnome-scan/0.7/

See detailed annoucement at http://mail.gnome.org/archives/gnome-announce-list/2009-January/msg00044.html including known regressions.

This version is not parralel installable with 0.6. However, you should be able to run it from source : run ./configure && make && src/flegita .

last weeks, i didn’t work as heavily as in december. Some bugs gets fixed in 0.6. 0.8 won’t land along 2.26 because i won’t be able to follow feature freeze and such. This is another good reason to maintain 0.6 branch. Philipp Sadleder is THE maintainer of the 0.6 branch. I fix bug he ask me to fix. He does a pretty good work and help me a lot triaging bug, fixing bug, etc. 0.6 is a quite good version with enhanced support and performance. Even if 0.8 does better in all of these fields, 0.6 is a major release that should have its glory :)

0.8 will be for 2.28. There is good chance to get it with 2.28. There is preview area, processing, flegita-gimp, flegita-print, prerequisite, saving to GConf and other things to implement before 0.8 gets ready. That’s fairly big piece of the project but a huge part has been done. 0.7 has only 1000 C lines less than 0.6.1.

All in all, releasing 0.8 six month later allows other project like vala to evolve and mature. This should make 0.8 a very good base. 0.7.2 will include preview area and prerequisite. I plan to follow 2.27 schedule for beta, string freeze, etc.



Updates on development

December 25, 2008


Finally, there won’t be 0.7.1 for Christmas. Sorry :). Actually, SVN is pretty close to 0.7.1, i just don’t have the time. And would like to improve debugging output before releasing.This will be hard to get 0.8 in time with 2.26, but i’m working on it :). GNOME Scan SVN is very active these weeks.

Current status is quite good. Dialog, option and job has been mostly rewritten. GSane backend has increased image format support, handle mass acquisition and i just commited paper-size support. Overall architecture is better. The software actually allow to do basic scan : put your paper on top right corner, select papersize and trigger scan. That’s pretty minimal : no preview, no custom area, etc.

I’m thinking of a way for application to add prerequisite : default value, constraint (range or enum) and maybe other things. I have some preliminary code. GNOME Scan 0.6 allow default value but wasn’t designed too. GnomeScanOptionManager will have a lot of job compared to it’s predecessor GnomeScanSettings.

Tomorrow, i’ll leave for Roma for a week :). So trunk should be quite silent. However, Philipp has some time to dive into 0.6 branch, fix some bug and maybe release a 0.6.2 :). Thanks Philipp for you help on 0.6 :D

Happy new year!


Updates on development

December 20, 2008


Finally i got acquisition back. There was a huge work on option before getting acquisition. Then i hit some limitation of GEGL. GEGL assume that resource is available before the pipeline is launched. This is the case with files (like in Gimp or scan from file) but not from scanner (nor any network image acquisition protocol). This mean that finally GNOME Scan handle both case : using directly a GeglOp as source or acquire and then process GEGL pipeline. We might also hit another limitation for GEGL for sink : GEGL may ask the sink to process one sub-area of the image. That’s pretty annoying for OCR.

So this mean that instead of fully migrating to GEGL operation, GNOME Scan allow to use a unified GEGL pipeline, but allow as well to implement processing outside a GEGL operation.

Anyway, i write a struct similar to a GEGL operation to handle all the data translation between SANE and GEGL so that the code keeps files light and code readable. Maximum file lenght is 436 lines for generic option handling, and this file is almost finished. Compare with old gsane-scanner.c with its 1236 lines or gsane-meta-params.c with 833 lines or the worst : gnome-scan-dialog.c was 1438 lines !

Even vala generated C files are not that long. That’s a one of the goal of 0.8 : refactor in order to be more maintainable and contributable :)

Development took some times and i’m searching a flat for the next month. So i may postpone 0.7.1 for 2009. I may even postpone 0.8 for 2.28 if i can’t get feature parity in time for feature freeze. Philip and I are maintaining 0.6 series. It is a quite stable series with a fairly good support for SANE backend diversity and i don’t want to provide a less stable release. Patches welcome, especially to maintain 0.6, there is a dedicated branch GNOME_SCAN_0_6.



Updates on development

December 11, 2008


Let me expose some changes that happen on SVN. This is quite technical but shows the progress.

  • I committed GEGL vala binding to GEGL SVN. It is used by Gnome Scan SVN.
  • Lots of update on the GUI : the selector and the options  on the front tab are now packed in a Paned container allowing user to choose the space to allocate to each part of the tab. Useful for people having a lot of scanner listed. Other minor or not updates.
  • Seperate modules in their own directory in the source tree and other clean up of the project.
  • Reintroduction of GSane, the SANE GNOME Scan backend. It is unusable yet. More on this below.

I remember that before releasing GNOME Scan 0.6, i received help from Ross BURTON aka burtonini. He was very helpful on library, application and building system. However i remember Ross being disgusted by the GSane part. GSane in 0.6 provide far better support than 0.4 SANE-only GnomeScanBackend. However, it was designed and written with a lot of lazyness ;). I’m sometime tired of GObject boiler plate code.

While porting to new lib/, i wanted to make GSane as clear as possible in order to ease contribution and maintainance. So i first took the time to dream, think, sketch and design this sub-project. I took some decisions :

  • Seperate modules sources in respective directory
  • Don’t be afraid of boiler plate code. Just take to time to write it (just as needed). Thanks to vala for writing all lib/ and src/ boiler plate code. Writing modules/ boiler plate code is note that much code.
  • Keep one class per file and avoid unterminating files.
  • Don’t gather features in one class or one files. This way is seperated scanner (hardware option probing and lib/ interaction), option handling (translation between SANE and GNOME Scan API, workarounds, feature emulation, high level option implementation, etc.) and acquisition (GEGL operation, frame format translation).

SVN does only probe scanners, open them an retrieve option count. Base class are there, ready for implementing all the option handling (that’s 75% of the job of GSane). I still need to write GEGL operation for scanning. The challenge will be to support unknown length scan (think shedfeed scanner, business card reader and such).

After that, i’ll have to write the preview area and plugins. Then port GIMP plugin and 0.8 will be ready. GSane should be usable for Christmas, however preview may not be ready before 2009. I take to time to do it properly, in order to avoid obscur code and bugs. I’m fed up of rewrite ;)

About 0.6 branch :

Despite the fact that GNOME Scan is 0.X software and thus i don’t support older version, Philip and me are to provide bug fixes for GNOME Scan 0.6. So yes, there will be a 0.6.2.



GNOME Scan 0.6.1 and updates

December 6, 2008


Due to demand, I decided to branch 0.6 and maintain it a bit. Gnome Scan 0.4 is still tryied by some users due to ubuntu but it has blocker bug. So was 0.6 along older version of Gegl. So i updated 0.6 to Gegl 0.0.21 SVN, fixed a tiny bug about cursor and add support for Gimp 2.6 menu layout to Gimp plugin.

Download it at http://ftp.gnome.org/pub/GNOME/sources/gnome-scan/0.6/ .

Today, i got Gnome Scan to actually scan the file. Building the Gegl pipeline is done.next step is to port GSane to new API. There is still a lot of work until feature partity : preview, processing, Gimp plugin, etc. Then documentation etc. Nevertheless, i committed the work to SVN in order to allow tester an contributors to participate. I’ll publish a 0.7.1 version before Christmass at all cost, including no preview or no gimp plugin.