[sane-devel] [Janitorial] Zero(!) compiler warnings

Olaf Meeuwissen paddy-hack at member.fsf.org
Wed Sep 21 13:12:27 UTC 2016

Hi devs,

About a year ago, I set out trying to get rid of *all* compiler warnings
on a "well-defined" build platform.  I'm happy to report that we've made
it!  With the commit of ee550e5d[1], the debian-8-full build[2], is free
of compiler warnings!

 [1] https://gitlab.com/sane-project/backends/commit/ee550e5de8e636642b9895d54f6740aa38ee6ff8
 [2] https://gitlab.com/sane-project/backends/builds/4218963

Looking over the build log (love how clean those compile commands look,
BTW), next are four linker warnings about the use of `mktemp`, which, as
we all know, is racey and should be avoided.  Like the plague, so I'd
like to see these get fixed.

# I have a patch for the avision backend already.  By all means, tackle
# any of the canon, canon_dr and dc25 backends' use of mktemp.

There are still a number of description file entries looking for USB
product IDs and interfaces.  I added several in 1a328e41[3] based on
what's in the Linux USB IDs list[4] and will fix the typo I introduced
in a jiffy.  I don't think it's realistic to get all of these fixed but
if you're willing (here's wishing the hpaio folks are listening in!) to
take a look, be my guest.

 [3] https://gitlab.com/sane-project/backends/commit/1a328e412fb7bf3872de20fe6e57b00ab913a75d
 [4] http://www.linux-usb.org/usb.ids

The debian-8-mini build[5] is relatively clean, just a few minor things
due to the intentional lack of *any* libraries.  The alpine-3.4.-musl
build[6] hints at portability problems in the threading and parallel
port areas.

 [5] https://gitlab.com/sane-project/backends/builds/4218962
 [6] https://gitlab.com/sane-project/backends/builds/4218964

The fedora-24-clang build[7]?  Let's leave that for another time.  Much
of what you see there will pop up with gcc-6.x as well (which will be in
Debian 9, rumoured to release sometime early next year, IIRC).

 [7] https://gitlab.com/sane-project/backends/builds/4218965

Seeing that debian-8-full now builds without compiler warnings, I am
going to keep it that way by adding a CFLAGS="-Werror" to the `make`
invocation of the build.  Remember: AWARE[8].

 [8] http://lists.alioth.debian.org/pipermail/sane-devel/2015-November/034145.html

Oh and BTW, Debian released 8.6 last weekend so the Docker image used
for the debian-8-* builds will be updated some time soon as well.

Hope this helps,
Olaf Meeuwissen, LPIC-2            FSF Associate Member since 2004-01-27
 GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13  F43E B8A4 A88A F84A 2DD9
 Support Free Software                        https://my.fsf.org/donate
 Join the Free Software Foundation              https://my.fsf.org/join

More information about the sane-devel mailing list