Package: sawfish Version: 1:1.11.90-1.1 Architecture: i386 The i386 version of the 'sawfish' package installs a file called /usr/lib/i386-linux-gnu/sawfish/DOC, which file(1) thinks is in dbm format, but which appears to be corrupt in some way, according to more than one dbm-reading program:
$ file DOC DOC: GNU dbm 1.x or ndbm database, little endian, old $ gdbm_dump DOC gdbm_dump: gdbm_open failed: Unexpected end of file $ python Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import anydbm >>> anydbm.open("DOC") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/anydbm.py", line 85, in open return mod.open(file, flag, mode) gdbm.error: Unexpected end of file The visible effect of this is that sawfish:i386 can fail to bring up its GUI configuration panel, printing a stack trace into ~/.xsession-errors along the lines of Lisp backtrace: #7 gdbm-open ... #6 doc-file-ref ... #5 documentation ... #4 nokogiri-report-slot ... #3 nokogiri-report-slots ((introduction introduction-link introduction-edit introduction-info)) #2 eval ... #1 user-eval ... #0 server-eval ... However this is all fine on amd64. sawfish:amd64 can open its GUI configurer successfully, and the corresponding file in that package, namely /usr/lib/x86_64-linux-gnu/sawfish/DOC, seems to be fine: $ file DOC DOC: GNU dbm 1.x or ndbm database, little endian, old $ gdbm_dump DOC | head # GDBM dump file created by GDBM version 1.14.1. 03/01/2018 on Tue Jun 19 11:42:13 2018 #:version=1.0 #:file=DOC #:uid=1000,user=simon,gid=1000,group=simon,mode=644 # End of header #:count=1 # End of data I did these tests on an amd64 installation, but I don't believe it's due to any architecture-specific formatting of dbm files (should there be any), because I get the same results whether I use the gdbm_dump binary from gdbmtool:i386 or the one from gdbmtool:amd64. Cheers, Simon -- for k in [pow(x,37,0x1a1298d262b49c895d47f) for x in [0x50deb914257022de7fff, 0x213558f2215127d5a2d1, 0x90c99e86d08b91218630, 0x109f3d0cfbf640c0beee7, 0xc83e01379a5fbec5fdd1, 0x19d3d70a8d567e388600e, 0x534e2f6e8a4a33155123]]: print("".join([chr(32+3*((k>>x)&1))for x in range(79)])) # <ana...@pobox.com>