Discussion:
[BitPim-devel] 0.7.26 now available
Roger Binns
2005-02-01 06:55:55 UTC
Permalink
You can grab it from

http://sf.net/project/showfiles.php?group_id=75211&package_id=120233

There are Mac (10.3), Windows and Linux builds. If there are no
issues then the announcement will go out tomorrow (Tuesday) night.

Roger
Vic Heintz
2005-02-01 14:20:54 UTC
Permalink
Post by Roger Binns
There are Mac (10.3), Windows and Linux builds.
I don't expect Roger to buy a copy of Jaguar. If I could afford to buy
him one, I would. (But then I would just buy myself Panther, wouldn't
I?) I plan to hold out and buy Tiger (....perhaps with a Mac Mini to go
with it.) I know he seemed happy to retire from the job but I wonder if
it wouldn't be possible for Steve to continue Jaguar builds until Tiger
is released. Shouldn't we support two versions of Mac OS?

I wish I could figure out what pieces I am missing to do the build
myself. But I gave up trying to figure out how to get libusb installed
correctly.

Vic
Roger Binns
2005-02-01 16:23:22 UTC
Permalink
Post by Vic Heintz
I don't expect Roger to buy a copy of Jaguar. If I could afford to buy
him one, I would.
Not only would I need Jaguar, I'd also need an external firewire hard
drive enclosure. (I have spare drives, jut not spare enclosures and
they were pretty cheap for a while at Frys before shooting back up to
$60 again).
Post by Vic Heintz
is released. Shouldn't we support two versions of Mac OS?
It is up to Steve what he does. Doing the uploads to SourceForge is
a pain.
Post by Vic Heintz
myself. But I gave up trying to figure out how to get libusb installed
correctly.
./configure && sudo make install

Roger
The Doctor
2005-02-01 16:59:52 UTC
Permalink
Hi,

I just downloaded 0.7.26 to my Win/XP SP2 system. Retrieve Filesystem
seems to work, but when I try to do Data->Get Phone data.. and select
Phonebook Add, I get the following. Let me know if I should try
anything. This did not happen on earlier release. Thanks to whoever
put the "Put Phonebook" part in, but I'm not going to try it until I
get around this. Protocol log and Log are near the bottom....

An unexpected exception has occurred.
Please see the help for details on what to do.

Traceback (most recent call last):
File "gui.pyo", line 153, in run
File "gui.pyo", line 93, in __call__
File "gui.pyo", line 1245, in getdata
File "com_samsung_packet.pyo", line 247, in getphonebook
File "com_samsung_packet.pyo", line 179, in sendpbcommand
File "p_samsungspha620.pyo", line 162, in readfrombuffer
File "p_samsungspha620.pyo", line 304, in readfrombuffer
File "prototypes.pyo", line 627, in __init__
File "prototypes.pyo", line 632, in _update
File "prototypes.pyo", line 658, in _converttostring
ValueError: need more than 0 values to unpack

Variables by last 8 frames, innermost last

Frame getdata in gui.pyo at line 1245
count = 1
i = (<bound method GetPhoneDialog.GetPhoneBookSetting
of <guiwidgets.GetPhoneDialog;
self = <WorkerThread(BitPim helper, started daemon)>
req = <guiwidgets.GetPhoneDialog; proxy of C++ wxDialog
instance at _a0e3bf01_p_wxDial
willcall = [(<bound method GetPhoneDialog.GetPhoneBookSetting
of <guiwidgets.GetPhoneDialog
results = Keys ['groups', 'sync', 'uniqueserial']
{'uniqueserial':
'a1697f5f67d7ba4c8b7ef625c687965f5556f4ca', 'groups': {0: {'nam
sync = Keys ['phonebook']
{'phonebook': 'MERGE'}
st = 0
todo = [(<bound method WorkerThread.rebootcheck of
<WorkerThread(BitPim helper, started

Frame getphonebook in com_samsung_packet.pyo at line 247
slot = 1
count = 0
pbook = Keys []
{}
lastname = ''
self = <com_samsungspha620.Phone instance at 0x01E82B20>
req = <p_samsungspha620.phonebookslotrequest object at 0x01EF3970>
result = Keys ['groups', 'sync', 'uniqueserial']
{'uniqueserial':
'a1697f5f67d7ba4c8b7ef625c687965f5556f4ca', 'groups': {0: {'nam

Frame sendpbcommand in com_samsung_packet.pyo at line 179
responseclass = <class 'p_samsungspha620.phonebookslotresponse'>
response_lines = ['#PBOKR: 1,300,4,20,"Sandy
Gordan",2,0,,,,,13125601287,0,,,,,,,,,"","",,20,1981
buffer = <prototypes.buffer instance at 0x01E82AF8>
res = <p_samsungspha620.phonebookslotresponse object at 0x01E66870>
self = <com_samsungspha620.Phone instance at 0x01E82B20>
request = <p_samsungspha620.phonebookslotrequest object at 0x01EF3970>
ignoreerror = False
reslist = []
line = '#PBOKR: 1,300,4,20,"Sandy
Gordan",2,0,,,,,13125601287,0,,,,,,,,,"","",,20,19810
data = '#PBOKR=1'
fixup = <bound method Phone.pblinerepair of
<com_samsungspha620.Phone instance at 0x01E8

Frame readfrombuffer in p_samsungspha620.pyo at line 162
self = <p_samsungspha620.phonebookslotresponse object at 0x01E66870>
buf = <prototypes.buffer instance at 0x01E82AF8>

Frame readfrombuffer in p_samsungspha620.pyo at line 304
self = <p_samsungspha620.pbentry object at 0x01E669D0>
buf = <prototypes.buffer instance at 0x01E82AF8>

Frame __init__ in prototypes.pyo at line 627
self = <prototypes.SAMDATE object at 0x01F8DED0>
args = ()
kwargs = Keys ['default']
{'default': ''}

Frame _update in prototypes.pyo at line 632
k = 'default'
args = ()
self = <prototypes.SAMDATE object at 0x01F8DED0>
kwargs = Keys ['default']
{'default': ''}

Frame _converttostring in prototypes.pyo at line 658
date = ''
self = <prototypes.SAMDATE object at 0x01F8DED0>



Protocol Log:

10:55:32.022 SPH-A620: brew response Data - 43 bytes
<#! p_brew.listfileresponse !#>
00000000 59 0b 00 15 00 00 00 ff 00 01 03 00 00 00 00 b0 Y...............
00000010 0a 00 00 00 0c 00 00 08 12 6e 76 6d 2f 6e 76 6d .........nvm/nvm
00000020 2f 70 63 6c 69 6e 6b 5f 74 62 6c /pclink_tbl

10:55:32.022 SPH-A620: brew request Data - 15 bytes
<#! p_brew.listfilerequest !#>
00000000 59 0b 16 00 00 00 08 6e 76 6d 2f 6e 76 6d 00 Y......nvm/nvm.

10:55:32.022 SPH-A620: brew response Data - 3 bytes
<#! p_brew.listfileresponse !#>
00000000 59 0b 1c Y..

10:55:32.022 SPH-A620: brew request Data - 11 bytes
<#! p_brew.listdirectoriesrequest !#>
00000000 59 02 08 6e 76 6d 2f 6e 76 6d 00 Y..nvm/nvm.

10:55:32.151 SPH-A620: brew response Data - 8 bytes
<#! p_brew.listdirectoriesresponse !#>
00000000 59 02 00 00 00 01 00 00 Y.......

Log:

10:54:58.740 COM11: Opening port COM11, 115200 baud, timeout 3.000000,
hardwareflow 0, softwareflow 0
10:54:58.992 COM11: Open of comm port suceeded
10:54:59.151 SPH-A620: Listing dir ''
10:55:02.177 COM11: Timed out waiting for 7e, requested bytes 1 - 0 bytes read
10:55:02.427 COM11: Changed port speed to 38400
10:55:06.082 COM11: Timed out waiting for 7e, requested bytes 1 - 0 bytes read
10:55:06.223 COM11: Changed port speed to 115200
10:55:09.778 COM11: Timed out waiting for 7e, requested bytes 1 - 0 bytes read
10:55:12.933 SPH-A620: Now in brew mode
10:55:29.207 SPH-A620: Listing dir 'nvm'
10:55:31.721 SPH-A620: Listing dir 'nvm/nvm'
The Doctor
2005-02-03 06:19:29 UTC
Permalink
Thanks to whoever fixed the rebuilt version. I tried it on my A620
using WinXP Pro SP2 and it worked. I got some kind of diagnostic
saying something about the phone no longer being ready when I tried to
write a fairly large phonebook to the phone, but when I looked at the
phone, it looked like all the entries made it. If you need me to get
the precise diagnostic text, I'd be willing to give it another shot.

So thanks to all for your work.
Post by The Doctor
Hi,
I just downloaded 0.7.26 to my Win/XP SP2 system. Retrieve Filesystem
seems to work, but when I try to do Data->Get Phone data.. and select
Phonebook Add, I get the following. Let me know if I should try
anything. This did not happen on earlier release. Thanks to whoever
put the "Put Phonebook" part in, but I'm not going to try it until I
get around this. Protocol log and Log are near the bottom....
An unexpected exception has occurred.
Please see the help for details on what to do.
File "gui.pyo", line 153, in run
Steven Palm
2005-02-01 17:03:32 UTC
Permalink
Post by Vic Heintz
Post by Roger Binns
There are Mac (10.3), Windows and Linux builds.
I don't expect Roger to buy a copy of Jaguar. If I could afford to buy
him one, I would. (But then I would just buy myself Panther, wouldn't
I?) I plan to hold out and buy Tiger (....perhaps with a Mac Mini to
go with it.) I know he seemed happy to retire from the job but I
wonder if it wouldn't be possible for Steve to continue Jaguar builds
until Tiger is released. Shouldn't we support two versions of Mac OS?
I haven't looked at the numbers to see who is downloading and using
which versions. I'd be all too happy to kill of Jaguar support, and
hopefully VERY SOON NOW the two versions will be Panther and Tiger. :-)
Although if Apple screws Roger (which I hope they don't, but suspect
they will - not just Roger, but all Mac buyers from this point on) we
may have to fund a copy of Tiger for him.

In the interim, though, I will try to keep a Jaguar build current,
even if it lags a day or two beind the "official" dev release from
Roger.
Post by Vic Heintz
I wish I could figure out what pieces I am missing to do the build
myself. But I gave up trying to figure out how to get libusb installed
correctly.
I don't recall it being all that difficult, honestly... I did have to
rework parts of libusb to deal with some Mac issues so BitPim could
grab a specific interface even though the OS had other interfaces open,
but that's all in the standard distribution now. Anyway, maybe we could
dialog a bit offlist about that. It would be easier for you to maintain
the build on your primary boot OS, I have to shut down my computer to
boot up Jaguar to do the build and it's a slight pain. :-)
Roger Binns
2005-02-01 17:19:54 UTC
Permalink
Post by Steven Palm
I haven't looked at the numbers to see who is downloading and using
which versions.
http://sf.net/project/showfiles.php?group_id=75211&package_id=120233

(SourceForge are moving to a new stats system so no data for the
last 15 days or so).

The percentages are roughly as follows:

90% Windows
7% Panther (10.3)
3% Linux
1% Jaguar (10.2)

That is from the SourceForge site. Who knows how many copies of each
platform are distributed in other ways. It does however show that
more people use Linux on their desktop than Jaguar :-)

Roger
Vic Heintz
2005-02-01 17:38:26 UTC
Permalink
Post by Roger Binns
./configure && sudo make install
I believe I have been through this before but I repeated this and this
part seemed to go just fine BUT:

[Vic-iBook:~/Projects/bitpim] vic% /usr/local/bin/pythonw makedist.py
=== Sanity check ===
python version OK
wxPython version OK
wxPython is unicode build OK
native.usb
Traceback (most recent call last):
File "makedist.py", line 422, in ?
sanitycheck()
File "makedist.py", line 87, in sanitycheck
import native.usb
File "/Users/vic/Projects/bitpim/native/usb/__init__.py", line 12, in
?
from usb import *
File "/Users/vic/Projects/bitpim/native/usb/usb.py", line 20, in ?
import libusb as usb
File "/Users/vic/Projects/bitpim/native/usb/libusb.py", line 5, in ?
import _libusb
ImportError: No module named _libusb

I think this is where I always get stuck.

Vic
Roger Binns
2005-02-01 17:51:56 UTC
Permalink
Post by Vic Heintz
File "/Users/vic/Projects/bitpim/native/usb/libusb.py", line 5, in ?
import _libusb
ImportError: No module named _libusb
cd native/usb
sh macbuild.sh

Roger
Vic Heintz
2005-02-01 18:21:27 UTC
Permalink
Post by Roger Binns
cd native/usb
sh macbuild.sh
[Vic-iBook:bitpim/native/usb] vic% sh macbuild.sh
/usr/local/include/usb.h:316: Warning(302): Identifier 'usb_device'
redefined (ignored),
/usr/local/include/usb.h:235: Warning(302): previous definition of
'usb_device'.
libusb_wrap.c:13: header file 'Python.h' not found

[Vic-iBook:bitpim/native/usb] vic% sudo find / -name Python.h -print
Password:
/Developer/Python-2.3.4/Include/Python.h
/Library/Frameworks/Python.framework/Versions/2.3/include/python2.3/
Python.h
/Users/vic/Desktop/PythonStuff/Python-2.3/Include/Python.h
/usr/include/python2.2/Python.h
/usr/local/include/python2.3/Python.h

OK it has been years since I did any c programming. How do I get this
header file in my path?

Vic
Steven Palm
2005-02-02 00:49:20 UTC
Permalink
Post by Vic Heintz
Post by Roger Binns
cd native/usb
sh macbuild.sh
[Vic-iBook:bitpim/native/usb] vic% sh macbuild.sh
/usr/local/include/usb.h:316: Warning(302): Identifier 'usb_device'
redefined (ignored),
/usr/local/include/usb.h:235: Warning(302): previous definition of
'usb_device'.
libusb_wrap.c:13: header file 'Python.h' not found
Ah yes... The include directory is assuming that you have Panther
where Apple distributes Python as a system framework. On Jaguar, it's
different, obviously...
Post by Vic Heintz
[Vic-iBook:bitpim/native/usb] vic% sudo find / -name Python.h -print
/Developer/Python-2.3.4/Include/Python.h
/Library/Frameworks/Python.framework/Versions/2.3/include/python2.3/
Python.h
/Users/vic/Desktop/PythonStuff/Python-2.3/Include/Python.h
/usr/include/python2.2/Python.h
/usr/local/include/python2.3/Python.h
Wow, lots of Pythons in that cage. :-)

All you have to do is edit macbuild.sh and change the INCLUDEDIR line
to be your directory of choice, it all depends which framework you will
be building against I'd say... Probably /Library/Frameworks/....

See what that does for you.
Stephen Wood
2005-02-02 02:36:05 UTC
Permalink
Looks like I forgot to check in prototypes.py, so 0.7.26 is broken for
0.7.26. Do you mind rebuilding?

Stephen
Post by Roger Binns
You can grab it from
http://sf.net/project/showfiles.php?group_id=75211&package_id=120233
There are Mac (10.3), Windows and Linux builds. If there are no
issues then the announcement will go out tomorrow (Tuesday) night.
Roger
Jim Smith
2005-02-02 05:55:44 UTC
Permalink
I just tried the latest CVS to see if Stephen's patch fixed my Sanyo PM8200
calendar ringtone problem, but I couldn't get that far.

In the log just before the exception was this message that my phone
apparently doesn't accept repeat entries. The calendar event for
Bill&Shaunna is their annual wedding anniversary, and I get the exception
even if I import less than one year's data.

23:30:24.703 PM8200: Fundamentals retrieved
23:30:28.937 PM8200: Write calendar event slot 0 - SB gig
23:30:29.187 PM8200: Write calendar event slot 1 - Blood work
23:30:29.328 PM8200: Write calendar event slot 2 - SB gig
23:30:29.453 PM8200: Bill&Shauna: Repeat type <bpcalendar.RepeatEntry object
at 0x01C99E50> not valid for this phone
23:30:29.453 PM8200: Write calendar event slot 3 - Bill&Shauna

Here's the exception log:

An unexpected exception has occurred.
Please see the help for details on what to do.

Traceback (most recent call last):
File "D:\Projects\BitPim\gui.py", line 153, in run
res=call()
File "D:\Projects\BitPim\gui.py", line 93, in __call__
return apply(self.method, self.args+args, d)
File "D:\Projects\BitPim\gui.py", line 1266, in senddata
apply(func, args)
File "D:\Projects\BitPim\gui.py", line 1295, in writecalendar
return self.commphone.savecalendar(data, merge)
File "D:\Projects\BitPim\com_sanyonewer.py", line 60, in savecalendar
result = com_sanyo.Phone.savecalendar(self, dict, merge)
File "D:\Projects\BitPim\com_sanyo.py", line 1068, in savecalendar
endtimelocal=time.mktime(timearray)-zonedif
OverflowError: mktime argument out of range

Variables by last 8 frames, innermost last

Frame __bootstrap in D:\python23\lib\threading.py at line 436
self = <WorkerThread(BitPim helper, started daemon)>

Frame run in D:\Projects\BitPim\gui.py at line 146
e = <exceptions.OverflowError instance at 0x01CD9B20>
res = None
self = <WorkerThread(BitPim helper, started daemon)>
item = (<gui.Request instance at 0x01CD9B48>, <gui.Callback
instance at 0x01CD9AD0>)
call = <gui.Request instance at 0x01CD9B48>
ex = <exceptions.OverflowError instance at 0x01CD9B20>
resultcb = <gui.Callback instance at 0x01CD9AD0>
first = 0

Frame __call__ in D:\Projects\BitPim\gui.py at line 93
self = <gui.Request instance at 0x01CD9B48>
args = ()
d = Keys []
{}
kwargs = Keys []
{}

Frame senddata in D:\Projects\BitPim\gui.py at line 1266
count = 0
self = <WorkerThread(BitPim helper, started daemon)>
args = [{'phonephonebook': {0: {'slot': 118, 'name_len': 13,
'name': 'Caran Roberts', '
xx = (<bound method WorkerThread.writecalendar of
<WorkerThread(BitPim helper, starte
dict = Keys ['calendar', 'calendar_version', 'categories',
'phonebook', 'phonephonebook', 'ringtone-index', 'uniqueserial',
'wallpaper-index']
{'phonephonebook': {0: {'slot': 118, 'name_len': 13,
'name': 'Caran Roberts', 'u
func = <bound method WorkerThread.writecalendar of
<WorkerThread(BitPim helper, started
todo = [(<bound method WorkerThread.writecalendar of
<WorkerThread(BitPim helper, start
desc = 'Calendar'

Frame writecalendar in D:\Projects\BitPim\gui.py at line 1295
merge = False
self = <WorkerThread(BitPim helper, started daemon)>
data = Keys ['calendar', 'calendar_version', 'categories',
'phonebook', 'phonephonebook', 'ringtone-index', 'uniqueserial',
'wallpaper-index']
{'phonephonebook': {0: {'slot': 118, 'name_len': 13,
'name': 'Caran Roberts', 'u

Frame savecalendar in D:\Projects\BitPim\com_sanyonewer.py at line 60
res = <p_sanyo.beginendupdateresponse object at 0x01C996B0>
self = <com_sanyo8200.Phone instance at 0x01CADFD0>
req = <p_sanyo.beginendupdaterequest object at 0x01C5F430>
dict = Keys ['calendar', 'calendar_version', 'categories',
'phonebook', 'phonephonebook', 'ringtone-index', 'uniqueserial',
'wallpaper-index']
{'phonephonebook': {0: {'slot': 118, 'name_len': 13,
'name': 'Caran Roberts', 'u
merge = False

Frame savecalendar in D:\Projects\BitPim\com_sanyo.py at line 1068
slashpos = -1
zonedif = 21600.0
eventslot = 3
callslot = 0
alarmdiff = 7200
progressmax = 115
res = <p_sanyonewer.eventresponse object at 0x01C5F710>
self = <com_sanyo8200.Phone instance at 0x01CADFD0>
req = <p_sanyonewer.eventupdaterequest object at 0x01C79DD0>
descloc = u'Bill&Shauna'
starttimelocal = 1114110000.0
dict = Keys ['calendar', 'calendar_version', 'categories',
'phonebook', 'phonephonebook', 'ringtone-index', 'uniqueserial',
'wallpaper-index']
{'phonephonebook': {0: {'slot': 118, 'name_len': 13,
'name': 'Caran Roberts', 'u
location = ''
newcal = Keys []
{}
repeat = 0
keys = ['c3bc3da42326eac1e9642bf0a1b67531edd79472',
'd743df1789e12c5bcc812572b8f7391a49
v = 'yearly'
respc = <class 'p_sanyonewer.eventresponse'>
timearray = [4000, 1, 1, 19, 30, 0, 0, 0, 0]
eventname = u'Bill&Shauna'
now = 1107300629.0
e = <p_sanyonewer.evententry object at 0x01C5F4D0>
endtimelocal = 1112400000.0
k = 4
phonenum = u'Bill&Shauna'
merge = False
cal = Keys ['03a76e07558bad9fc80f57c0e8a5f83d41a9dd13',
'077442e66be97a3365bc1f539d027c974401204d',
'142f8f7abc203fe469ae55c0d80d3f804b575b6c',
'23efb5eccdfde77361c2544c9ea9cbaba4fe094d',
'2f41bf23d7662f1ff6aff467979b2b52884e8de8',
'31fced67f496ccbee8dca39df06c1252d22b45fb',
'37afd6e21148237e99a12f094c74a885e3173067',
'46d683444142c86d70fbd1221df646926e9d11f4',
'4954a7f27b3a0d2ca44a4fd18bcd112ec0b1fd8c',
'4cb7063987e16e0849327eec65cbe1a64b963fe2',
'632bd9f8b65752c1d3d28bfe5fbeb7e03a9500ae',
'7355b0117e31aa0c76da00196042bb3d6fd6c3c9',
'73f71e756e9537ebd188e3fd76900944e3905fca',
'801a337a547c051de0dc4199fc16321944ceb5ea',
'821e04b643d472c6e85673f9f2ccacd6b3714562',
'84d9788ef05b77be358847b08fc6e7517d79f04b',
'a8b5779b950c28bb5bec92f96278b4e6958bc6a0',
'bf850aafc3a0d611f8546751df4c64bde82f62a4',
'c28bc11da43789d2cb3a34fec081397050e08484',
'c3bc3da42326eac1e9642bf0a1b67531edd79472',
'd743df1789e12c5bcc812572b8f7391a49c4e08a',
'de65b5bd1975a3f2dd49f485c2fd9011f74759a3',
'edcdd582f5bdfd637ee4b6e993b7e476ae809341',
'edf51b2b929208afc9e0f92db7cb7961820aa01f',
'f2760145ecfb3a0aae2f41b50d2d18d49564f0ea']
{'c3bc3da42326eac1e9642bf0a1b67531edd79472':
<bpcalendar.CalendarEntry object at
entry = <bpcalendar.CalendarEntry object at 0x01C99190>
Stephen Wood
2005-02-02 12:56:07 UTC
Permalink
Post by Jim Smith
I just tried the latest CVS to see if Stephen's patch fixed my Sanyo PM8200
calendar ringtone problem, but I couldn't get that far.
Even though calendar related, the prototypes.py patch was specific to
the Samsung SPH-A620.

It looks like the entry it crashed on, Bill&Shauna, has a year of 4000
for the end date. Is that correct? Try removing this entry to see if
you can get any further.

Maybe the year 4000 is an artifact of the entry being a repeating
entry? If so, describe it completely or send me a zip of your bitpim
database (bitpim.db).

Thanks, Stephen
d***@netzero.com
2005-02-02 13:11:56 UTC
Permalink
Post by Stephen Wood
It looks like the entry it crashed on, Bill&Shauna, has a year of 4000
for the end date.
bpcalendar set this to indicate a "forever" or no-end-date repeat event. The current work-around is to set an end date to those events.

-Joe Pham


______________________________________________________________________
Speed up your surfing with NetZero HiSpeed.
Now includes pop-up blocker!
Only $14.95/month -visit http://www.netzero.com/surf to sign up today!
Stephen Wood
2005-02-02 14:31:46 UTC
Permalink
I guess each phone will need a sanity check on dates, not just because
of the 4000, but because the phone will have a limitation on dates.
For example, the Sanyo's store date as a 32 bit integer which is
seconds since 1980. So can only take years up to 2116, or perhaps
only 2048.

What is the meaning of End date in the calendar editor now? Is it the
length of an event/appointment, or when a repeating entry stops
repeating. (Or does it depend.)

Stephen
Post by d***@netzero.com
Post by Stephen Wood
It looks like the entry it crashed on, Bill&Shauna, has a year of 4000
for the end date.
bpcalendar set this to indicate a "forever" or no-end-date repeat event. The current work-around is to set an end date to those events.
-Joe Pham
Jim Smith
2005-02-02 14:38:34 UTC
Permalink
Post by Stephen Wood
Post by Jim Smith
I just tried the latest CVS to see if Stephen's patch fixed my Sanyo
PM8200
Post by Stephen Wood
Post by Jim Smith
calendar ringtone problem, but I couldn't get that far.
Even though calendar related, the prototypes.py patch was specific to
the Samsung SPH-A620.
Stephen,
Regarding the CVS patch, I was referring to your check in of
com_sanyo8200.py to, "Get the right ID for default Calendar ringer."
Post by Stephen Wood
Maybe the year 4000 is an artifact of the entry being a repeating
entry? If so, describe it completely or send me a zip of your bitpim
database (bitpim.db).
Thanks, Stephen
bpcalendar set this to indicate a "forever" or no-end-date repeat event.
The current work-around is to set an > end date to those events.
Post by Stephen Wood
-Joe Pham
I have 28 birthdays and anniversaries in my Outlook Calendar, all with no
end date. Even if I hadn't used the filter feature in BitPim's import,
doesn't each event get imported individually, so that looking at the repeat
value in Outlook is redundant?

I would expect BitPim to import whatever is in Outlook, up to its limit,
then write as many events to the phone as it will hold. FYI, DataPilot sets
a maximum limit of six months for both import and write. I could certainly
live with that. :-)

If necessary, I can add end dates to my events, but I would rather that
BitPim handle it. I'll be glad to send you a zip of bitpim.db if it will
help.

Thanks,
Jim
Stephen Wood
2005-02-02 15:57:54 UTC
Permalink
Post by Jim Smith
If necessary, I can add end dates to my events, but I would rather that
BitPim handle it. I'll be glad to send you a zip of bitpim.db if it will
help.
Thanks,
Jim
Yes, please send me (privately) your bitpim.db. I don't know if I
have a way to easily create events without end dates otherwise.

I will probably need to write an end date to the phone. I don't have
a Sanyo in front of me, but my Samsung requires and end date and the
end date can not be the same as the start date. What do you think
should be the end date sent to the phone when BitPim has not
speicified it? One hour later?

Stephen
Vic Heintz
2005-02-02 14:54:58 UTC
Permalink
OK, I've been chipping away at the roadblocks: libusb, pycrypto,
paramiko, jarow (btw this one is not mentioned in
http://bitpim.sourceforge.net/developer.html)

To get as far as I have, I had to edit native/usb/macbuild.sh

<
INCLUDEDIR=/System/Library/Frameworks/Python.framework/Versions/2.3/
include/$PYTHONVER
---
INCLUDEDIR=/Library/Frameworks/Python.framework/Versions/2.3/include/
$PYTHONVER

and edit makedist.py

< import native.strings.jarow
---
import native.strings.jarowpy
(I suppose I could also have also renamed jarowpy.py to jarow.py but
why should I have to? Is this a bug?)

Now I'm stuck again. I may not have a good install of py2app even
though the "python setup.py install" seemed to go OK.
makedist.py now gives me a long litany of apparently successful steps
and ends with:

byte-compiling
/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-
packages/paramiko/util.py to paramiko/util.pyo
Traceback (most recent call last):
File "/tmp/tmpZ6KVmY.py", line 519, in ?
direct=1)
File
"/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-
packages/py2app/py2app/util.py", line 208, in byte_compile
if force or newer(mod.filename, cfile):
File
"/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/
distutils/dep_util.py", line 22, in newer
raise DistutilsFileError, "file '%s' does not exist" % source
distutils.errors.DistutilsFileError: file 'boot_app.py' does not exist
error: command
'/Library/Frameworks/Python.framework/Versions/2.3/Resources/
Python.app/Contents/MacOS/Python' failed with exit status 1

I have no clue how to proceed from here because boot_app.py DOES exist
in
/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-
packages/py2app/py2app/bootstrap/boot_app.py (Hmmm... even at minimum
wage my time spent on this would more than pay for a copy of Panther.
Perhaps I should just throw in the towel.)

Vic
Roger Binns
2005-02-02 16:34:03 UTC
Permalink
Post by Vic Heintz
paramiko, jarow (btw this one is not mentioned in
http://bitpim.sourceforge.net/developer.html)
You don't need to build jarow just to run the developer code
which is why it isn't mentioned. You do need to build it if
you are making an installable package in which case that is
made clear by the pre-requisite checking of makedist.py.
Post by Vic Heintz
and edit makedist.py
< import native.strings.jarow
---
import native.strings.jarowpy
Errr, that is not right. You need to do the following in the strings
directory:

$ python setup.py build
$ cp build/*/jarow.so .

The directory contains both Python and native implementations of
the Jaro-Winkler functionality. To just run the developer code,
only the Python implementation is needed. To make shipping executables,
you need to build the native version.
Post by Vic Heintz
Now I'm stuck again. I may not have a good install of py2app even
though the "python setup.py install" seemed to go OK.
It is a bug in py2app. You missed this message with the fix:

http://article.gmane.org/gmane.comp.mobile.bitpim.devel/1798

Roger
Steven Palm
2005-02-02 16:42:00 UTC
Permalink
Post by Vic Heintz
To get as far as I have, I had to edit native/usb/macbuild.sh
<
INCLUDEDIR=/System/Library/Frameworks/Python.framework/Versions/2.3/
include/$PYTHONVER
---
INCLUDEDIR=/Library/Frameworks/Python.framework/Versions/2.3/include/
$PYTHONVER
This can be set conditionally in the script, I'll look at making that
change.
Post by Vic Heintz
and edit makedist.py
< import native.strings.jarow
---
import native.strings.jarowpy
(I suppose I could also have also renamed jarowpy.py to jarow.py but
why should I have to? Is this a bug?)
I don't think you'd have to have this change made if you compile the C
version of the jarow library... One caveat is that after you build it
(cd native/strings; python setup.py build ) you have to copy the .so
file from the build directory back into your strings directory... ( cd
native/strings; cp build/lib.darwin*/jarow.so . )
Post by Vic Heintz
Now I'm stuck again. I may not have a good install of py2app even
though the "python setup.py install" seemed to go OK.
makedist.py now gives me a long litany of apparently successful steps
I assume you are using 0.1.7 of py2app ? Just throwing that out, not
sure if it matters.
Post by Vic Heintz
distutils.errors.DistutilsFileError: file 'boot_app.py' does not exist
error: command
'/Library/Frameworks/Python.framework/Versions/2.3/Resources/
Python.app/Contents/MacOS/Python' failed with exit status 1
I have no clue how to proceed from here because boot_app.py DOES exist
in
/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-
packages/py2app/py2app/bootstrap/boot_app.py (Hmmm... even at minimum
wage my time spent on this would more than pay for a copy of Panther.
Perhaps I should just throw in the towel.)
Probably, since OWC (www.macsales.com) has deals for around $50 I
think... ;-) But at this point, it's only a few months until Tiger,
and then you can be on the BLEEDING edge. <smirk>

I wonder if you have an issue with which python you're running... as
you pointed out before, you've got quite a few copies installed. I
wonder if it's looking in the wrong place. Someone with more Python
experience could tell you how to determine which set of paths your
"default" python is looking at, and you could then check to see if
boot_app.py is in it's search path.

I know mine is in /Library/Python/2.3/py2app/py2app/build_app.py on a
Panther system. I'll have to reboot to see how Jaguar is configured. I
also know that I had some weirdness with py2app when upgrading from
early versions to the most current, since the modules were restructured
and I had to delete the old modules myself.

I'll double-check things and let you know what I find on my Jaguar
boot volume.
d***@netzero.com
2005-02-02 14:56:17 UTC
Permalink
What is the meaning of End date in the calendar editor now? Is it the >length of an event/appointment
Yes for single events.
or when a repeating entry stops repeating.
Yes for repeat events.

-Joe Pham



______________________________________________________________________
Speed up your surfing with NetZero HiSpeed.
Now includes pop-up blocker!
Only $14.95/month -visit http://www.netzero.com/surf to sign up today!
Stephen Wood
2005-02-02 19:19:13 UTC
Permalink
Post by d***@netzero.com
What is the meaning of End date in the calendar editor now? Is it the >length of an event/appointment
Yes for single events.
or when a repeating entry stops repeating.
Yes for repeat events.
-Joe Pham
Shouldn't this really be two seperate fields.

Stephen
Jim Smith
2005-02-02 16:23:14 UTC
Permalink
Post by Stephen Wood
Yes, please send me (privately) your bitpim.db. I don't know if I
have a way to easily create events without end dates otherwise.
File sent.
Post by Stephen Wood
I will probably need to write an end date to the phone. I don't have
a Sanyo in front of me, but my Samsung requires and end date and the
end date can not be the same as the start date. What do you think
should be the end date sent to the phone when BitPim has not
speicified it? One hour later?
Stephen
I'm using Outlook 2000. When I set a recurring event, I set start time, end
time, recurrence pattern, and end date. End time and end date are two
separate fields in Outlook, so maybe that's where the confusion lies.

Outlook displays recurring events separately, but I suppose it could be
doing something internally with only one copy. If possible, I would like to
see BitPim import Outlook events as they are displayed, without regard to
their recurrence. Wouldn't it take even more logic for BitPim to handle
recurring events that extend past the filter date?

Thanks,
Jim
d***@netzero.com
2005-02-02 19:48:57 UTC
Permalink
Post by Stephen Wood
Post by d***@netzero.com
What is the meaning of End date in the calendar editor now? Is it the >length of an event/appointment
Yes for single events.
or when a repeating entry stops repeating.
Yes for repeat events.
Shouldn't this really be two seperate fields.
The time components can be used to compute duration, the date components for repeat range.

-Joe Pham


______________________________________________________________________
Speed up your surfing with NetZero HiSpeed.
Now includes pop-up blocker!
Only $14.95/month -visit http://www.netzero.com/surf to sign up today!
Stephen Wood
2005-02-02 21:11:14 UTC
Permalink
Post by d***@netzero.com
Post by Stephen Wood
Post by d***@netzero.com
What is the meaning of End date in the calendar editor now? Is it the >length of an event/appointment
Yes for single events.
or when a repeating entry stops repeating.
Yes for repeat events.
Shouldn't this really be two seperate fields.
The time components can be used to compute duration, the date components for repeat range.
Isn't that non-obvious and confusing?

Why not just have a two "end" fields. One for end of event, and one
for end of repeating.

Stephen
Roger Binns
2005-02-03 05:27:40 UTC
Permalink
Post by Stephen Wood
Isn't that non-obvious and confusing?
Why not just have a two "end" fields. One for end of event, and one
for end of repeating.
Joe has tried really hard to be backwards compatible with the prior code
which was arbitrary and stupid as it was exactly the LG format, fields and
semantics. Of course it is difficult to know what exactly was arbitrary :-)

Anyway the LG phones didn't let you send end dates using the phone UI
for repeats, but did store 4095 as the end year. Altering the underlying
data did work - you just couldn't see or alter it in the UI. It also used
the one start date/time and one end date/time with the above semantics for
repeating events.

The really important prinicples for what the schema should be are:

- No duplication of information. No two fields should store the
same or interdependent information in such a way that it is
possible for them to be inconsistent

- Fields should end up being None when not set rather than a
specific value. This is so that we can always tell whether a
value is intentional and set or unset.

- Be very close to the standards (eg vCal) for the fields and
semantics

I haven't looked into the new calendar deeply enough to know what
exactly is going on, and this case certainly looks ambiguous.

Roger
Vic Heintz
2005-02-03 00:03:46 UTC
Permalink
Post by Roger Binns
Errr, that is not right. You need to do the following in the strings
$ python setup.py build
$ cp build/*/jarow.so .
OK did that
Post by Roger Binns
http://article.gmane.org/gmane.comp.mobile.bitpim.devel/1798
OK I was successful. Almost. I ended with the following:

hdiutil: detach: "disk2s2" failed to unmount due to error 16 (dissenter
-1).
Uncaught exception from user code:
FATAL: Couldn't unmount device /dev/disk2: 4096
image creation returned 4096

There is both a BitPim app and a Jaguar...dmg file in the dist subdir.
The dmg file is about twice the size of the app so it must have failed
a compression step. The dmg mounts and the BitPim app inside runs. It
does, however, say version 0.7.26-unnofficial. Is that right?

Vic
Steven Palm
2005-02-03 02:04:39 UTC
Permalink
Post by Vic Heintz
hdiutil: detach: "disk2s2" failed to unmount due to error 16
(dissenter -1).
FATAL: Couldn't unmount device /dev/disk2: 4096
image creation returned 4096
Verify the result if you run it manually:

/usr/local/bin/buildDMG.pl -debug -buildDir=dist -compressionLevel=9
-volName=BitPim -dmgName=JAGUAR-BitPim-0.26.dmg dist/BitPim.app

It seems as though it's failing on:

hdiutil detach $dev

Unsure why, usually it's because some process (Finder? a shell cd'd
into the image dir?) has it locked so it can't be removed. When run
with the -debug switch, you'll see the exact command it's issuing...
Try that your self when it fails. Also, you can use `lsof` to see what
has it open... you'll have to scan the output to see if you can find
the process... I'd *guess* that the lock would be *inside* the mounted
image, not on the image file itself, so maybe something like:

lsof | grep /Volumes

As a test, I opened a shell and set it's current directory to inside a
disk image of buildDMG, and got this:

bash 1632 n9yty cwd VDIR 14,10 1024 2
/Volumes/buildDMG (/dev/disk4s2)

Anyway, that might give more useful information... Anything in the
console log or system log?
Vic Heintz
2005-02-03 00:53:29 UTC
Permalink
It does, however, say version 0.7.26-unnofficial.
I think I see in the code why it is unofficial... because I am not an
official builder. I still can't explain why buildDMG.pl did not finish
its job. I manually made the dmg using the DiskCopy app and it is
compressed to 12 megs as it should be. I can mail this to someone if
they want to upload it to the sourceforge site.

Vic
Roger Binns
2005-02-03 05:20:04 UTC
Permalink
Post by Vic Heintz
I think I see in the code why it is unofficial... because I am not an
official builder.
Yes, your machine name needs to match one of the build machines names.
That was added purely so that other people building BitPim don't
get something that masquerades as the "official" build. It isn't
aimed at someone like you, but rather those ****tards who did the
"bitpim-for-vx6000" that was in no way done right, or sufficiently
clear that it had nothing to do with the real BitPim.
Post by Vic Heintz
I can mail this to someone if
they want to upload it to the sourceforge site.
I only want builds that are completely reproducible and full automated
for building. I also recommend you make a seperate directory and
do the build in that, rather than using your normal working directory.
That helps ensure you don't inadvertently get random stuff you may
have been trying in the official build.

Once you can do all that and are reasonably sure that the process and
builds are good, contact me via private email and I'll go through the
release process with you.

Roger
d***@netzero.com
2005-02-03 13:15:08 UTC
Permalink
Why not just have a two "end" fields. One for end of event, and one >for end of repeating.
It certainly could, and I'm open for all suggestions. I just don't think it's necessary IMHO, and it might require changes to existing phones' code. If everyone can live with that, I'm all for updating the design schema.

-Joe Pham



______________________________________________________________________
Speed up your surfing with NetZero HiSpeed.
Now includes pop-up blocker!
Only $14.95/month -visit http://www.netzero.com/surf to sign up today!
Stephen Wood
2005-02-04 05:14:35 UTC
Permalink
Post by d***@netzero.com
Why not just have a two "end" fields. One for end of event, and one >for end of repeating.
It certainly could, and I'm open for all suggestions. I just don't think it's necessary IMHO, and it might require changes to existing phones' code. If everyone can live with that, I'm all for updating the design schema.
I looked at some vcal spec. It seems like DTDATE, the equivalent of
our end date is end time of an instance of a recurring event. However
I can't convince myself that it never indicates when the recurring
ends. To me, though, the end of an instance of an event, and when a
repeating event stops repeating are different concepts and ought to be
in different fields.

Stephen
Roger Binns
2005-02-04 05:40:16 UTC
Permalink
Post by Stephen Wood
I can't convince myself that it never indicates when the recurring
ends. To me, though, the end of an instance of an event, and when a
repeating event stops repeating are different concepts and ought to be
in different fields.
For the LG, events can't span days so the start time and end time
are always on the same day. That allows the start and end date to
be joined with them for minimal storage.

On the other hand, I assume vCal allows events to span midnight and
hence this could all get confusing.

Roger

Vic Heintz
2005-02-03 20:15:45 UTC
Permalink
Post by Steven Palm
hdiutil detach $dev
Yes, there is something that is making hdiutil think that the mounted
image is still busy after the copy:

Copying files to /Volumes/BitPim...
Post by Steven Palm
/Developer/Tools/CpMac -r dist/BitPim.app "/Volumes/BitPim"
hdiutil detach /dev/disk1
hdiutil: detach: "disk1s2" failed to unmount due to error 16 (dissenter
-1).
Uncaught exception from user code:
FATAL: Couldn't unmount device /dev/disk1: 4096

If I immediately attempt to manually eject the BitPim disk image icon,
I get an error that it is busy. If I wait about a minute and manually
do a "hdiutil detach /dev/disk1" it will unmount. As a matter of fact
by editing buildDMG.pl to force it to sleep and retry I was able to get
it to finish without error:

# unmount the dmg
print "> hdiutil detach $dev\n" if $debug;
$output = `hdiutil detach $dev`;
#####################################################################
## This section added by Vic Heintz to wait until not busy for detach
$sleepsecs=0;
while (($? == 4096) && ($sleepsecs < 120)) {
sleep 5;
$sleepsecs += 5;
$output = `hdiutil detach $dev`;
}
print "Busy for ", $sleepsecs, " secs\n" if $debug;
## Typical busy time is 55 sec on 360 MHz G3 iBook running Jaguar
#####################################################################
die "FATAL: Error while copying files (Error: $err)\n" if $err;
die "FATAL: Couldn't unmount device $dev: $?\n" if $?;

(Typical sleep time seems to be 50-60 secs.) This is a real kludge but
I have not yet been able to figure out what is keeping it busy. (I'm
sure it doesn't help that this is a 360 Mhz G3.)

With this patch to buildDMG.pl I am able to get completely through the
Jaguar makedist without error. (Do you feel warm and fuzzy, Roger?)

Vic
Loading...