The Barry development team is pleased to announce the release of version 0.15. Source and binary packages are available for immediate download at the URLs below.
Barry is an Open Source application that provides synchronization, backup, restore, and program management for BlackBerry devices. Barry is primarily developed on Linux, but is intended as a cross platform library and application set, targeting Linux, BSD, 32/64bit, and big/little endian systems. This is a long awaited release, with lots of new features from 11 months of development: - binary packages for Ubuntu 9.04 and Fedora 11, and better support for Fedora 11's HAL/udev system - a new version of the opensync plugin in step with opensync's 0.3x devel tree, which includes new syncing options for tasks and memos and photos (this plugin is currently considered experimental until opensync officially releases 0.40) - improved sync logic for contacts (both 0.22 and 0.4x plugins) - a FUSE filesystem driver to browse BlackBerry databases as files - internationalization improvements in library and sync - support for the BlackBerry Storm and Pearl Flip - javaloader support (includes load, save, erase, info, eventlog, screenshot, wipe, settime, etc) - fixes to support newer kernel USB behaviour changes - zsh command line completion support - parsing support for RIM's USB logs - database parsing improvements: phone call logs, SMS records - new modem chat scripts: China Mobile, AT&T Cingular - backup GUI can now pick backup destination folder - backup GUI can now change between multiple devices Binary packages are available on SourceForge for 32 bit systems, for the following distros: Debian stable (lenny) Ubuntu 7.10, 8.04, 9.04 Fedora 7, 8, 9, 11 Source packages are available in Debian, RPM, and tarball formats. http://sourceforge.net/projects/barry/files/ Packages used to be available on the OpenSUSE Build Service, but this has been discontinued for this release due to lack of time. Detailed user documentation is available online at the usual place: http://www.netdirect.ca/software/packages/barry/ (scroll down to the 0.15 section, where the files are grouped more clearly that in the "new files" list) There are some known issues in this release (which affect older releases as well). Namely: 1) Restoring backups for some databases on newer Blackberries doesn't work (for example, on the 8120, 8700g). Before relying on barrybackup, please make full data backups using RIM's Windows tool. 2) Syncing is not supported on Fedora Core 9 and 10, since they packaged the OpenSync 0.3x devel tree. This has been fixed in Fedora 11, as they returned to 0.22. 3) Accessing the database (such as during a backup) while copying files using the usb_storage kernel module may cause some Blackberries to spontaneously reboot. For full details regarding the changes in 0.15, please see the ChangeLog. For information on release target dates and milestones, see the latest TODO file in the git repo: http://repo.or.cz/w/barry.git?a=blob;f=TODO;hb=HEAD You are encouraged to join the project, play with the code, and report any problems or feature requests to the mailing list. You can use the command line tool to capture unsupported database items and help in the reverse engineering process. Enjoy! Contributors in this release: (alphabetical order by last name) Richard Esplin - AT&T Cingular chat script Ron Gage - Autotext and Service Book parsing notes Dr. J A Gow - iCal sync and category patches Andy Herkey - modemtest.rb script - ipmodem password support for Bold Josh Kropf - many additions to javaloader support - support for large java modules - brimtrans tool for parsing RIM USB logs John Ladan - Pearl Flip ID report Ryan Li - SMS record parsing support - China Mobile chat script - backup GUI improvements Martin Owens - HAL FDI scripts - devel snapshot binary packages for Ubuntu - documentation of Content Store Bill Paul - FreeBSD and build system debugging Rick Scott - reverse engineering infomation on various details in the javaloader protocol Jose Sogo - Debian package patches Christopher Stover - Fedora 10 debugging help Nicolas Vivien - BlackBerry Storm support - initial javaloader patch - porting sync plugin to opensync 0.4x - zsh completion script - sync support for photos - sync support for memos and tasks - phone call log parser - bookmark documentation - build system fixes (boost) - LDIF patches Robert Yaklin - VSM file format documentation A special thanks to all testers who have provided valuable feedback. Thanks also to the official distro maintainers: Debian Jose Carlos Garcia Sogo Fedora Christopher D. Stover Mandriva Adam Williamson Thanks to Christopher Stover and Martin Owens who provide development snapshot binary packages for Fedora and Ubuntu, respectively. ChangeLog for version 0.15: Release: version 0.15 - 2009/08/28 ------------------------------------------------------------------------------ 2009/08/28 - added binary build for Ubuntu 9.04 to maintainer scripts 2009/08/27 - added binary build for Fedora 11 to maintainer scripts 2009/08/21 - updated www documentation for upcoming release - applied Nicolas Vivien's phone duplication patch (opensync 0.4x) - fixed missing conflict check in vcard code in opensync 0.4x plugin - backported new TYPE parsing code from opensync-0.4x plugin to old opensync 0.22 plugin - added X-EVOLUTION-UI-SLOT support in both sync plugins to retain phone number order 2009/08/17 - added pin and password command line support to bfuse - updated bfuse man page 2009/07/29 - added border to barrybackup doc images 2009/07/28 - updated license and URL in barry.spec - updated barrybackup Credits dialog to reference AUTHORS file - updated barrybackup.1 man page - updated doc/www scripts to generate more dynamic pages, so subheaders are not hard coded... this helps support updating the new NetDirect website - commented out out-of-date docs in hacking.php - marked milestone 4 complete (javaloader) - linked device compatibility list from index.php 2009/07/10 - changed pppob to report if Serial was fallback or command line - started device compatibility list in web docs 2009/07/07 - applied Ryan Li's GUI enhancement patches, which let the user switch devices without restarting, with fixes: - reorganized BackupWindow.glade for better spacing - fixed width issue (main window was set to 275 width, which made things too narrow on Debian Lenny - moved buttons beside the drop down box, to mimic old GUI behaviour - added space around the middle controls, but not around the menu bar or status bar, which should be right against the outer window. - renamed m_device_num to m_device_count for clarity - changed m_device_count to unsigned int to fix compiler warnings - removed gtkmm call to unset_model() The function unset_model() is only available in gtkmm 2.16, and Debian Lenny only has 2.12, and won't compile. Since set_model() automatically does the unset for us, just reorganize the calls so Lenny is supported. 2009/07/06 - applied Ryan Li's SMS clarification patch 2009/07/02 - added Martin Owens' new Ubuntu PPA link to docs - added DEPUTY documentation and updated AUTHORS 2009/06/30 - documentation updates - added SMS to list of parsers in documentation - updated sync notes for Fedora 9 and 10 in documentation - removed Martin Owens' PPA binary package link, since I can't find the binaries anymore - reverted commit 2d0e60d1: put hal fdi files back - updated HAL FDI files for Fedora 11 - duplicated directory hierarchy under hal - added 19-blackberry-acl.fdi to add the access_control capability to blackberry devices when they are plugged in. As long as this file is under the 10osvendor directory, then 20-acl-management.fdi runs after it, adding the hal-acl-tool callout, which does the low level getfacl/setfacl work on the /dev/bus/usb/*/* device file. related thread: http://lists.freedesktop.org/archives/devkit-devel/2009-June/000247.html - changed hal fdi policy to use "pda" instead of "scanner" - applied Ryan Li's 7-bit GSM conversion patch for SMS records - applied Ryan Li's barrybackup patch: can now select backup path 2009/06/26 - fixed install location of hal fdi files in debian and rpm HAL reserves /usr/share/hal/fdi/information/10freedesktop for files that the project itself distributes, so we get to use 20thirdparty. 2009/06/24 - cleaning up autoconf warnings on Fedora 11 - changed buildgen.sh to run libtoolize first for all subprojects, otherwise, a later project's run may copy files into ../m4 after having created configure for a previous project. This would cause a makefile discrepency during the build on some systems (Fedora 11), and cause configure to be incorrectly regenerated mid-build, due to timestamps. 2009/06/21 - updated dependencies documentation page 2009/06/20 - added BadPacket exception, for socket errors that need to meddle with the response code - added special case for JavaLoader's Goodbye packet On older devices, such as the 7750 and 7130, they respond with a NOT_SUPPORTED error instead of an ACK, for Goodbye packet commands. This is seen in Windows traffic as well, so should not be considered an error. Thanks to Josh Kropf for confirming this protocol behaviour. - updated socket.cc to use new BadPacket exception where appropriate - pulled from Josh Kropf: 0f1cca2fa69d0810d439ade4fb3dd0dfa15c89a6 - fixed size issue with deviceinfo command on 7130 devices 2009/06/19 - reworked autoconf rules to handle every kind of Boost dependency: - let user enable/disable from configure, default to disable, but error if enabled and not available - let user specify separate include and lib paths, since some Boost installations have an additional boost-1.34.1 style directory in them - default to no path overrides, using system defaults - let user specify name of serialization library, since the name of the library can change whether you're building from source or not - default to searching for boost_serialization or boost_serialization-mt, and error if not found - New configure switches are: --enable-boost Handles enable/disable --with-boost-include=path Override the include path --with-boost-lib=path Override the lib path --with-boost-serialization=name Override the name of serialization library to link with - updated documentation, build test, and binary packages to use new switches 2009/06/18 - added non-backward-compatibility note to man/btool.1 - applied Nicolas Vivien's LDIF patches, clarifying split between work and home addresses, and adding support for the homePostalAddress LDAP field - fixed missing #includes for Fedora 11. Thanks to Nathanael Noblet for reporting this. - applied Ryan Li's PPP chat script for China Mobile - added barry-chinamobile chat script to RPM and Debian packages - renamed blacklist-berry_charge to blacklist-berry_charge.conf for Debian sid and Fedora 11. Thanks to Rodrigo Linfati for reporting. - applied Nicolas Vivien's autoconf patch to automatically search for boost_serialization or boost_serialization-mt 2009/05/12 - applied Dr. J A Gow's category patches (task + memo) - fixed compile error when using Boost - cleaned up Categories handling: - s11n-boost.h - Dump() should be consistent across Calendar, Memo, Task - fixed i18n support to category names - cleaned up code formatting to match surrounding code - moved CategoryList to its own class, and removed duplicated string conversion code - removed protocol-specific MemoType and TaskType fields from their corresponding record classes 2009/05/09 - applied Nicolas Vivien's Task builder patch for the Storm and Bookmark documentation patch 2009/05/08 - applied most of Dr. J A Gow's recurring iCal sync patch - did not include the pure upper case changes, since it is an RFC bug in SynCE see http://www.mail-archive.com/barry-devel@lists.sourceforge.net/msg01109.html - added starttime to RecurToBarryCal() args, to make the prerequisites clear (StartTime must be determined before recurrence is parsed) - added check that COUNT is not zero (RFC requirement) - fixed timezone drift: using gmtime() + mktime() uses two different timezones... use localtime() + mktime() instead - comment resizing - reformatted if/else FREQ tests into a more readable sequence, and fixed a logic error in the yearly count advance, which should only happen when FREQ == YEARLY - updated AUTHORS 2009/05/06 - going through www documentation, updating for 0.15 - updated man/btool.1 with new -a option - updated TODO list with new reality - applied Nicolas Vivien's phone call log parser patches - added CallLog to s11n-boost.h - added size checks to parser - removed CallLogType, since it is protocol specific - added and tidied comments - made CallLog::Clear() match the class declaration order, fixed missing member, and used enum names to set enum defaults 2009/05/05 - applied Nicolas Vivien's task sync patches, with btool updates - fixed "VTOTO" typo - now that there's a Desktop::ClearDatabase() call, use it in SaveDatabase() to reduce code duplication - use separate vector<> clearDbNames in btool to eliminate chance of mixing -d and -a argument types and losing data - reverted VNOTE change in vformat.c - added VFORMAT_JOURNAL support to vformat.c based on r2795 of the opensync vformat plugin - fixed some TimeZoneValid flag mistakes in Task and Calendar - display DueDateFlag in src/r_task.cc - changed vtodo.cc so DTSTART is only set if available in BB data 2009/05/01 - applied Nicolas Vivien's zsh patch - applied Nicolas Vivien's memo sync patch - added MEMO_TYPE 'm' to built memo record - updated btool to include new Memo builder - updated config.rpath to latest from Debian stable 2009/04/27 - removed free() in tarfile.cc, since some distros have bugs in th_get_pathname() that doesn't return a freeable string 2009/04/22 - fixed some missing headers as reported by Christopher Stover - applied Ryan Li's SMS body null terminator strip patch - fixed code formatting issues - added comment on why we're stripping out nulls - fixed potential single byte buffer overflow - pulled from Josh Kropf: 8266c95a94 added "reset to factory" command to bjavaloader - split creation of deb src tarballs into separate script instead of tar-create.sh - added more statements for the m4/ directory in configure.ac and Makefile.am, attempting to eliminate build warnings on FC10, as reported by Christopher Stover 2009/04/14 - applied Nicolas Vivien's sscanf patch (opensync-0.4x) - wrapped OSyncList in vSmartPtr<> to automatically handle all calls to new osync_list_free() API - applied Ryan Li's updated SMS parser patch - moved SMS metadata structure into its own struct in protostructs.h - fixed some endian conversion errors - added strnlen() call to avoid null terminators in the Addresses strings 2009/04/10 - added brimtrans to rpm spec file and debian install 2009/04/09 - fixed OSyncList* leak in 0.4x plugin from call to osync_plugin_info_get_objtype_sinks() 2009/04/08 - added IConvHandle, making it possible to support more than one charset in Blackberry data - removed patches from opensync-plugin-0.4x 'make dist' target - updated buildtest.sh for opensync 0.4x 2009/04/06 - updated man/bjavaloader.1 2009/04/04 - added Product ID 8001 for the Pearl Flip. Thanks to John Ladan for reporting the new ID. 2009/04/03 - removed 0.22 opensync patches from 0.4x tree - applied opensync Photo support patches from Nicolas Vivien - renamed SequencePacket() to HideSequencePacket() for clarity This is a temporary measure... this sequence packet code needs to be cleaned up. - added Photo support to examples/addcontact.cc - removed try/catch from vcard/vevent, pending feedback from Nicolas - applied Ryan Li's SMS record parsing patch - changed capitalization to match other code - added Sms to s11n-boost.h and required operator - added Sms to btool.cc, record.h, and Makefile.am - added size checks to the parser code - cleaned up brackets and casting - made dump output prettier (at least to me) :-) - added "unknown" state for MessageStatus, as default - cleaned up whitespace - updated AUTHORS - added endpoint override to Probe class while testing the 7130 When using btool's -e option, the Probe class still attempted to probe endpoints as it saw fit. 2009/04/02 - fixed double-free bug in opensync 0.4x plugin Can only report error or success once in a change. - updated buildgen.sh to handle ctags for multiple opensyncs - fixed inverted logic when doing a hashtable slowsync (opensync 0.4x) - fixed uninitialized osync_trace args in both vformat.c files 2009/04/01 - opensync 0.4x changes due to upstream API updates - removed idmap and cache code, in favour of opensync's uid mapping and hashtables respectively 2009/03/31 - opensync 0.4x changes due to upstream API updates - removed deprecated opensync header - updated 0.4x plugin to use new slow-sync API - updated 0.4x plugin to use new function registration and user data API - updated 0.4x plugin to use new sink list (API change) 2009/03/27 - changed PIN format from decimal to hex in opensync-0.4x plugin config - added special case so photo data does not print raw in btool dumps - fixed call to trace.logf() in plugin code... should never call a printf-like function unless you use a constant "%s" - made opensync-0.4x:vformat.c's base64 routines const-correct - fixed free()-crash bug in both vformat.c files When generating the resulting VCARD data, vformat.c assigned static strings to a dynamic heap list pointer, and the later free always failed. - merged some changes from Jose Sogo's Debian package work - menu changes to conform with policy - renamed opensync plugin package name to match Debian - added Nicolas Vivien and Josh Kropf to debian/copyright - fixed uninitialized variable in SocketZero - fixed memory leak in tarfile.cc - fixed uninitialized time struct in bjavaloader.cc (valgrind error) 2009/03/24 - fixed typo in zsh/_bjavaloader thanks to feedback from Nicolas V. - pulled from Josh Kropf: 75b1a89e8b1eb9d89bcd8b5ecbed9a47af5a8930 added logstacktraces support to bjavaloader - updated TODO list with "- All" database parsing 2009/03/13 - added git tag signing to maintainer scripts - added signed tagging to release checklist doc 2009/03/11 - updated opensync-plugin-0.4x/README with build help 2009/03/10 - pulled from Josh Kropf: d6c3173ccd87c6223647950963da79331a68d712 added deviceinfo support to bjavaloader - pulled from Josh Kropf: 272f371e8bb95b6c41a8293de657da45a782736f new tool: brimtrans for dealing with RIM USB logs - pulled from Josh Kropf: 7ed1df560ea7cc6a2205d8f8627c00c7aaed2294 added wipe support to bjavaloader - added confirmation step to bjavaloader wipe, so it is harder to accidentally wipe your device - applied zsh patch from Nicolas Vivien for bjavaloader wipe 2009/03 - changes inspired from Rick Scott's XmBlackberry - event log timestamp is a time_t in milliseconds 2009/03/07 - added Mode base class for common mode class code 2009/03/06 - reorganized external links by date and topic, and added link to Nicolas Vivien's Blackberry on Linux documentation 2009/03/05 - pulled from Josh Kropf: b3d3a6f48fe008e8842c057df4a653a04b9c56ce - compile fix when using __DEBUG_MODE__ - fixed timeout when calling JavaLoader::GetDir on device with zero modules 2009/03/04 - fixed embarrassing incorrect exception messages in usbwrap.cc Fortunately, these didn't affect my timeout testing. - added Data::QuickZap(), so that usb read errors don't return old data - inlined Data::QuickZap() - added usb_set_altinterface() call to Interface class This should hopefully workaround the change in 2.6.28 kernels where set_interface is not called by the kernel automatically anymore. 2009/03/03 - applied Nicolas Vivien's opensync-0.4x API patch 2009/02/28 - applied Nicolas Vivien's zsh patches 2009/02/26 - added opensync-0.4x to tar-prepare.sh maintainer script 2009/02/24 - added note about novj option issue in barry-att_cingular - added gettext to documentation dependency list (for iconv.m4) 2009/02/20 - clarified bjavaloader save behaviour - updated bjavaloader man page - added maintainer/build as exception for test/buildtest.sh - merge opensync-0.4x branch into master: 2009/02/20 - removed nested m4 in preparation for merge into main Barry tree 2009/02/18 - applied Nicolas Vivien's opensync-0.4x Calendar+Contact patch 2009/02/01 - applied Nicolas Vivien's opensync-0.4x porting update patch - removed unneeded ChangeLog.osync - added opensync-plugin-0.4x to top level configure, but not to binary packages - added old emails from Ron Gage from 2006 regarding Autotext and Service Book parsing 2009/02/19 - pulled from Josh Kropf: 9b63a99867b3314b8d42212cac05a6f28860d37b - saving large modules in pkzip format - cleaned up StartStream function; use JLPacket instance - refactored SendStream; use JLPacket instance and use simple function for seeking to next cod file in input stream - made following changes to Josh Kropf's patches - Added CODFILE_TYPE_SIMPLE check back in - Minor change of c_str() to data() where a null terminator is not needed - Fixed unlikely buffer overflow in m_javaloader.cc Goal: never trust outside sources of information (including that from the device) when managing our own buffers. - Removed CodFile forward declaration, since class does not exist anymore - Fixed typo in configure.ac, and made missing zlib warning more emphatic - Added clarifying comment to CodFileBuilder - Fixed potential reference bug in CodFileBuilder constructor It is possible that the const std::string& passed into the constructor is a temporary, so make a copy of it instead of just holding a reference. - Removed multi-unget call in cod.cc -- only one unget() is guaranteed in C++. It appears that the unget is unnecessary, since the following code seeks to end and back to beginning anyway. - Added copyright line for Josh Kropf in cod.cc and cod-internal.h - Fixed incorrect zlib check, since zlib doesn't support pkg-config on most systems yet. Changed it to use AC_CHECK_LIB, and added a --with-zlib configure option which will cause configure to halt if zlib is not available. Added --with-zlib to binary package builds, and to build test script. - added zlib to rpm and deb build requirements list 2009/02/18 - updated USB capture logs archive page with new logs from Josh Kropf - applied as patch Josh Kropf's annotated javaloader-reset.txt log - added note about windows registry keys to USB-capture.txt 2009/02/17 - applied Josh Kropf's patch adding support for forced erase and load while module in use, properly handling when the device requests a reset 2009/02/15 - applied Nicolas Vivien's RecordId patch for Contact class... this updates Barry to deal with the new record ID behaviour on the Storm 2009/02/13 - removed unneeded call to .c_str() in EmailAddress stream operator - added support for Calendar fields: Organizer, Accepted, Invited - reorganized the udev/ script directory, based on distro, and added a specific rules file for openSUSE 11.1 - updated Debian and RPM binary scripts to point to correct udev files 2009/02/07 - applied Nicolas Vivien's patch to fix the timeout issue on the Blackberry Storm 2009/02/04 - applied Josh Kropf's save module patch - minor whitespace fixes - removed unneeded exception (fstream closes files automatically on exit of scope, or exception) - fixed compile error with variable sized array... replaced with std::vector<> instead of memcpy, in JavaLoader::SaveData() - commented out an unused variable 2009/02/03 - commented out AT+CREG? in barry-rogers.chat, since it causes some Blackberry devices to reboot - applied Josh Kropf's eventlog and clear eventlog patches - capitalized JLEventlogEntry fields, to match other record classes - use constant when parsing entry - renamed a define - sweeping cleanup of record classes and clarified all constant conversions i.e. whenever converting between a protocol constant and an API constant, do it through a function, in case the constants change on the Blackberry side 2009/01/31 - applied patch of binary VSM file from Robert Yaklin 2009/01/30 - moved Nicolas Vivien's codfile code into library class API - this change avoids having packed structs exposed in installable header files, and gives the library user an easy way to work with COD files - added CodFile class - added JavaLoader::LoadApp(CodFile&) - cleaned up bjavaloader to use new API - moved codfile_*_t structs to internal header - also fixed command line status output when exceptions are caught (unrelated fix) - added / updated manpages: bfuse, bjavaloader, btool - added fuse to build dependencies for rpm and deb packages - updated web docs, adding libfuse to dependencies page - added libiconv as well 2009/01/29 - applied screenshot and zsh patch from Nicolas Vivien His git log, as posted to the mailing list, was: Remove bscreenshot binary Add screenshot option to bjavaloader binary Add comments in the code Use defines beside of integer constant Use b2hons to be compliant with evrywhat host ZSH scripts completion Use BMP structs beside of unreadable buffer ! His changelog notes: - add command GetScreenShot to JLPacket class - add JLScreenInfo to protocol structures - updated AUTHORS - minor tweaks to Nicolas's screenshot+zsh patch: - renamed DIR_ENTRY and SS_ENTRY to DATA_ENTRY constant as suggested by comments - fixed some packet size checks - whitespace fixes - removed unneeded packet.GetReceive(), since response buffer is the same as what GetReceive() returns - used AutoClose for fopen() calls in bjavaloader.cc for exception safety - removed manual buffer handling in favour of Data object in JavaLoader::GetScreenshot() - removed "unknown packet" exception from Socket::PacketData() I think it is probably better to handle javaloader-level errors and codes in the JavaLoader class, not the low- level Socket class. - added erase and force erase support to bjavaloader, library, and zsh - force erase is experimental - applied documentation patch from Robert Yaklin on VSM file format - did slight formatting changes before applying, for 80 columns, and set file to unix format instead of DOS - added links to new USB capture logs from Robert Yaklin to logs.php doc page - cleaned up src/Makefile.am, regarding non-install headers - moved Nicolas Vivien's bitmap conversion code into library API - added bmp.h api, and moved internal structs to bmp-internal.h - added size checks and endian conversion to bitmap conversion code, so this code should run anywhere 2009/01/27 - added link Josh Kropf's 'Blackberry development in linux' blog post to doc/www/index.php - added USB capture log archive page to www docs - added config.rpath, needed by new AM_ICONV check Thanks to Bill Paul for debugging this. - applied Nicolas Vivien's opensync plugin 0.4x patch 2009/01/26 - added template wrapper for iconv() due to casting differences on various platforms... thanks to Bill Paul for FreeBSD testing - added AM_ICONV automake/autoconf check to configure.ac This should take care of checking for libc or library iconv installs, and checking the iconv() prototype for whether const is needed or not. This removes the need for the template added earlier. 2009/01/25 - applied patch from Josh Kropf making bjavaloader's syntax more compatible with the windows version, to make cross platform build scripts possible - applied Josh Kropf's settime syntax patch - clarified timezone behaviour in javaloader settime - added flag to JavaLoader mode class, so StopStream() is called automatically in the destructor if not called manually 2009/01/24 - added another ctor to BadSize exception class - fixed bug in SocketZero where it checked sequence on packets from non-zero sockets - javaloader list mode updates: - added Dump() code to directory classes - fixed size issue with JLDirEntry header size define - fixed size checks in entry parser - fixed copy before in JLDirectory, now uses vector - moved bjavaloader's Start/StopStream calls to main() 2009/01/23 - removed default argument to CheckSize() so all code specifies the size it really needs - fixed bug in ParseData() that didn't copy data to receive arg - adding additional javaloader commands and refactoring this is a work in progress: - added JLPacket class, encapsulating javaloader protocol - added new defines for more JL commands - refactored socket class, using PacketData() for JL, and Packet() for Desktop (still needs some work to be really clean) - began implementing new commands (SetTime()) - thanks to Rick Scott for his reverse engineering effort in XmBlackBerry, which inspired this code - refactored packet.cc to make JLPacket even tighter - updated doc/USB-capture.txt with link to vusb-analyzer Thanks to Martin Owens for the link. - added a set of be_*() endian swap functions, for big endian data JavaLoader code seems to use big endian a lot. - simplified bjavaloader.cc's command line args to make room for more - cleaned up big endian code to use new be_* swap macros - added protocol and packet code for directory / subdir commands - added preliminary directory support to JavaLoader class 2009/01/22 - reverted experimental handshaking in IpModem, since the session_key patch fixed Bill Paul's issue - finished adding IConverter support to r_task and r_timezone - removed r_message_base.h from doxygen RecordParserClasses group - removed unused ClassType variable from Task record class - refactored Calendar and Task record classes, creating new RecurBase to handle recurrence data - removed FIXME in Socket::Packet(), since socket is set in Send() - cleaned up socket handling and comments in packet.cc 2009/01/20 - applied Nicolas Vivien's javaloader patch, fixing constant defines and other small fixes - minor whitespace and spelling fixes to above patch - changed m_ipmodem.cc to send the session key even without password which should help reduce the "special packets" coming from the device. Thanks to Rick Scott and Andy Herkey. 2009/01/17 - refactored pthread timeout creation into ThreadTimeout() function - added experimental handshaking to IpModem. This is in response to Bill Paul's email regarding what he was seeing in the logs with the special code packets which we dropped on the floor. This code is to test whether this handshaking theory is true. 2009/01/16 - made maintainer script make-deb-local.sh more robust - added list of target binary packages in ReleaseChecklist.txt - changed to more general Fedora link to Chris Stover's packages 2009/01/15 - applied Andy Herkey's ipmodem password patch for the Bold - minor fixes to above patch, and in addition to above patch: - use sizeof(seed), instead of type, in case of future changes - removed commented out code - added the null password check back to SendPassword(), for historical reasons - removed the null and zero default arguments to SendPassword(), since they make no sense - added define for session key size, and added size check - added missing string.h header to src/m_javaloader.cc - updated Debian and RPM packages to include bjavaloader 2009/01/14 - applied Nicolas Vivien's bjavaloader patch - small fixups to above patch: - moved cod.h from installable headers to internal headers - whitespace edits - copyright statement tweaks - added blog URLs to copyright list in cod.h where parts of the structs appear to come from - removed unused variables to compile with strict settings - changed char to unsigned char to fix strict compiler warnings - removed duplicated a/b from Socket messages, and moved read/write text to front, in socket.cc - added NetDirect copyright notice to bjavaloader.cc, since it is based on btool.cc - removed unused boost-specific code from bjavaloader.cc - more fixes to above patch: (bjavaloader.cc specifically) - moved cod.h back to installable headers, since tools/ programs depend on it... this should be fixed or put in the library as a COD-reading API so that applications don't need to worry about packed files, etc. - fixed potential buffer overflow: removed buffer read used to skip ahead in file, and replaced with fseek() - changed SendAppFile() to report errors by exception instead of by return value, which wasn't checked anyway... and C++'d the file handle closing - removed unused StateTableCommand, leftover from btool - added check for unlikely case of COD file being larger than size_t, breaking the fread() assumption for the type == 0xC0DE case - added checks for fread() failures - fixed compiler warnings when comparing signed/unsigned, and changed file operation types from plain int to size_t/off_t - changes to src/m_javaloader.cc: - fixed comments to remove Desktop-oriented notes - moved variables closer to their use point - removed the duplicated response Data objects in favour of just one (each default Data object uses 0x4000 bytes of heap) - removed manual endian swap in favour of htobl() - oops... this size field is actually big endian. Since all Barry code assumes that Blackberry protocol traffic is little endian, a special case needs to be added in m_javaloader.cc for this field. The special case uses autoconf's endian define. - fixed long long problem in endian.h (ISO C++ compilers don't support long long) and made the bswap() functions always available - removed unused CommandType and m_commandTable members - fixed exception error messages to indicate command # instead of Desktop message - changed Packet() call to PacketData() when sending file size, since there is no command - added eout() data dump to socket::Packet() unknown send error - fixed my incorrect off_t/size_t check in bjavaloader.cc - removed the '0' JL_UNKNOWN4 command from src/protocol.h, since the PacketData() change above now handles that, and I don't think that byte is actually a command, but really part of the uint32_t size - Also fixed one remaining 0 command, to use PacketData() 2009/01/09 - added AT+CLAC note to contrib/modemtest.rb, recording tidbit from mailing list - updated copyright dates for 2009 2008/12/11 - fixed missing slash in config sample in doc/www/sync.php Thanks to sourceforge tracker #2413683 for reporting 2008/12/01 - added more notes to doc/USB-capture.txt, documenting my kernel setup for capturing USB traffic, and added size-limiting kernel patch - added TODO list item for the Blackberry Storm 2008/11/30 - moved Product ID constants into a single place (src/common.h) and updated bcharge - added Product ID 8007 for the Blackberry Storm... needs testing 2008/11/27 - applied ppp chat script patch for AT&T Cingular from Richard Esplin - added new chat scripts to debian and rpm packages - added known sources of additional Barry binary packages to index.php - turned on call/caller graph support in Doxygen output 2008/11/23 - applied 'patch' of Martin Owens' Content Store documentation - updated AUTHORS 2008/11/22 - large refactoring of all message/email record classes, and more There is now a MessageBase base class, which combines common email record parsing code in one class. This base class is reused by all the specific messages record classes. This commit also includes support for multiple email addresses per email, as well as giving IConverter support to all message classes. - deleted empty *.cc files from project - updated TODO file, removing opensync i18n bug - added TODO item for password support in Opensync... try to avoid storing the password in the sync config in plain text - fixed dll export bug on ErrnoError exception class - added BadPackedFormat exception for internal use - ServiceBook: added IConverter support, and general cleanup Refactored ServiceBook class and added some experimental template functions to generalize the FieldLink table processing. If possible, this needs to be expanded to the general record classes, to reduce the amount of code duplication during processing of FieldLinks and CommonField structures. Also, ServiceBook deals with packed fields, which should also be extrapolated for general use, and reused if possible for the new "Calendar - All" Blackberry databases that are coming out on the new devices and firmare. 2008/11/21 - updated man/btool.1 with new -i option - fixed bug where opensync plugin didn't pass IConverter to Desktop - added IConverter support to r_calendar.cc - renamed utf8Needed to iconvNeeded, for consistency - added IConverter support to r_folder.cc - added IConverter support to r_memo.cc - added IConverter support to r_message.cc - added EmailAddressList, in preparation for multi-address email 2008/11/20 - changed Parser base class to pure abstract... this is so that future API changes to the Parse base class will be detected by the compiler as errors - added NullParser class, which performs the old Parser function - changed all FieldLink arrays to static - added new IConverter class to support converting the Blackberry's WINDOWS-1252 charset to/from UTF-8 and more - fixed bug in IConverter that saved end of string instead of beginning - reorganized barry.h app header and record.h header, so that internal builds have fewer dependencies - large parser/builder API change, adding IConverter support This change starts at the top (Mode::Desktop) which takes an optional IConverter object for parsing and building conversions. The Desktop class passes this IConverter object to Packet, Parser, and Builder (and thereby, the corresponding Record classes) as needed. This adds an extra pointer to a fair number of calls in the stack, but maintains flexibility without putting too much of a burden on Parser writers, which could be application writers. The primary use of this architecture is to pass in an IConverter configured to convert to UTF-8... this is basically the only useful conversion method, but others are possible if you want to play. - first record class to support string conversions: Contact - reverted the barry.h and record.h reorganization, since the gui depends on it - reorganized barry.h and record.h again, making inclusion of the record headers dependent on whether it is a library build or not - updated the gui with the parser/builder API change - added IConverter to opensync plugin, set to UTF-8 2008/11/13 - added comment to src/r_contact.h deprecating the Phone field - updated Doxyfile to 1.5.1 - added Christopher D. Stover to AUTHORS file as Fedora contact 2008/11/03 - forgot #include <string.h> for memcpy/memset in tools/bfuse.cc - moved bfuse install point from /usr/sbin to /usr/bin 2008/11/01 - added FUSE filesystem "driver" 2008/10/31 - commented out the info.subsystem match level in HAL FDI file... this should let the FDI work on old and new systems. HAL version 0.5.8 (used by Debian Etch) has the deprecated info.bus property, and doesn't have info.subsystem yet. - added HAL FDI scripts to rpm/barry.spec - fixed tools/Makefile.plain 2008/10/30 - added support for multiple work/home phone numbers to the opensync plugin. - Thanks to Richard Esplin for his test data. - This fix has a conflict when a cell phone number is marked as the preferred contact as well. See http://sourceforge.net/mailarchive/message.php?msg_name=20081030231045.GA28989%40foursquare.net for the full details. - This fix also changes the VCARD output... pager phone numbers are given the TYPE code of "pager" instead of "msg". - Added OtherPhone field as well 2008/10/22 - applied HAL FDI scripts and configuration from Martin Owens - updated AUTHORS file - added HAL FDI and python script to Debian package install 2008/10/18 - updated copyright notice and help text in contrib/modemtest.rb - changed barry-verizon.chat script according to Andy Herkey's recommendation... this worked much better for Michael L. Stokes, since his provider was getting stuck on the ATZ 2008/10/16 - applied Andy Herkey's modemtest.rb ruby script to contrib/ from his Aug 9, 2008 email to the mailing list - applied Andy Herkey's new modemtest.rb script to contrib/ from his Oct 8, 2008 email to the mailing list - added password pass-through code for pppob -s mode - clarified front page www doc, adding date of last release and license - cherry-picked changes from Jose Carlos Garcia Sogo's debian git repo - debian/rules was stripping wrong library names - FSF address was incorrect (also updated other source files throughout the tree myself) - more complete debian/copyright file 2008/09/24 - version bump: - configure.ac - src/Makefile.am - src/version.cc - gui/src/BackupWindow.cc - Doxyfile - rpm/barry.spec - debian/changelog - opensync-plugin/src/barry_sync.cc - added link to doxygen documentation to www index.php ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Barry-devel mailing list Barry-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/barry-devel