BlackBerry Forums Support Community

Closed Thread
LinkBack Thread Tools
Old 08-04-2007, 01:02 PM   #1 (permalink)
BlackBerry Extraordinaire
rivviepop's Avatar
Join Date: Dec 2006
Location: san francisco
Model: 8320
PIN: n/a
Carrier: t-mobile
Posts: 2,166
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default Barry 0.8 (alpha) released

Please Login to Remove!

From the mailing list, posted by Chris Frey:

Hello Barry Fans,

Have you been pining for your latest Barry fix? Have you had the shakes whenever you approach your Linux system with Blackberry in hand? Perhaps you have even been tempted (gasp!) to try the latest CVS to see what fun you're missing?

Well, calm your fragile nerves, for just in the nick of time, version 0.8 is released!

This version includes a lot of new features, including new and improved database support. Brian Edginton has reverse engineered and added support for parsing email records, pin messages, saved email messages, improved contact and calendar parsing, folders, memos, and tasks! Thanks Brian!

This version also includes the first ever, experimental, working release of the OpenSync plugin, supporting calendar and contact items. _Please_ make backups of both your device and your desktop data before playing with this.

The plugin is written for OpenSync version 0.22, and has some limitations, such as no support for recurring appointments, no support for timezones, and poor merge support. The good news is that it is finally possible to sync your Blackberry with applications such as Evolution.

I'm sure there are bugs, so please report them to the list if you find them.

This version includes Debian binary packages for the library, command line tools, and the GUI backup. Fedora 6 RPM's are available too. More binary packages for other systems should appear shortly over time.

Contributors in this release: (in alphabetical order)

Brian Edginton - many database parsing patches
gm2net - byteswap code
Niels de Vos - debian build dependency fix

Thanks everyone for downloading, using, and providing feedback for Barry!

- Chris

Release: version 0.8 - 2007/08/03
       - moved Interface implementation to file
       - added dout debugging messages to
       - clarified unhandled packet error message in
       - added temporary workaround in opensync-plugin environment's
               Reconnect(), for odd message seen on newer Blackberry
       - fixing issues with Brian Edginton's MessageRecord patch (2007/06/29)
               - fixed missing size check in message oriented ParseHeader()
               - fixed endian conversion issues (also found one pre-existing
                       endian bug in the process)
               - moved message timestamp converter code to
       - added Barry version number to opensync plugin name
       - changed maintainer scripts and rpm.spec to use bzip2 instead of gzip
       - added opensync-plugin to configure script build
       - added -S option to btool, to list supported parsers and builders
       - slight change to opensync-plugin/ to cleanup
       - opensync-plugin/README update
       - added opensync-plugin/patches for others who may be building and
               testing the plugin with OpenSync 0.22
       - added debian package build scripts to maintainer/
       - added entry to doc/TroubleShooting.txt
       - added doc/TroubleShooting.txt
       - opensync plugin:
               - fixed bug in that was using the FN field
                       for the broken-down name instead of N
               - added dbId and dbName to DatabaseSyncState
               - added Reconnect() functionality to BarryEnvironment class
                       and moved connect logic out of
               - changed the batch commit functionality in
                       to single-change-commit.  Why?  Because opensync
                       0.22 groups all batch changes into one group
                       and calls one batch commit function, even if you
                       registered two.  Moving to single change commit
                       mode removes a chunk of unneccessary code
                       from the plugin as well, and can in theory
                       ease memory pressure in the library.
               - added FinishSync() to perform actions needed on successful
                       syncing completion
               - disconnect on successful sync completion, and reconnect,
                       since the device's dirty flags don't seem to
                       be updated until a disconnect occurs.
       - added ReadDataArray() to data.h, using an istream instead of
               requiring a file
       - added raw data version of BuildField() to record-internal.h
               This is so that btool doesn't add extra null terminators
               to unknown data, when restoring with option -s
       - fixed bugs in
               - fixed bug that caused a LastName/FirstName swap
                       if FirstName was empty and you wrote a contact
                       record into the device.... First/Last Name
                       fields are position sensitive, and the code
                       was missing the empty FirstName case on writing
               - fixed bug in BuildFields() and Dump() where they
                       were not updated to handle the new field
                       table added for the postal address changes
                       on 2007/07/20, oops
       - opensync plugin:
               - changed the plugin config file, so it is possible to
                       turn debug output on/off without recompiling
               - moved the standalone Map2Uid() function into
                       the DatabaseSyncState class, and changed the
                       code to produce "contact-#" and "calendar-#"
                       UID strings, instead of just numbers
               - changed default PIN to -1, so that if the user doesn't
                       configure properly, it will fail... this is a
                       safety measure to avoid syncing with different
                       devices and corrupting the cache/idmap...
                       this should be fixed someday, to handle this
                       On second thought... is this right?  Perhaps
                       it is better to fail if the PIN is not what
                       is expected, so a user doesn't accidentally
                       sync the wrong device and lose data.
                       Actions to take on new PIN:
                               - force slow_sync, or
                               - fail
               - incorporated the new VCardConverter code into the
                       main plugin code
               - fixed bug that did not clear the devices dirty flags
                       in the case where a sync only read data from it,
                       and didn't write
               - changed PIN error message number to hex
       - minor wording change in backup GUI prompt: "Backup working..." to
               "Backup in progress..."
       - renamed Contact class's Title field to JobTitle for clarity
       - added record function ParseFieldString(), which properly handles
               strings from the device that have multiple null terminators,
               and changed the record parsing code to use this new function
       - moved FullName() function from to since it
               is generally useful in areas outside of LDIF processing
       - refactored postal addresses in the Contact record class into
               a new class called PostalAddress
       - renamed Address class in record.h to EmailAddress
       - moved Contact::GetPostalAddress() to as part of the
               new PostalAddress class and renamed it
       - opensync plugin:
               - refactored vformat helpers into separate base class
                       called vBase
               - added vCard converter class
               - commented out the code that skipped over the adding
                       of empty attribute values and parameters,
                       since VCARD depends on some of this behaviour
               - movified vformat.c:vformat_find_attribute() to take
                       an extra nth argument, in order to search
                       for multiple attributes with the same name...
                       the way this is coded is a bit inefficient...
                       but we're moving away from vformat when we move
                       to OpenSync 0.3x / 0.40, so this is just temporary
       - added SUBSYSTEM=="usb_device" to example udev rules, in order
               to avoid running bcharge for each endpoint that is
               added by udev, when first plugged in.  Running bcharge
               back-to-back multiple times can crash some
       - opensync plugin:
               - fixed ID mapping bug in the case of a non-numeric UID
                       from syncing external -> Barry, and then the
                       new Barry ID would look like a new change
                       when syncing back from Barry -> external.
               - added support for slow sync
               - added clear() to idmap class
               - added vformat attr parameter extraction class
               - added more trace logging during vformat/Barry conversions
               - added Notification time support
               - handled "all day" vformat special case, when DTEND
                       does not exist in a vformat data block
       - changed the min1900_t time conversion functions to handle
               the 0xffffffff special case, when notifications
               are turned off on a calendar event (src/
       - also made the calendar data dump output clearer for
               disabled timestamps, and added debug output
               for the raw min1900 value, in case there are more
               special cases in the future
       - fixed null pointer access in opensync's HasMultipleVEvents()
       - upper management directive: revert all OpenSync 0.3x changes
               and proceed with OpenSync 0.22.  Reverting the
               opensync-plugin/src tree to Barry 0.7 status.
       - reorganized exception and trace code in opensync plugin
       - added XmlToCalendar() function, based on unfinished opensync
               library API that is not yet finished... will be
               committed to opensync svn tree when complete
       - added OSyncXMLField logger to plugin trace class
       - applied email MessageRecord patch from Brian Edginton (thanks!)
       - updated Message::Dump() to output more valid mbox data...
               the goal is to be able to do:
                       btool -d "Messages" > email.mbox
                       mutt -f email.mbox
       - changed some TODO's to FIXME's to keep it grep-consistent
       - applied Folder support patch from Brian Edginton
       - fixed pedantic compile warnings, and changed order in src/
       - removed unneeded cast in src/
       - minor adjustment to ctags building in
       - applied patch from Brian Edginton for better boost detection
       - added boost usage message to btool -h output
       - more porting of OpenSync module to 0.30
       - added ctags build for opensync source tree to
       - changed PKG_CONFIG_PATH setting in rpm script, so that systems
               like SuSE that have an extensive PKG_CONFIG_PATH
               in general use will not break on build
       - added PKG_CONFIG_PATH to debian script too, just in case :-)
       - added debian/changelog to doc/ReleaseChecklist.txt
       - added comment to rpm/barry.spec regarding SuSE RPM builds
       - applied patch from Niels de Vos fixing debian package build
       - applied Brian Edginton's Saved Email Messages patch
       - updated comment to match header
       - added GetRecType()/GetUniqueId() to r_saved_messages.h, since
               SetIds() is already there
       - removed Address version of operator<<() from message related headers
               and moved into record.h
       - added std::hex to message related dumps, and changed output to
               be more mbox-like
       - updated doc/CodingStyle.txt to cover switch() statements
       - opensync compiles again, with 0.30!  (not functional yet)
               - moving closer to more modular and reusable plugin functions
       - updated release checklist for opensync version number
       - added doc/CodingStyle.txt... preliminary version
       - applied Brian Edginton's PIN message patch
       - changes to PIN message patch:
               - fixed missing backslash in src/
               - fixed tab alignment throughout
               - removed typedef from Address struct
               - added clear() to Address... might as well, if it it is
                       going to be a standalone type
               - fixed missing comma in PINMessageFieldLinks table
               - changed MessageRecordId in PINMessage to load from a new
                       uint32_t field in CommonField, instead of piggy
                       backing on a field for other use
       - did some testing and found that PINMessage's MessageRecordId
               is the same as the RecordId given through the SetIds()
               API... but these Id's are duplicated in the protocol...
               RecordId is stored in the protocol header, while
               MessageRecordId is stored in the record it self as
               a common field... added RecType and RecordId to
               PIN Message so that we store both of these
       - updated AUTHORS
       - added item to gui/TODO
       - applied Brian Edginton's s11n-boost.h patch
       - renamed template values to more consistent naming scheme
       - applied memos and tasks patch from Brian Edginton, slightly
               modified to split into the new separate files system
       - changes to memos and tasks classes:
               - reformatted the code to match coding style
                       (come on Brian) :-)
               - added copyright notice
               - changed class to singular (Memo, not Memos)
               - placed in Barry namespace
               - added #ifdef header protectors
               - added new files to
               - added new r_*.h headers to record.h
       - added support for Memos and Tasks to tools/, based on
               Brian Edginton's patch
               (currently commented out, for Boost library reasons):
       - added doc/CommitPolicy.txt
       - updated AUTHORS
       - added ctags generation to
       - applied record.{h,cc} fix patch from Brian Edginton
               - ClassFlag
               - FreeBusyFlag
               - Clear() fixes
       - fixed broken formatting in above patch
       - refactored record parser classes into separate files for each
       - changed the ConvertHtoB<> template to inline, as it caused
               linker errors with the new file layout
       - fixed bug in Debian packaging that put util commands in
               /bin and /sbin instead of /usr/bin and /usr/sbin
       - commited byteswap.h replacement code from gm2net
       - backup gui:
               - removed unneeded debug messages on stdout
               - changed the default for debug output to "off"
                       and added a command line option to turn
                       it on if necessary  (--debug-output)
               - command line option --help now also works
       - fixed bug in Calendar class where it didn't initialize
               RecType properly... and cleaned up other RecType
               code to use the GetDefaultRecType() functions,
               localizing the constants in one place
       - applied patches from Brian Edginton, parsing more
               fields in Contact and Calendar records
       - added Brian Edginton to AUTHORS
       - reformatted record.{h,cc} to match the rest of the code,
               removed commented out code, and removed mention of
               Outlook from the comments.
       - updated udev/10-blackberry.rules.Debian for Debian Etch
       - updated debian/rules to use new udev rules file
       - removed debian/postinst, as stable versions of Debian now
               have a recent udev, and don't need the special handling
       - updated Debian build scripts to build separate packages:
       - added menu support to Debian barrybackup-gui package
       - made the buttons bigger in the backup GUI, as they were too
               small on Debian Etch
       - opensync plugin:
               - more progress in porting to opensync 0.30, heavily
                       based on the example plugin in the opensync
                       svn tree...  this is a work in progress, and so far
                       is incomplete
       - opensync plugin:
               - partial porting to opensync 0.30 (in progress!)
               - fixed bug in sync_done where it reported context error
                       and then success afterward
       - checking in new INSTALL files based on Etch's autoconf run
       - added item to gui's todo list
       - bumped version numbers to 0.8 in:
               - src/
               - src/
               - gui/src/ (about dialog)
               - src/Doxygen
               - rpm/barry*.spec
[ Linux & BlackBerry ]
Old 08-04-2007, 09:42 PM   #2 (permalink)
BlackBerry God
LunkHead's Avatar
Join Date: Jan 2005
Location: Cardboard box
Model: 850
OS: 0.0.00001
PIN: kie swear
Carrier: USPS Priority
Posts: 11,201
Post Thanks: 245
Thanked 295 Times in 160 Posts

Yes!!!!! Thanks for the post rivvie!!! I hate evolution but might have to suffer if the sync works!!!! :woot: :woot:

Old 08-30-2007, 03:53 PM   #3 (permalink)
Knows Where the Search Button Is
xlancealotx's Avatar
Join Date: May 2007
Location: shopping cart
Model: 8310
Carrier: att
Posts: 25
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default ok .... now what?

Hey all. . . excitedly reading about this, got the packages, and after dependency after dependency, things are now intstalled, am I missing anything;

rpm -qa |grep barry

the only barry<tab> is barrybackup which pops upa nice box, closes quick to show an error;
(-16, Device or resource busy): Probe SetConfiguration failed

messages shows;
Aug 30 16:27:51 neo kernel: usb 2-2: usbfs: interface 1 claimed by usb-storage while 'barrybackup' sets config #1
Aug 30 16:46:45 neo last message repeated 3 times

I see people (at least I think) have gotten a sync with evo, and it looks like this is on the right track, so if anyone knows about the above error, how to fix, etc. feel free to post.

Right now it's syncing with the widows machine -> yahoo which does work a bit ... but ... so ... slow ....

thanks ...
Old 08-30-2007, 06:54 PM   #4 (permalink)
BlackBerry Extraordinaire
rivviepop's Avatar
Join Date: Dec 2006
Location: san francisco
Model: 8320
PIN: n/a
Carrier: t-mobile
Posts: 2,166
Post Thanks: 0
Thanked 0 Times in 0 Posts

Type "rmmod usb_storage" as root before starting any of the Barry tools, that module eats the USB interface so you have to free up the connection.
[ Linux & BlackBerry ]
Old 09-04-2007, 01:08 PM   #5 (permalink)
Knows Where the Search Button Is
xlancealotx's Avatar
Join Date: May 2007
Location: shopping cart
Model: 8310
Carrier: att
Posts: 25
Post Thanks: 0
Thanked 0 Times in 0 Posts

Cool, that worked perfect so now I have a way to backup the bb.

Now is there any documented or known "how to" to sync with evo? I am currently sycing to yahoo with the windows software so I can access things via browser on my linux machine, but yahoo is really slow so a sync to evo would be perfect.

Thanks again.

Old 09-05-2007, 04:50 PM   #6 (permalink)
Knows Where the Search Button Is
Join Date: Sep 2007
Model: 8830
Carrier: Sprint
Posts: 21
Post Thanks: 0
Thanked 0 Times in 0 Posts

Is there even howto's for using the barry tools? I have installed them and I am not sure where to start.

I plugged in the bb to my usb cable and got the typlical error message indicating there is not enough current so perhaps I need to run barry first?

Thanks for your patience...
Old 09-05-2007, 05:30 PM   #7 (permalink)
BlackBerry Extraordinaire
rivviepop's Avatar
Join Date: Dec 2006
Location: san francisco
Model: 8320
PIN: n/a
Carrier: t-mobile
Posts: 2,166
Post Thanks: 0
Thanked 0 Times in 0 Posts

You folks want to join the 'barry-devel' list on Sourceforge, it's active and the authors (Chris Frey et al.) are very responsive.
[ Linux & BlackBerry ]
Closed Thread

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Siemens 6ES7 313-5BE01-0AB0 CPU313C V2.0.11 and PS307 307-1EA00-0AA0 and Rail
Siemens 6ES7 313-5BE01-0AB0 CPU313C V2.0.11 and PS307 307-1EA00-0AA0 and Rail pictureMain 20 Circuit Lug 20 Space 125 Amp Load Center Indoor Combination Best New
Main 20 Circuit Lug 20 Space 125 Amp Load Center Indoor Combination Best New pictureMain 24 Circuit Lug 16 Space 125 Amp Load Center Indoor Combination Best Design
Main 24 Circuit Lug 16 Space 125 Amp Load Center Indoor Combination Best Design pictureNew In Box Siemens 6ES5375-0LC31 6ES5 375-0LC31 1 year warranty
New In Box Siemens 6ES5375-0LC31 6ES5 375-0LC31 1 year warranty pictureNew In Box Siemens 5SX2520-7CC03 5SX2 520-7CC03 1 year warranty
New In Box Siemens 5SX2520-7CC03 5SX2 520-7CC03 1 year warranty picture

Copyright 2004-2016
The names RIM and BlackBerry are registered Trademarks of BlackBerry Inc.