Discussion:
[Bitpim-devel] Mac OS X User & Dev page
Alan Pinstein
2003-04-03 19:48:44 UTC
Permalink
Hi all-

I just got an LG VX 4400 and managed to get it working with Mac OS X.
Since it took me a while and I had to gather info from many places, I
decided to document what I did to share with others:

http://videogamexchange.com/sites/lg4400/

Also, I'd like to contribute to the Mac dev track if my help is
desired. Although BitPim works, and is cool, I'd like to help make it
better!

Specifically the #1 thing to do is importing vCard entries to the
contact list. This was my main hope for BitPim as I want to put about
100 contacts on and don't want to do it manually... how would I get
involved?

Thanks,
Alan
Roger Binns
2003-04-04 00:49:04 UTC
Permalink
Post by Alan Pinstein
Also, I'd like to contribute to the Mac dev track if my help is
desired. Although BitPim works, and is cool, I'd like to help make it
better!
I welcome all contributions. What would be most immediately useful
is some sort of installable image so that people don't have to go
through the hoops you did.
Post by Alan Pinstein
Specifically the #1 thing to do is importing vCard entries to the
contact list. This was my main hope for BitPim as I want to put about
100 contacts on and don't want to do it manually...
See this message:

http://sourceforge.net/mailarchive/message.php?msg_id=4245003
Post by Alan Pinstein
how would I get involved?
Check out the CVS tree and start hacking.

I have mostly been working on the calendar for 0.6. The code
to read the calendar turned out to be about 30 lines. The user
interface is already around 2000 and growing. It is taking way
more effort than I thought!

Roger
Tim Lowery
2003-04-04 04:27:26 UTC
Permalink
Welcome Alan! Good to see another Mac person onboard.
Post by Alan Pinstein
http://videogamexchange.com/sites/lg4400/
Nice summary.
Post by Alan Pinstein
Specifically the #1 thing to do is importing vCard entries to the
contact list. This was my main hope for BitPim as I want to put about
100 contacts
This would be a very useful feature for Mac users. There might be some
Python source floating around that parses and/or constructs vCard
entries. I noticed that the topic was raised more than once in the
Python mailing list.

Tim
Tim Lowery
2003-04-04 04:29:27 UTC
Permalink
Post by Roger Binns
I welcome all contributions. What would be most immediately useful
is some sort of installable image so that people don't have to go
through the hoops you did.
Yes, this would be most useful for potential Mac users. My time has
been limited to a few hours a couple times a week. I know I won't get
to anytime soon. I'm still learning Python and have recently picked up
a book.

Tim
Alan Pinstein
2003-04-04 06:31:13 UTC
Permalink
Well the easier it is to install, the more people that will use it, and
the more fun this will be... so I think that I'll focus my work on a
Mac installer and vCard importing. I haven't done *any* python yet, but
it looks pretty straightforward from the code I've seen, so this should
be a fun learning project.

As for the installer, I would like to have a discussion on this a bit.
Particularly, should the goal be to create a monolithic installer for
all of the pieces I describe on the site? If so, is it even legal since
the pieces come from so many places?

I don't have a Win machine handy... what's the approach for Windows?

Thanks,
Alan
Post by Tim Lowery
Post by Roger Binns
I welcome all contributions. What would be most immediately useful
is some sort of installable image so that people don't have to go
through the hoops you did.
Yes, this would be most useful for potential Mac users. My time has
been limited to a few hours a couple times a week. I know I won't get
to anytime soon. I'm still learning Python and have recently picked
up a book.
Tim
-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb: Dedicated Hosting for
just $79/mo with 500 GB of bandwidth! No other company gives more
support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Roger Binns
2003-04-04 16:59:05 UTC
Permalink
Post by Alan Pinstein
As for the installer, I would like to have a discussion on this a bit.
Particularly, should the goal be to create a monolithic installer for
all of the pieces I describe on the site? If so, is it even legal since
the pieces come from so many places?
I would prefer that it looks, feels and installs like a normal
Mac application. This pretty much means it should be monolithic
with no external dependencies.

There should be no legal issues. See the acknowledgements at the bottom
of http://bitpim.sourceforge.net/readme.html

For Windows, I use py2exe to generate the base runtime code. The output
is an executable with all the Python files embedded and the Python DLL
seperately. The executable basically loads the Python DLL and sets itself
up on the import path. py2exe also finds all other dependent DLLs such
as the ones used for wxWindows and wxPython.

Here is a directory listing:

.:
PyWinTypes22.dll* bitpim.exe* python22.dll* win32event.pyd* wxmsw24h.dll*
_sre.pyd* gridc.pyd* resources/ win32file.pyd*
_winreg.pyd* select.pyd* wxc.pyd*

./resources:
unknown.png

(The resources subdirectory contains various toolbar bitmaps etc. but I have only
made unknown so far).

I then use InnoSetup to turn this into a single binary which is the installer.

On Linux I plan for two different installers. One will be pure RPM and will
have dependencies etc. The other will be monolithic based on above. The only
program I have found that works on Linux to help is McMillan installer
http://www.mcmillan-inc.com/install5_ann.html

Roger
Alan Pinstein
2003-04-04 17:05:21 UTC
Permalink
Cool. That's a great starting point. I'll look into that a bit. I have
an old Mac OS X developer kit (my license ran out) but hopefully it's
enough to build an installer.

Thanks,
Alan
Post by Roger Binns
Post by Alan Pinstein
As for the installer, I would like to have a discussion on this a bit.
Particularly, should the goal be to create a monolithic installer for
all of the pieces I describe on the site? If so, is it even legal
since
the pieces come from so many places?
I would prefer that it looks, feels and installs like a normal
Mac application. This pretty much means it should be monolithic
with no external dependencies.
There should be no legal issues. See the acknowledgements at the
bottom
of http://bitpim.sourceforge.net/readme.html
For Windows, I use py2exe to generate the base runtime code. The
output
is an executable with all the Python files embedded and the Python DLL
seperately. The executable basically loads the Python DLL and sets
itself
up on the import path. py2exe also finds all other dependent DLLs such
as the ones used for wxWindows and wxPython.
PyWinTypes22.dll* bitpim.exe* python22.dll* win32event.pyd*
wxmsw24h.dll*
_sre.pyd* gridc.pyd* resources/ win32file.pyd*
_winreg.pyd* select.pyd* wxc.pyd*
unknown.png
(The resources subdirectory contains various toolbar bitmaps etc. but
I have only
made unknown so far).
I then use InnoSetup to turn this into a single binary which is the
installer.
On Linux I plan for two different installers. One will be pure RPM
and will
have dependencies etc. The other will be monolithic based on above.
The only
program I have found that works on Linux to help is McMillan installer
http://www.mcmillan-inc.com/install5_ann.html
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Tim Lowery
2003-04-04 17:50:50 UTC
Permalink
Take a look at PackageMaker in the /Developer/Applications folder.
Documentation is a problem, but if you Google search for "packagemaker
tutorial" you'll find some links. Also worth searching Apple's website
for notes.

Tim
Post by Alan Pinstein
Cool. That's a great starting point. I'll look into that a bit. I have
an old Mac OS X developer kit (my license ran out) but hopefully it's
enough to build an installer.
Thanks,
Alan
Post by Roger Binns
Post by Alan Pinstein
As for the installer, I would like to have a discussion on this a
bit.
Particularly, should the goal be to create a monolithic installer for
all of the pieces I describe on the site? If so, is it even legal
since
the pieces come from so many places?
I would prefer that it looks, feels and installs like a normal
Mac application. This pretty much means it should be monolithic
with no external dependencies.
There should be no legal issues. See the acknowledgements at the
bottom
of http://bitpim.sourceforge.net/readme.html
For Windows, I use py2exe to generate the base runtime code. The
output
is an executable with all the Python files embedded and the Python DLL
seperately. The executable basically loads the Python DLL and sets
itself
up on the import path. py2exe also finds all other dependent DLLs
such
as the ones used for wxWindows and wxPython.
PyWinTypes22.dll* bitpim.exe* python22.dll* win32event.pyd*
wxmsw24h.dll*
_sre.pyd* gridc.pyd* resources/ win32file.pyd*
_winreg.pyd* select.pyd* wxc.pyd*
unknown.png
(The resources subdirectory contains various toolbar bitmaps etc. but
I have only
made unknown so far).
I then use InnoSetup to turn this into a single binary which is the
installer.
On Linux I plan for two different installers. One will be pure RPM
and will
have dependencies etc. The other will be monolithic based on above.
The only
program I have found that works on Linux to help is McMillan installer
http://www.mcmillan-inc.com/install5_ann.html
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb: Dedicated Hosting for
just $79/mo with 500 GB of bandwidth! No other company gives more
support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Roger Binns
2003-04-05 19:15:43 UTC
Permalink
Post by Alan Pinstein
http://videogamexchange.com/sites/lg4400/
One thing I would like to get to the bottom of is the flakyness
you are seeing on the Mac. I don't see it on Windows or Linux.
I am comng to believe there may be some issues with pySerial in
border cases.

Roger
Alan Pinstein
2003-04-05 19:46:16 UTC
Permalink
I've been playing around a bit more, and have more comments on this:

Typically the FIRST time I try to upload/download from the phone I get
an error that says "device busy" for /dev/tty.usbserial.
The next time it typically, works. However, in some cases the
application will seg fault often while doing something. Not sure yet if
that's because of app bugs or serial issues...

Hope that helps. I'd be happy to help further if you've got ideas.

Alan
Post by Roger Binns
Post by Alan Pinstein
http://videogamexchange.com/sites/lg4400/
One thing I would like to get to the bottom of is the flakyness
you are seeing on the Mac. I don't see it on Windows or Linux.
I am comng to believe there may be some issues with pySerial in
border cases.
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Alan Pinstein
2003-04-05 20:00:54 UTC
Permalink
Good news! I have just succeeded at writing a nice vCard parser for
bitpim based on the approach in this message:

http://sourceforge.net/mailarchive/message.php?msg_id=4245003

I used it against my own Address Book export and successfully put in 74
contacts to my phone.

The phone supports up to 5 phone numbers and 3 emails. Since vCard
supports arbitrary numbers of these, I basically go through the vCard
and "fill up" the following structure until it's full:

Full Name
2 home
2 office
2 mobile
2 fax
pager
3 emails

Each are truncated if they exceed the LG's maximums (22 chr names, 48
chr phone & email). Since the vCard format includes
type=(HOME|CELL|WORK|PAGER|FAX) it's trivial to properly setup the LG
type mappings.
I then strip all non-digits from the phone numbers and construct the
result['phonebook'] structure. That structure then must be added to the
.bitpim-files/phonebook/index.idx file.

The result was wonderful. Right now it's all in a self-contained code
chunk. I am going to work on integrated it with the GUI next.

If anyone's interested in the code, let me know. Also, what's the
process for getting a cvs login for commits?

Thanks,
Alan
Post by Roger Binns
Post by Alan Pinstein
Specifically the #1 thing to do is importing vCard entries to the
contact list. This was my main hope for BitPim as I want to put about
100 contacts on and don't want to do it manually...
http://sourceforge.net/mailarchive/message.php?msg_id=4245003
Post by Alan Pinstein
how would I get involved?
Check out the CVS tree and start hacking.
Roger Binns
2003-04-05 20:45:04 UTC
Permalink
Post by Alan Pinstein
The result was wonderful. Right now it's all in a self-contained code
chunk. I am going to work on integrated it with the GUI next.
I'd prefer to do the gui work, so I can make it fit in with the master
plan. I'm also intending to support multiple phones in the future
so I'd like to rework this to make that fit in well.

Can you use the SF patch manager to submit a single file that is
your code. My preference is that it has a block at the bottom:

if __name__=='__main__':
dostuff

Where dostuff is effectively a test of the code (this is standard
Python practise). Also please make sure pychecker is happy with
the file.
Post by Alan Pinstein
Also, what's the
process for getting a cvs login for commits?
Submit a few patches. When I like what I see, Ill add you.

Roger
Roger Binns
2003-04-05 20:48:14 UTC
Permalink
Post by Alan Pinstein
Each are truncated if they exceed the LG's maximums (22 chr names, 48
chr phone & email).
I've got to decide what the right thing to do about this is. My feeling
is to silently truncate entries when writing them to the phone. Although
being a little more intelligent may help (eg removing punctuation first,
taking out the middle of long words and replacing with ...)

I don't think the import code should have to know about the lengths. It
will however have to know about types (one of my bugbears with someone
else's software was that there was a 'main' number type that they mapped
really badly when converting to something that doesn't have 'main' like
the LG).

Roger
Alan Pinstein
2003-04-06 00:52:58 UTC
Permalink
I apologize in advance if this is a silly question, but I think I am
missing something:

Right now the way my code works is you call it with "python
AddressBookImporter.py". So when I add the __main__ method, my code
doesn't run. So basically, if I put a __main__ in now I don't know how
to run my code...

Should I just create an interface so that a wrapper py script must be
used to exec my code?

Alan
Post by Roger Binns
Post by Alan Pinstein
The result was wonderful. Right now it's all in a self-contained code
chunk. I am going to work on integrated it with the GUI next.
I'd prefer to do the gui work, so I can make it fit in with the master
plan. I'm also intending to support multiple phones in the future
so I'd like to rework this to make that fit in well.
Can you use the SF patch manager to submit a single file that is
dostuff
Where dostuff is effectively a test of the code (this is standard
Python practise). Also please make sure pychecker is happy with
the file.
Post by Alan Pinstein
Also, what's the
process for getting a cvs login for commits?
Submit a few patches. When I like what I see, Ill add you.
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Alan Pinstein
2003-04-06 18:30:39 UTC
Permalink
It definitely depends how generalized you want the whole thing to be...
what's the goal for the project? LG only? Other phones? That's an
important question.

Also, it's practically guaranteed that most phones will support only a
subset of what vCard supports. Therefore, some logic will need to
determine which numbers to take and which ones to "drop on the floor".
Also, there are other issues along the customization axis... for
instance, should names be "Last, First" or "First Last". Should this be
configurable?

Maybe when the user starts the import of a vCard file a "prefs" form
should come up to allow the user to make his own customizations?'

I read through the vCard spec and there are some cool things.. first of
all, pics of people can be embedded in the vCard, which means you could
support picture ID from vCard import. Although currently AddressBook on
MAC doesn't export images in the vCards.

As far as the "main" number goes, in a vCard a particular TEL number
can be "preferred" and I think only ONE per card can be, so maybe
that'd be a good way to map "main". There's definitely more work I
should do to make the parser more generalized to handle some of these
issues. Right now I just made it Quick&Dirty so it'd work for me...

Alan
Post by Roger Binns
Post by Alan Pinstein
Each are truncated if they exceed the LG's maximums (22 chr names, 48
chr phone & email).
I've got to decide what the right thing to do about this is. My
feeling
is to silently truncate entries when writing them to the phone.
Although
being a little more intelligent may help (eg removing punctuation
first,
taking out the middle of long words and replacing with ...)
I don't think the import code should have to know about the lengths.
It
will however have to know about types (one of my bugbears with someone
else's software was that there was a 'main' number type that they
mapped
really badly when converting to something that doesn't have 'main' like
the LG).
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Alan Pinstein
2003-04-06 22:45:01 UTC
Permalink
Roger-

Ok, I have checked it with pychecker and it's all good now (it nicely
found a couple of issues, nice tool!).

I have uploaded the patch here:

http://sourceforge.net/tracker/
index.php?func=detail&atid=543252&aid=716417&group_id=75211

I did create a main but I still didn't know what interface to give it
for a more general purpose. Since it currently outputs the index.idx
file, I would imagine that instead it should manipulate the phonebook
entries through an object interface directly... let me know if you want
me to integrate that part.

Enjoy,
Alan
Post by Roger Binns
Post by Alan Pinstein
The result was wonderful. Right now it's all in a self-contained code
chunk. I am going to work on integrated it with the GUI next.
I'd prefer to do the gui work, so I can make it fit in with the master
plan. I'm also intending to support multiple phones in the future
so I'd like to rework this to make that fit in well.
Can you use the SF patch manager to submit a single file that is
dostuff
Where dostuff is effectively a test of the code (this is standard
Python practise). Also please make sure pychecker is happy with
the file.
Post by Alan Pinstein
Also, what's the
process for getting a cvs login for commits?
Submit a few patches. When I like what I see, Ill add you.
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Roger Binns
2003-04-08 03:42:14 UTC
Permalink
Post by Alan Pinstein
http://sourceforge.net/tracker/
index.php?func=detail&atid=543252&aid=716417&group_id=75211
I am busy merging this now. I do have a request. Could you
possibly generate vcard file(s) for me to test with? What
I want to do is make a tests subdirectory with various things
in it, so several vcard files would be good, including ones
that are broken, have too much data, have more fields than
phone can cope with, and some that are "normal" :-)

Roger
Roger Binns
2003-04-08 06:20:58 UTC
Permalink
The code is now in CVS as vcard.py

It certainly raises some issues. The phone doesn't allow you
to have multiple numbers of the same type (eg three labelled
as 'home'), but it does allow that to be uploaded. I haven't
figured out why yet. There is also a 'none' type. I'm thinking
that the best interface will be one that gives you an import
report afterwards.

I also need to abstract out the phone specific stuff, and put
field truncation into the phone upload/download code.

Roger
Alan Pinstein
2003-04-08 12:27:40 UTC
Permalink
sure thing... I'll do this tonight and send it to you. I was thinking about embedded it directly in the test part of the code using the string-as-stream stuff, but if you don't need it I'll just send the vCard data.

Alan
Post by Roger Binns
Post by Alan Pinstein
http://sourceforge.net/tracker/
index.php?func=detail&atid=543252&aid=716417&group_id=75211
I am busy merging this now. I do have a request. Could you
possibly generate vcard file(s) for me to test with? What
I want to do is make a tests subdirectory with various things
in it, so several vcard files would be good, including ones
that are broken, have too much data, have more fields than
phone can cope with, and some that are "normal" :-)
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Alan Pinstein
2003-04-08 12:35:55 UTC
Permalink
Cool! I'll check that out tonight too if I can.... I am on a biz trip now and the firewall is quite secure so I don't know if I'll be able to cvs up.

Anyway, here are some comments on your observations:

- the phone has a static list of 'labels' to use. The number in front is the corresponding "type" number:

0:Home
1:Home2
2:Office
3:Office2
4:Mobile
5:Mobile2
6:Pager
7:Fax
8:Fax2
9:None

I use the type number to set up the mappings off the vCard types.
ie, TEL;type=HOME gets mapped to Home, or if there's already a Home, maps to Home2. All additional HOME numbers are dropped in the current code. The same applies down the line.

Also, the phone can hold only 5 numbers/contact even though there are 9 labels. So I look for numbers in this order: Home, Office, Mobile, Home2, Office2, Mobile2, Pager, Fax, Fax2 or something like that (I listed these when I uploaded the patch).

I think it's a good idea to create a log entry anytime a number is skipped... now that you've got vCard.py in the tree I could add that... let me know if you want me to do that.

Alan
Post by Roger Binns
The code is now in CVS as vcard.py
It certainly raises some issues. The phone doesn't allow you
to have multiple numbers of the same type (eg three labelled
as 'home'), but it does allow that to be uploaded. I haven't
figured out why yet. There is also a 'none' type. I'm thinking
that the best interface will be one that gives you an import
report afterwards.
I also need to abstract out the phone specific stuff, and put
field truncation into the phone upload/download code.
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Alan Pinstein
2003-04-11 16:16:33 UTC
Permalink
Here you go. I put in a TON of fields. It's just a text file, so you
can copy/paste more BEGIN->END blocks to add addresses to the same
file, and then edit the lines to change test parameters. This is
basically every field that the Mac's ADDRESS BOOK will handle.

This should hit all the max's in my code:

[17.18]:> /usr/local/bin/python vcard.py
Main test
Already found 3 emails. No more will fit.
Already found 2 home numbers. No more will fit.
Already found 2 cell numbers. No more will fit.
Found and processed 1 vCard entries.
result['phonebook']={0: {'?offset111': 0, '?offset20c': 0, 'memo': '',
'number4': '4045551219', 'number5': '4045551210', 'number2':
'4045551212', 'number3': '4045551213', 'number1': '4045551215',
'type5': 1, 'type4': 6, 'email2': '***@bitpim.com\r', 'email3':
'***@bitpim.com\r', 'type3': 4, 'email1': '***@bitpim.com\r',
'serial2': 0, 'serial1': 0, 'group': 0, 'name': 'Testy\r McTest',
'url': '', 'type1': 0, 'msgringtone': 0, 'ringtone': 0, 'secret':
False, '?offset00f': 0, 'type2': 2, '?offset028': 0}}

Let me know if you want more, but it should be easy for you to generate
any test cases you want from this.

Enjoy,
Alan
Post by Roger Binns
Post by Alan Pinstein
http://sourceforge.net/tracker/
index.php?func=detail&atid=543252&aid=716417&group_id=75211
I am busy merging this now. I do have a request. Could you
possibly generate vcard file(s) for me to test with? What
I want to do is make a tests subdirectory with various things
in it, so several vcard files would be good, including ones
that are broken, have too much data, have more fields than
phone can cope with, and some that are "normal" :-)
Roger
-------------------------------------------------------
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Bitpim-devel mailing list
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
Loading...