Package: smoke-dev-tools Version: 4:4.8.4-1 Severity: normal I am helping to generate some smoke bindings for the PLplot library. The command I first used to generate the source code was
/usr/bin/smokegen -config /usr/share/smokegen/qt-config.xml \ -smokeconfig \ /home/software/plplot/HEAD/plplot.git/bindings/qt_gui/smoke/smokeconfig.xml \ -I"/home/software/plplot/HEAD/plplot.git/bindings/qt_gui/smoke" \ -I"/home/software/plplot/HEAD/plplot.git/include" \ -I"/home/software/plplot/HEAD/plplot.git/lib/qsastime" \ -I"/home/software/plplot/HEAD/plplot.git/lib/nistcd" \ -I"/home/software/plplot/HEAD/plplot.git/drivers" \ -I"/home/software/plplot/HEAD/build_dir" \ -I"/home/software/plplot/HEAD/build_dir/include" -- \ /home/software/plplot/HEAD/plplot.git/bindings/qt_gui/smoke/plplotqt.h That generated valid but near empty code. So I played around a bit and discovered that smokgen silently drops all -I options that are not followed by a space, so, e.g., /usr/bin/smokegen -config /usr/share/smokegen/qt-config.xml \ -smokeconfig \ /home/software/plplot/HEAD/plplot.git/bindings/qt_gui/smoke/smokeconfig.xml \ -I "/home/software/plplot/HEAD/plplot.git/bindings/qt_gui/smoke" \ -I "/home/software/plplot/HEAD/plplot.git/include" \ -I "/home/software/plplot/HEAD/plplot.git/lib/qsastime" \ -I "/home/software/plplot/HEAD/plplot.git/lib/nistcd" \ -I "/home/software/plplot/HEAD/plplot.git/drivers" \ -I "/home/software/plplot/HEAD/build_dir" \ -I "/home/software/plplot/HEAD/build_dir/include" -- \ /home/software/plplot/HEAD/plplot.git/bindings/qt_gui/smoke/plplotqt.h generated lots of (valid) code. Even though smokegen --help documents that a space must be between the -I option and corresponding directory, I still view this as an egregous smokegen bug since (a) invalid options should be noted rather than silently dropped, and (b) smokegen is trying to mimic how compilers find headers, but (as far as I know) compilers only honor -I options without a space between "-I" and the directory name. (For example, that is the only form documented by info g++.) So smokegen demanding a blank between the "-I" and the directory name violates the principle of least surprise and therefore you should expect most serious smokegen users (who normally must use at least one -I option) to trip over this issue just like I did. Violating the principle of least surprise is just bad human engineering! N.B. I only have access to Debian stable, but if this issue is not solved in the latest smokegen you get with debian unstable, I am virtually positive this is an upstream smokegen bug which I hope you will propagate there. -- System Information: Debian Release: 7.6 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages smoke-dev-tools depends on: ii libc6 2.13-38+deb7u4 ii libgcc1 1:4.7.2-5 ii libqt4-xml 4:4.8.2+dfsg-11 ii libqtcore4 4:4.8.2+dfsg-11 ii libsmokebase3 4:4.8.4-1 ii libstdc++6 4.7.2-5 smoke-dev-tools recommends no packages. smoke-dev-tools suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

