avetanaBluetooth in a JSR-82 implementation for Desktop PCs running Windows, Linux or MacOS X. While Windows and MacOS X versions come with commercial license only, Linux implementation is distribuited under GPL license and can be download for free from sourceforge repository. You have to compile by yourself avetanaBluetooth on your Linux box.
Documentation related to Avetana refers to libbluetooth (libbluetooth1) as the native library needed to compile JNI part of the JSR-82 library. However, Ubuntu 6.10 comes with new libbluetooth2 library. All distribution-related packaged have been migrated to the new library, but some 3rd party software still refer to the old library. Avetana Bluetooth is one of these. Compiler stops with an error caused by missing symbol “sdp_cstate_t”. Looking at source code of libbluetooth2, I’ve found that “sdp_cstate_t” is never defined in header files included by Avetana source code nor it is present in any other header file provided by libbluetooth; that’s why that struct is missing! It has been included (moved?) in the “sdp.c” implementation file.
To get avetanaBluetooth compiled (and running!), I’ve just copied the source fragment:
typedef struct {
uint8_t length;
unsigned char data[16];
} __attribute__ ((packed)) sdp_cstate_t;
in structs declaration of BlueZ.cpp source file (located in the “c” directory of the distribution package) and the Avetana Bluetooth stack compiles without any problem. The system configuration was: Ubuntu Linux 6.10 with kernel 2.6.17, gcc 4.1, g++ 4.1, jdk 1.6.0. Enjoy JSR-82 on your newest Linux box!