lintian says
W: wmaker source: debian-rules-calls-debhelper-in-odd-order
dh_makeshlibs
and indeed invoking dh_installdeb (which install the maintainerscripts)
before dh_makeshlibs can add the ldconfig call to them causes these
errors:
E: libwutil1: postinst-must-call-ldconfig usr/lib/libWUtil.so.1.0.2
E: libwings2: postinst-must-call-ldconfig usr/lib/libWINGs.so.2.0.1
Shared libraries need to be shipped in separate packages with shlibs
information. Add libwutil1 and libwings2 packages and let libwings-dev
depend on them.
Instead of calling dh_installman multiple times just call it once. List
the manpages that should be installed in package specific
debian/package.manpages.
Starting with debhelper v3 mode every file in etc is flagged as a
conffile by dh_installdeb. - Drop (commented) code for doing this
manually from debian/rules.
-isp is default behaviour of dpkg-gencontrol since 1.13.16 (18 Feb
2006)
The code for generating debian/shlibs.local is not used, remove it.
dpkg-shlibdeps already searches in debian/libwraster3/usr/lib/ by
default.
Use dpkg-buildpackage -rfakeroot option to only run the parts of the
package generation process which require (fake)root privileges under
fakeroot. (e.g. debian/rules build should not be run as root.)
Simplify debian/rules by using dpkg-source v3 (quilt) instead of the
home-grown patch system in debian/rules.
Change debian/nightly_build.sh to build a non-native package.
Use dh_prep instead of "dh_clean -k" (dh-clean-k-is-deprecated). However
do not replace instances of dh_clean without -k option. (Debian
bug590244). Build-Depend on debhelper 7.
Correct floppy mountpoint location to match FHS.
Quoting FHS <http://www.pathname.com/fhs/pub/fhs-2.3.html>:
/media : Mount point for removeable media
Purpose
This directory contains subdirectories which are used as mount points for removeable media such as floppy disks, cdroms and zip disks.
[...]
The following directories, or symbolic links to directories, must be in /media, if the corresponding subsystem is installed:
Directory Description
floppy Floppy drive (optional)
[...]
libWINGs is using mathematical functions (atan, sqrt, etc.). Check
whether we need to lik against libm to use these and link libWINGs
against it if necessary.
libWINGs is using libwraster functions (e.g. RScaleImage) and therefore
needs to be linked against it.
ametzler@argenau:/tmp/WMAKER/wmaker-crm$ env LD_LIBRARY_PATH=debian/wmaker/usr/lib ldd -r debian/wmaker/usr/lib/libWINGs.so.2.0.1 2>&1 | grep RScaleIma
undefined symbol: RScaleImage (debian/wmaker/usr/lib/libWINGs.so.2.0.1)
libWINGs is using libWUtil functions (e.g. WMAddIdleHandler). Reorder
lib_LTLIBRARIES to build libWUtil before libWINGs. Link libWINGs against
libWUtil.
In C, dividing two integers automatically rounds towards zero, so ceil(a
/ b) is useless as the result is truncated before ceil ever sees it. The
correct result for positive integers is obtained by (a + b - 1) / b.
I personally cannot stand stealing Ctrl+Wheel for resizing windows, so I
turned it off. But wmaker is still preventing Ctrl+Wheel from reaching
apps, which is certainly not the behavior I desire.
We grab Mod+Button events for our own purposes, and swallow them using
XAllowEvents(AsyncPointer) to prevent the client window from seeing
them. But if events are coming in fast enough (e.g. via fast wheel
scrolling) so that multiple grabbed events are in the queue, the second
queued event would be allowed to leak through to the client by the
unconditional XAllowEvents(ReplayPointer) a few lines later.
One misuse of CARD32 was missed back when someone fixed the 64-bit
issues (background: X has 8-bit, 16-bit, and "32-bit stored in a long"
data formats; on a 64-bit system, long is 64 bits). This was causing
minimized windows to be restored as shaded, and possibly occasional
crashes, when wmaker was restarted.
Also, throw in a safety check that 10 items really were returned before
trying to access them.