Michal Čihař - Blog Archives for English

Bad translations status

I know phpMyAdmin translators will love us for this, but I just commited translatable messages for new setup script. This leads to situation when even the best translations are at 75% (see statistics). I hope our brave translators will manage to handle these 350 new messages for upcoming 3.1 release, at least for major languages, which were always close to 100%.

PS: Looking for translator to Czech!

Double check what you do

I just wanted to fix some RC bugs till I'll go home, so I looked at the list of open ones and randomly chosen two bugs about roxen fonts which looked like low hanging fruits. Both were in fact same issue, just copied to two packages.

I worked on the fix, creating some intermediate version and then I finally wanted to upload the package. Unfortunately in this step I somehow managed to use the intermediate version, which did not really fix the issue. As packages were already uploaded, there was not much I could do except yet another NMU, now with full set of changes.

Just as accepted emails arrived I also noticed that I messed up bug numbers in changelog - I used same bug number in both changelogs. Okay, manually closing the bug worked around this.

But now I'm afraid what else did I mess up. Probably it's time to go for a dinner and stop working on computer for now :-).

Gammu test version 1.21.90

I just published new Gammu testing version. Major changes are in handling some special Nokia responses, handling of Siemens phonebook entries and introduction of automatic testing using CDash on http://cdash.cihar.com/index.php?project=Gammu. Full list of changes:

  • Sign Windows binaries during build.
  • Detect long FM station names (bug #727).
  • Add ID for Nokia 2630b.
  • Handle properly very long lines in vcards (bug #728).
  • Do not build and install locales if gettext is not compiled.
  • Increase number of calendar entries (bug #725).
  • Leak free test runs.
  • Support backup of phone phonebook from Siemens (bug #732).
  • Properly handle GetNextMemory on Siemens (bug #732).
  • Save textual category to backup (bug #737).
  • Enable dashboard testing using CTest/CDash.
  • Add option to do coverage analysis.
  • Properly handle debug file closing.
  • Add test case for debug logging.
  • Fix decoding of some SMS messages from Nokia phones (bug #735).
  • Hack for (still) unknown error code (bug #733).

You can download from usual place: http://cihar.com/gammu/, Debian users will find packages in experimental soon.

Gammu news

I finally catched up with Gammu backlog from holidays and now it is time to move it a bit further.

Automatic testing

During this week I set up CDash instance for acquiring results of automatic nightly checks of Gammu. Each night Gammu is build on several hosts (currently Debian x86_64, Debian x86, SUSE x86_64 and crosscompilation for Windows on Debian) and results are posted to the dashboard. If you have some other architecture which could participate in testing, you are welcome to contribute! It is simple - just checkout svn, create build directory and configure there Gammu using cmake. You can enable coverage tests (-DCOVERAGE=ON). Then just run every night make Nightly for regular testing or make NightlyMemoryCheck to do dynamic allocation analysis. There is more detailed documentation in sources (INSTALL file).

Thanks to this, I can hopefully sooner spot regressions and possible problems on different architectures.


With upgrade of Mantis, new feature called roadmaps arrived. I started to use it for planning features in future Gammu releases, so you can see what bugs should be fixed in future releases in Gammu roadmap. Currently there are not much things planned, because till now I had to focus only on bug fixing, but I think with 1.21.0 we have reached much better quality than in past releases and now is time to do some important changes in the core.

Nokia phone required

As you can already see in roadmap, I plan some bigger changes to Gammu core. I currently have on Sony-Ericsson phone and I would not be able to properly test how these changes will affect Nokia drivers. So for start I will need at least Nokia Series 40 3rd edition phone. Nokia 6233 (or 6234) currently looks as a reasonable choice, but if you have any hints for cheaper one with similar features, just drop me an email.

Perfect would be if somebody would have half broken phone (I do not intend to use it for anything else than Gammu development, so broken camera, speaker, microphone or display does not really matter) and will be willing to donate it to me. If this will not work out, I'll have to buy used one and I will try to collect funds for this. If you want to contribute, check my donations page for possibilities.

Wammu 0.29

I just released version 0.29 of Wammu. This release fixes various problems found by users. Full list of changes:

  • Fixed handling of call entries with multiple dates.
  • Handle phones where writing entry to SIM card takes long (bug #682).
  • Properly skip corrupted entries (bug #467).
  • Added export of messages to XML (thanks to Florent Kaisser).
  • Properly report failures when importing backup (bug #303).
  • Add --info command line option to show connection info (bug #426).
  • Add --debug switch to enable debug output to stderr (bug #426).
  • Sign Windows binaries.

This release also comes with binary for Windows with embedded Gammu 1.21.0.

Opps, I did it again

It looks like I again did same mistake with Gammu and python-gammu binaries - they started to crash randomly. It was again caused by fact, that they were linked to two C runtime libraries (msvcrt.dll and msvcr70.dll). I should make some automated check for this to avoid uploading so broken things, but I don't know any command line tool which can list DLLs which are required by exe and which works on Linux (Wine is okay too). Anyway the binaries has been just recompiled and uploaded, so if Gammu or python-gammu crashes for you, please download new version.

PS: Thanks to Olaf Leidinger, now I know how to check it automatically:

/usr/i586-mingw32msvc/bin/objdump -x filename.exe | grep "DLL Name"

python-gammu 0.27

New version of python-gammu has been just released. It fixes possible crashes and brings compatibility with Gammu 1.21.0. Full list of changes:

  • Compatibility with current gammu.
  • Use new GSM_MemoryTypeToString.
  • Fix several off by one errors.

Download from usual place: http://cihar.com/gammu/python/

Gammu stable version 1.21.0

Good news everyone, after long time of inactivity and huge development over past month, new stable Gammu release is out. Since 1.20.94, there are only minor fixes in handling some corner cases in AT parser, but full list of changes since last stable 1.20.0 is quite long:

  • Handle properly empty SMSC (bug #722).
  • Disable AT/OBEX for Motorola K1v (bug #721).
  • Automatically switch to nodtr connection if DTR/RTS setting fails.
  • More verbose debug messages in API.
  • Free phone data after testing model to avoid memory leaks.
  • Properly handle if IMEI is too long (bug #709).
  • Try to handle situation when CMGL does not list all messages.
  • Fix typo in MySQL file (bug #716).
  • Better parsing of USSD replies (bug #718).
  • Properly restore caller groups on Nokia 2630 (bug #706).
  • Fix listing of used calendar locations on Nokia (bug #710).
  • Properly encode class and coding to SMS (bug #714).
  • SMSD for MySQL no longer fails when sending message (bug #715).
  • SMSD stores signal and battery state in PostgreSQL.
  • Properly handle multiline firmware information.
  • Fix crash when decoding EMS pictures (bug #549).
  • Motorola phones sometimes reply in UCS2 instead of HEX (bug #712).
  • Use native functions sleep/usleep if available.
  • Improve FBUS initialization sequence.
  • Fixed reading for ringtones from Nokia 5510 (bug #529).
  • Do not crash if ringtone name is too long (bug #529).
  • Fix possible crash while reading of messages using AT.
  • Increase timeout when writing SMS message (bug #596).
  • Cleaned up issues with reading from Bluez (bug #670).
  • Fixed Windows binary (define properly MSVCRT to use) (bug #683).
  • Fixed compilation with CURL on Windows.
  • Windows binary now has only MySQL and CURL support (bug #683).
  • Fill in timezone information (bug #696).
  • Detect reserver message type (bug #691).
  • Increase timeout for switching to OBEX (bug #690).
  • Disable postal address for Nokia 2600 (bug #659).
  • Encode phone number only with phones which need it (bug #654).
  • Increase timeout for writing memory entry (bug #654).
  • Handle properly when phoned does not tell SMSC (bug #616).
  • Initial support for waiting calls in AT engine (bug #551).
  • Fixed dialing on some AT phones (bug #471).
  • Support for skipping location when reading (bug #467).
  • Improved detection of serial port Bluetooth channel.
  • SMSD reconnects to MySQL (thanks to Wouter D'Haeseleer).
  • SMSD stores signal and battery state in MySQL (thanks to Wouter D'Haeseleer).
  • Initial support for reading messages in simple text mode.
  • Report if monitor failed because of an error.
  • Handle not found errors on OBEX connect (bug #705).
  • Report more verbosely that some feature has been disabled on compile time.
  • Add ID for Nokia 5200 (thanks to Andreas Metzler).
  • Add two IDs for Nokia 2600 (bug #659).
  • Add ID for lot's of Sony Ericsson phones.
  • Use AT parser for AT+CPBS? reply.
  • Use all possible ways to get memory status (bug #687).
  • Detect more error codes from Nokia phones (bug #659).
  • Fix decoding of text using iconv (bug #687).
  • Fix linker flags check, caused failures on MacOS X.
  • Add second ID for Nokia 2610 (thanks to Nicolas Forget).
  • Add ID for Nokia 6060.
  • Try to use OPP and PBAP Bluetooth profiles also (not tested!).
  • DumpMessage is not printing last char (bug #692).
  • Support for favorite messaging number (bug #693).
  • Add ID for Nokia 2630 (bug #693).
  • First attempt for Bluetooth support on OS X.
  • Do not open debug file for second time when using global debug.
  • Fix DC memory name printing (bug #698).
  • Add API function GSM_MemoryTypeToString.
  • Report correct size of DC/RC/MC memory on DCT4 phones (bug #699).
  • Store favorite messaging as phone number, not only as ID (bug #693).
  • Avoid empty line at beginning of vCard backup (bug #701).
  • Add ID for Nokia 2760.
  • Catch not acceptable errors in OBEX (bug #702).
  • Operation not allowed is not an unknown problem (bug #678).
  • Add ID for Nokia 5000 (bug #677).
  • Increase limit of files for DCT4 and check array size (bug #676).
  • Allow to enter PIN code from stdin (bug #633).
  • Handle HEX reply instead of UCS-2 from Motorola (bug #697).
  • Avoid decoding of @ in email address (bug #697).
  • ABI change, because of increasing some limits.
  • Config file option rsslevel no longer works, superseded by 'gammu checkversion'.
  • Dropped GSM_ReadHTTPFile from API, gammu now uses CURL instead.
  • Support for longer notes on Nokia phones (bug #607).
  • Add deleteallmemory command.
  • Ignore trailing spaces in AT commands.
  • Fix crash on long lines in vCards.
  • Compatibility with broken iWOW responses (bug #650).
  • Do not use hard delete flag for updating entries (bug #634).
  • Identify Nokia 1200 (bug #649).
  • Fix parsing of date/time reply on Sony Ericsson G900 (bug #647).
  • Increased limit for folder name (bug #646).
  • Fix parsing of empty date (bug #643).
  • Recognize general number on Nokia 6230i (bug #655).
  • Fix writing of phone number using HEX charset (bug #512).
  • Recognize more CME errors, thanks to Paolo oopla@users.sf.net.

You can download from usual place: http://cihar.com/gammu/, Binary packages will be available soon.

Why to make sensible error messages?

Yesterday I faced problem with VMware server that it can not run 64-bit guest system. I'm using 64-bit SUSE and 64-bit VMware, so it should work, right? I can select 64-bit system in VMware, but the guest is simply 32-bit without any error.

In documentation, man can find only "VMware Server supports 64-bit guest operating systems only on host machines with supported processors.". How helpful! After a bit of googling, it turns out that VT needs to be enabled and usually it is not enabled in BIOS (any reason for this?).

So let's reboot, go to BIOS, enable VT and it should work. Unfortunately not, after reboot, still same problem. I was almost given up at this point, but I decided to recheck BIOS, whether I really enabled the right thing. Yes I did, but I did not notice small note, that to apply this setting, I need to power off and on the computer. That was the trick! Now it finally works. I just wonder why it has to be so complicated...

Why gpg-agent does not work?

Summary: If programs would have useful man pages or error messages, man would not have to look into source code.

I just set up Debian sid chroot on my computer and have to sign something inside this chroot (dpgk-buildpackage). Okay, I want it to use gpg-agent in my host system, that should not be hard. Looking at gpg man page, GPG_AGENT_INFO variable is used to forward information about agent socket, PID and protocol version, so I set this variable according to host system, but it still does not work, giving nothing saying error that agent is not working.

So let's debug this beast - strace reveals, that communication with agent works, but it replies "113 Server Resource Problem". Hmm, still not much useful information, but let's google for this problem. Fortunately Google reveals related Seahorse code, where man can find, that not set DISPLAY variable is causing this issue. Could not the error be more friendly, so that it tells me directly what is wrong?