Michal Čihař - Blog Archives for Gammu

Gammu cross compilation using MinGW and CMake

I just implemented in my Gammu tree support for cross compiling for Windows on Linux host using MinGW. The support of CMake for this is quite limited, but implementation was not that hard.

The only tricky part was to include compiler settings from Windows and force setting of library and executable prefixes and suffixes. Then only build time configuration had to be disabled. If you want to do this for other project, see changeset for changes needed for this.

Resulting binary works without problems on Windows, the only problem right now is disabled IrDA and Bluetooth support, but I hope I will resolve this soon.

CMake support in Gammu

New version of Gammu I anounced few minutes ago brings among other changes support for building using CMake. So far it should be able to handle without problems situation on Linux hosts, but I don't have environment for testing Windows and MacOS build. So I'd like to receive some feedback, if it will be possible to completely get rid of autoconf in future.

Gammu test version 1.09.17

I just released new version of Gammu, you can download it from download server. There is quite a lot of changes:

  • First release by Michal Cihar, this changes some URLS, see readme.txt.
  • Experimental CMake build support, so far not completely working (Michal Cihar).
  • Improved vCard RRULE parsing (me, Rene Peters).
  • Added support for location of alarm (Peter Ondraska).
  • Fixed Slovak operator names (Peter Ondraska).
  • Improved battery reporting for SE phones (Michal Cihar).
  • Fixed small c-cedilla decoding (Samuel Adam) (bug #64).
  • Fix memory leak in dll (Petr Stasa - Gord).
  • Add some functions to dll (Petr Stasa - Gord).
  • PostreSQL support for SMSD (Andrea Riciputi).
  • Build fixes for Darwin (Andrea Riciputi).
  • Identify M341i over IrDA (Michal Cihar, flewww, bug #65).
  • Callback functions now take pointer to state machine to allow full identification of used state machine (Michal Cihar, bug #66).
  • Fixed LAC and CID reading for AT phones (Michal Cihar).
  • Update operator list (Michal Cihar).
  • Updated README.
  • Added installation instructions.
  • Change RSS URL to my weblog, where will be posted release announcements.

Time to sleep after evening with Gammu and cMake

Today it was quite busy day, but I managed to push Gammu sources closer to weekend release. I merged various fixed that I collected in last few days. Mostly they are just small fixes, but they could make using Gammu harder.

Besides that I played a lot with cMake and the build system is in very good shape. There is still some parts missing (some header/function detection and installation phase), but these should be pretty easy, the only trouble is to find time to write them :-).

Next Gammu release

It looks like next release will have quite a lot of new features thanks to contributed patches. Probably largest improvement will be PostgreSQL support in SMSD. This was many times required feature and Gammu will now finally have it thanks to Andrea Riciputi.

Another important change is completely rewritten vCalendar RRULE parsing, which should be able to handle all standard fields. The only part which is questionable right now is how to decode YD repeating. As I read specification, I think that it should be by day of year (eg. 32 for 1st February), but from real world (and especially Siemens phones) it looks like it is used for date repeating (which means same as YM). Anyway as real difference between both is only on leap years, I will probably switch to date repeating to be compatible with Siemens.

Last small change I want to mention is CMake build support. I'm going to bring it to usable state before release, so that it can be tested in wide set of environments. Then we will see whether it is worth of changing build system.

PS: You can expect testing release this weekend.

Gammu maintenance

As Marcin today officially moved Gammu maintenance to me, I'd like to write down some facts:

Phones support

I will improve AT and OBEX code and related Gammu parts. You can not expect much work for Nokia protocols as I have no experience with those. So if there is somebody willing to help me with this, he will be welcome.

SMSD

Almost same as for Nokia applies to SMSD. However I know this is quite important part and I will do my best to fix errors found in this code, anyway somebody willing to give this piece of code some love is velcome.

Releases

Development will go on in version control system (currently Bazaar, but it might change), there are available daily snapshots, so that you can easily test latest code. Releases will not be regullar, they will happen only if I will feel there is enough stabilised new code.

Future

I'd like to thank Marcin for all his care he devoted to Gammu and I hope I will follow in his steps. The future will show whether he will have enough time to bring Gammu+ to final state.

Not enough developers for free software?

I see it now on two projects on which I participate - Gammu and phpMyAdmin - they do not attract new developers and old slowly retire.

phpMyAdmin is very widely used tool and it does not help it attract developers. Only Marc is currently active developing, I sometimes commit few lines of code and I don't see much other activity. Isn't among users some skilled PHP developer who would like to improve our code? Or phpMyAdmin already reached perfect state? I don't think so.

There seems to be big barrier in those projects to attract new developers. They both lack developer documentation, what is unfortunately quite usual in free software world. But is it the real reason? It probably discourages people who look at the code and are not able to understand how it works. They could ask on mailing list and they would get some hints, but this is probably too much for somebody who wants to fix some small issue. So this is something which can be improved and might help.

I also thought that open version control system can help also a bit in this situation, but phpMyAdmin doesn't seem to profit much from this. Gammu never had it (except of my own), now when I will be creating releases, it will have it, but I doubt it will change anything.

I'm really out of ideas how to attract developers, and looks like I'm not alone, as I saw recently, KMobileTools have same issue and there are definitely more such projects…

BTW: Anybody interested in improving mentioned projects? Just contact me or any team member :-).

Gammu built using CMake

As I again came across problems with autofoo used in Gammu, I started to look for some alternative. As I heard good things about CMake, I decided to give it a try.

After few minutes I was able to build Gammu using CMake. Well it now probably fails if you don't have MySQL or Bluez installed, but it should not be hard to resolve. Also it doesn't generate config.h file right now, but that's again nothing hard.

I will probably add CMake as alternative build system (it can safely coexists with autofoo) in one of next Gammu releases as it is much easier to write and understand than autofoo madness.

Brave users can unpack gammu-cmake.tar.bz2 into Gammu sources and try it :-).

Wammu and phone database interaction

In development version of Wammu, I started to add some interaction with my website. For now there are only menu entries to access website and bug tracker, but there should be later integrated some access to phone database.

First part is getting feedback from user. Easiest option is to open web browser with prefilled values. This would not allow to remember state whether user actually already provided feedback, but I don't know how much I want to bother users. More complicated would be to fill in form in Wammu and submit it from python. This should not be much complicated, I'm only abit affraid of synchronisation of enum choices on both sides (eg. connection names).

The second part is integration in phone configuration, so that user can enter his phone name/vendor and will get list of reports. This is a bit harder than reporting stuff, but it is needed to give phone database more usage.

Do you have any other ideas how to integrate this functionality in Wammu? Please write me.