Initial import of gammu-1.24.0. Bluetooth support by plunky.

Gammu is a command line utility and library to work with mobile phones
from many vendors. Support for different models differs, but basic
functions should work with majority of them. The program can work with
contacts, messages (SMS, EMS and MMS), calendar, todos, file system,
integrated radio, camera, etc. It also supports a daemon mode to send
and receive SMS messages.

Gammu includes Python bindings, which allows easy scripting of
desired functionality using core functions.
This commit is contained in:
wiz 2009-05-25 12:50:00 +00:00
parent 941e8c0f29
commit c06b8eea0e
13 changed files with 736 additions and 0 deletions

9
comms/gammu/DESCR Normal file
View file

@ -0,0 +1,9 @@
Gammu is a command line utility and library to work with mobile phones
from many vendors. Support for different models differs, but basic
functions should work with majority of them. The program can work with
contacts, messages (SMS, EMS and MMS), calendar, todos, file system,
integrated radio, camera, etc. It also supports a daemon mode to send
and receive SMS messages.
Gammu includes Python bindings, which allows easy scripting of
desired functionality using core functions.

41
comms/gammu/Makefile Normal file
View file

@ -0,0 +1,41 @@
# $NetBSD: Makefile,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
#
DISTNAME= gammu-1.24.0
CATEGORIES= comms
MASTER_SITES= http://dl.cihar.com/gammu/releases/ \
http://mirror.clickcreations.com/gammu/releases/ \
http://dl.cihar.com.nyud.net/gammu/releases/ \
ftp://dl.cihar.com/gammu/releases/
EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://cihar.com/gammu/
COMMENT= Command line utility and library to work with mobile phones
LICENSE= gnu-gpl-v2
# cmake tests for it; unclear for what it would be used
#BUILD_DEPENDS+= doxygen-[0-9]*:../../devel/doxygen
# for gammu-config
DEPENDS+= dialog-[0-9]*:../../misc/dialog
PKG_DESTDIR_SUPPORT= user-destdir
USE_CMAKE= yes
CMAKE_ARGS+= -DINSTALL_MAN_DIR:STRING=${PKGMANDIR}
USE_LANGUAGES= c c++
USE_TOOLS+= bash:run
REPLACE_BASH= utils/gammu-config utils/jadmaker
PY_PATCHPLIST= yes
# needed because of https://bugs.cihar.com/view.php?id=908
BUILDLINK_TRANSFORM+= rm:-Werror
#-- MySQL not found.
#-- Could not find PostgreSQL
#-- libdbi not found.
.include "../../lang/python/extension.mk"
.include "../../devel/libusb/buildlink3.mk"
.include "../../www/curl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

193
comms/gammu/PLIST Normal file
View file

@ -0,0 +1,193 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
bin/gammu
bin/gammu-config
bin/gammu-smsd
bin/gammu-smsd-inject
bin/gammu-smsd-monitor
bin/jadmaker
include/gammu/gammu-backup.h
include/gammu/gammu-bitmap.h
include/gammu/gammu-calendar.h
include/gammu/gammu-call.h
include/gammu/gammu-callback.h
include/gammu/gammu-category.h
include/gammu/gammu-config.h
include/gammu/gammu-datetime.h
include/gammu/gammu-debug.h
include/gammu/gammu-error.h
include/gammu/gammu-file.h
include/gammu/gammu-info.h
include/gammu/gammu-inifile.h
include/gammu/gammu-keys.h
include/gammu/gammu-limits.h
include/gammu/gammu-memory.h
include/gammu/gammu-message.h
include/gammu/gammu-misc.h
include/gammu/gammu-nokia.h
include/gammu/gammu-ringtone.h
include/gammu/gammu-security.h
include/gammu/gammu-settings.h
include/gammu/gammu-smsd.h
include/gammu/gammu-statemachine.h
include/gammu/gammu-types.h
include/gammu/gammu-unicode.h
include/gammu/gammu-wap.h
include/gammu/gammu.h
lib/libGammu.a
lib/libgsmsd.a
lib/pkgconfig/gammu-smsd.pc
lib/pkgconfig/gammu.pc
${PYSITELIB}/gammu/Data.py
${PYSITELIB}/gammu/Worker.py
${PYSITELIB}/gammu/__init__.py
${PYSITELIB}/gammu/_gammu.so
man/cs/man1/gammu-config.1
man/cs/man1/gammu-smsd-inject.1
man/cs/man1/gammu-smsd-monitor.1
man/cs/man1/gammu-smsd.1
man/cs/man1/gammu.1
man/cs/man1/jadmaker.1
man/cs/man5/gammu-smsdrc.5
man/cs/man5/gammurc.5
man/cs/man7/gammu-smsd-dbi.7
man/cs/man7/gammu-smsd-files.7
man/cs/man7/gammu-smsd-mysql.7
man/cs/man7/gammu-smsd-pgsql.7
man/cs/man7/gammu-smsd-tables.7
man/man1/gammu-config.1
man/man1/gammu-smsd-inject.1
man/man1/gammu-smsd-monitor.1
man/man1/gammu-smsd.1
man/man1/gammu.1
man/man1/jadmaker.1
man/man5/gammu-smsdrc.5
man/man5/gammurc.5
man/man7/gammu-smsd-dbi.7
man/man7/gammu-smsd-files.7
man/man7/gammu-smsd-mysql.7
man/man7/gammu-smsd-pgsql.7
man/man7/gammu-smsd-tables.7
share/doc/gammu/COPYING
share/doc/gammu/ChangeLog
share/doc/gammu/README
share/doc/gammu/SUPPORTERS
share/doc/gammu/devel/Gammu.htm
share/doc/gammu/devel/PORTING
share/doc/gammu/devel/develop.txt
share/doc/gammu/devel/examples/Makefile
share/doc/gammu/devel/examples/phone-info.c
share/doc/gammu/devel/examples/sms-send.c
share/doc/gammu/devel/gammu_hints.txt
share/doc/gammu/devel/protocol/TDMA_5120.txt
share/doc/gammu/devel/protocol/carkit.txt
share/doc/gammu/devel/protocol/n6110.txt
share/doc/gammu/devel/protocol/n6510.txt
share/doc/gammu/devel/protocol/n7110.txt
share/doc/gammu/devel/protocol/nokia.txt
share/doc/gammu/devel/protocol/readme
share/doc/gammu/devel/sms/charset.txt
share/doc/gammu/devel/sms/convert.txt
share/doc/gammu/devel/sms/readme
share/doc/gammu/devel/sounds/readme
share/doc/gammu/devel/sounds/ring2.txt
share/doc/gammu/examples/config/gammurc
share/doc/gammu/examples/config/smsdrc
share/doc/gammu/examples/media/aliens.nlm
share/doc/gammu/examples/media/axelf.txt
share/doc/gammu/examples/php/class_gammu/README
share/doc/gammu/examples/php/class_gammu/class.gammu_nix_win32_v2.php
share/doc/gammu/examples/php/class_gammu/class.sms.gammu.php
share/doc/gammu/examples/php/class_gammu/example_gammu_text.php
share/doc/gammu/examples/php/smsd-mysql-admin/admin.php
share/doc/gammu/examples/php/smsd-mysql-intergammu/config.php
share/doc/gammu/examples/php/smsd-mysql-intergammu/funcoes/func.gammu.php
share/doc/gammu/examples/php/smsd-mysql-intergammu/funcoes/func.sql.php
share/doc/gammu/examples/php/smsd-mysql-intergammu/index.php
share/doc/gammu/examples/php/smsd-mysql-intergammu/intergammu.txt
share/doc/gammu/examples/php/smsd-mysql-intergammu/proc/admin.php
share/doc/gammu/examples/php/smsd-mysql-intergammu/proclast.sql
share/doc/gammu/examples/php/smsd-mysql-linked/linked.php
share/doc/gammu/examples/php/smsd-mysql-linked/linked.sql
share/doc/gammu/examples/php/smsd-mysql-list/sms.php
share/doc/gammu/examples/sql/mysql.sql
share/doc/gammu/examples/sql/pgsql.sql
share/doc/gammu/examples/sql/sqlite.sql
share/doc/gammu/gammu.html
share/doc/gammu/gammu.it.txt
share/doc/gammu/readme.html
share/doc/gammu/readme.it.txt
share/doc/gammu/replace.txt
share/doc/gammu/symbian/gnapplet.ini
share/doc/gammu/symbian/gnapplet.sis
share/doc/gammu/symbian/readme.txt
share/locale/af/LC_MESSAGES/gammu.mo
share/locale/af/LC_MESSAGES/libgammu.mo
share/locale/bg/LC_MESSAGES/gammu.mo
share/locale/bg/LC_MESSAGES/libgammu.mo
share/locale/ca/LC_MESSAGES/gammu.mo
share/locale/ca/LC_MESSAGES/libgammu.mo
share/locale/cs/LC_MESSAGES/gammu.mo
share/locale/cs/LC_MESSAGES/libgammu.mo
share/locale/da/LC_MESSAGES/gammu.mo
share/locale/da/LC_MESSAGES/libgammu.mo
share/locale/de/LC_MESSAGES/gammu.mo
share/locale/de/LC_MESSAGES/libgammu.mo
share/locale/el/LC_MESSAGES/gammu.mo
share/locale/el/LC_MESSAGES/libgammu.mo
share/locale/es/LC_MESSAGES/gammu.mo
share/locale/es/LC_MESSAGES/libgammu.mo
share/locale/et/LC_MESSAGES/gammu.mo
share/locale/et/LC_MESSAGES/libgammu.mo
share/locale/fi/LC_MESSAGES/gammu.mo
share/locale/fi/LC_MESSAGES/libgammu.mo
share/locale/fr/LC_MESSAGES/gammu.mo
share/locale/fr/LC_MESSAGES/libgammu.mo
share/locale/gl/LC_MESSAGES/gammu.mo
share/locale/gl/LC_MESSAGES/libgammu.mo
share/locale/he/LC_MESSAGES/gammu.mo
share/locale/he/LC_MESSAGES/libgammu.mo
share/locale/hu/LC_MESSAGES/gammu.mo
share/locale/hu/LC_MESSAGES/libgammu.mo
share/locale/id/LC_MESSAGES/gammu.mo
share/locale/id/LC_MESSAGES/libgammu.mo
share/locale/it/LC_MESSAGES/gammu.mo
share/locale/it/LC_MESSAGES/libgammu.mo
share/locale/ko/LC_MESSAGES/gammu.mo
share/locale/ko/LC_MESSAGES/libgammu.mo
share/locale/nl/LC_MESSAGES/gammu.mo
share/locale/nl/LC_MESSAGES/libgammu.mo
share/locale/pl/LC_MESSAGES/gammu.mo
share/locale/pl/LC_MESSAGES/libgammu.mo
share/locale/pt_BR/LC_MESSAGES/gammu.mo
share/locale/pt_BR/LC_MESSAGES/libgammu.mo
share/locale/ru/LC_MESSAGES/gammu.mo
share/locale/ru/LC_MESSAGES/libgammu.mo
share/locale/sk/LC_MESSAGES/gammu.mo
share/locale/sk/LC_MESSAGES/libgammu.mo
share/locale/sv/LC_MESSAGES/gammu.mo
share/locale/sv/LC_MESSAGES/libgammu.mo
share/locale/zh_CN/LC_MESSAGES/gammu.mo
share/locale/zh_CN/LC_MESSAGES/libgammu.mo
share/locale/zh_TW/LC_MESSAGES/gammu.mo
share/locale/zh_TW/LC_MESSAGES/libgammu.mo
@dirrm share/doc/gammu/symbian
@dirrm share/doc/gammu/examples/sql
@dirrm share/doc/gammu/examples/php/smsd-mysql-list
@dirrm share/doc/gammu/examples/php/smsd-mysql-linked
@dirrm share/doc/gammu/examples/php/smsd-mysql-intergammu/proc
@dirrm share/doc/gammu/examples/php/smsd-mysql-intergammu/funcoes
@dirrm share/doc/gammu/examples/php/smsd-mysql-intergammu
@dirrm share/doc/gammu/examples/php/smsd-mysql-admin
@dirrm share/doc/gammu/examples/php/class_gammu
@dirrm share/doc/gammu/examples/php
@dirrm share/doc/gammu/examples/media
@dirrm share/doc/gammu/examples/config
@dirrm share/doc/gammu/examples
@dirrm share/doc/gammu/devel/sounds
@dirrm share/doc/gammu/devel/sms
@dirrm share/doc/gammu/devel/protocol
@dirrm share/doc/gammu/devel/examples
@dirrm share/doc/gammu/devel
@dirrm share/doc/gammu
@dirrm ${PYSITELIB}/gammu
@dirrm include/gammu

14
comms/gammu/distinfo Normal file
View file

@ -0,0 +1,14 @@
$NetBSD: distinfo,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
SHA1 (gammu-1.24.0.tar.bz2) = 9c4fc7474c33d3a40e6bf5a2efb7acbbf9b62dc5
RMD160 (gammu-1.24.0.tar.bz2) = d525fa09dbcdba87cde6730edc5b55f0f412bd31
Size (gammu-1.24.0.tar.bz2) = 1817681 bytes
SHA1 (patch-aa) = 9e573f48c957152c7893ef05fcabad7ffa581ea0
SHA1 (patch-ab) = 5ae2725551a1137d2b1306189ede0d52fad3ae5c
SHA1 (patch-ac) = 5fb372f9a1c7f47773c3434daf1e059672d8de24
SHA1 (patch-ad) = dd01c97c6a660b096a61690376a8159fd7850bbb
SHA1 (patch-ae) = ce77e07f7de9d0efaa5d68e6a97fd4815626925d
SHA1 (patch-af) = 28f77b55e463474f9796ce3f257c785a9755456b
SHA1 (patch-ag) = 6849e39901f08ff402d9a43363c799cae3c6f44e
SHA1 (patch-ai) = 1d3be730d1db223f5a1698e50ecb06ae7e4eec3e
SHA1 (patch-aj) = db99dc9026ae8c70cf68e353f8fbd6ef8e4d20a7

View file

@ -0,0 +1,44 @@
$NetBSD: patch-aa,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
use "BSD" not "FreeBSD" for Bluetooth support.
We add a check for the sdp_open() in libbluetooth as this is indicative
of the capability to use the new service discovery API.
--- CMakeLists.txt.orig 2009-04-15 14:39:54.000000000 +0100
+++ CMakeLists.txt 2009-05-22 09:46:03.000000000 +0100
@@ -270,12 +271,12 @@
set(BLUETOOTH_SEARCH TRUE)
message(STATUS "Using BlueZ stack")
endif (BLUEZ_FOUND)
- find_package (FBSDBluetooth)
- if (FBSD_BLUE_FOUND)
+ find_package (BSDBluetooth)
+ if (BSD_BLUE_FOUND)
set(BLUETOOTH_FOUND ON)
- set(BLUETOOTH_SEARCH FALSE)
- message(STATUS "Using FreeBSD Bluetooth stack")
- endif (FBSD_BLUE_FOUND)
+ check_library_exists(bluetooth sdp_open "" BLUETOOTH_SEARCH)
+ message(STATUS "Using BSD Bluetooth stack")
+ endif (BSD_BLUE_FOUND)
find_package (OSXBluetooth)
if (OSX_BLUE_FOUND)
set(BLUETOOTH_FOUND ON)
@@ -360,11 +361,11 @@
endif (NOT "${BLUEZ_LIBRARIES}" STREQUAL "")
endif (BLUEZ_FOUND)
-if (FBSD_BLUE_FOUND)
- if (NOT "${FBSD_BLUE_LIBRARIES}" STREQUAL "")
- set (GAMMU_LIBS "${GAMMU_LIBS} -l${FBSD_BLUE_LIBRARIES}")
- endif (NOT "${FBSD_BLUE_LIBRARIES}" STREQUAL "")
-endif (FBSD_BLUE_FOUND)
+if (BSD_BLUE_FOUND)
+ if (NOT "${BSD_BLUE_LIBRARIES}" STREQUAL "")
+ set (GAMMU_LIBS "${GAMMU_LIBS} -l${BSD_BLUE_LIBRARIES}")
+ endif (NOT "${BSD_BLUE_LIBRARIES}" STREQUAL "")
+endif (BSD_BLUE_FOUND)
if (ICONV_FOUND)
if (NOT "${ICONV_LIBRARIES}" STREQUAL "")

View file

@ -0,0 +1,42 @@
$NetBSD: patch-ab,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
use "BSD" not "FreeBSD" for Bluetooth support.
--- /dev/null 1970-01-01 01:00:00.000000000 +0100
+++ cmake/FindBSDBluetooth.cmake 2009-05-22 09:48:26.000000000 +0100
@@ -0,0 +1,35 @@
+# - Finds Bluetooth library on BSD
+# This module defines
+# BSD_BLUE_INCLUDE_DIR, where to find bluetooth.h
+# BSD_BLUE_LIBRARIES, the libraries needed to use BSD Bluetooth.
+# BSD_BLUE_FOUND, If false, do not try to use BSD Bluetooth.
+#
+# Copyright (c) 2007, Michal Cihar, <michal@cihar.com>
+#
+# vim: expandtab sw=4 ts=4 sts=4:
+
+if (NOT DEFINED BSD_BLUE_FOUND)
+ if (NOT CROSS_MINGW)
+ find_path(BSD_BLUE_INCLUDE_DIR NAMES bluetooth.h
+ PATHS
+ /usr/include
+ /usr/local/include
+ )
+
+ find_library(BSD_BLUE_LIBRARIES NAMES bluetooth
+ PATHS
+ /usr/lib
+ /usr/local/lib
+ )
+
+ if(BSD_BLUE_INCLUDE_DIR AND BSD_BLUE_LIBRARIES)
+ set(BSD_BLUE_FOUND TRUE CACHE INTERNAL "BSD Bluetooth found")
+ message(STATUS "Found BSD Bluetooth: ${BSD_BLUE_INCLUDE_DIR}, ${BSD_BLUE_LIBRARIES}")
+ else(BSD_BLUE_INCLUDE_DIR AND BSD_BLUE_LIBRARIES)
+ set(BSD_BLUE_FOUND FALSE CACHE INTERNAL "BSD Bluetooth found")
+ message(STATUS "BSD Bluetooth not found.")
+ endif(BSD_BLUE_INCLUDE_DIR AND BSD_BLUE_LIBRARIES)
+
+ mark_as_advanced(BSD_BLUE_INCLUDE_DIR BSD_BLUE_LIBRARIES)
+ endif (NOT CROSS_MINGW)
+endif (NOT DEFINED BSD_BLUE_FOUND)

View file

@ -0,0 +1,17 @@
$NetBSD: patch-ac,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
use "BSD" not "FreeBSD" for Bluetooth support.
--- cmake/templates/gammu-config.h.cmake.orig 2009-03-17 15:01:11.000000000 +0000
+++ cmake/templates/gammu-config.h.cmake 2009-05-22 09:49:28.000000000 +0100
@@ -322,8 +322,8 @@
/* Do we have libusb-1.0 ? */
#cmakedefine LIBUSB_FOUND
-/* Will be used FreeBSD Bluetooth stack ? */
-#cmakedefine FBSD_BLUE_FOUND
+/* Will be used BSD Bluetooth stack ? */
+#cmakedefine BSD_BLUE_FOUND
/* Will be used OSX Bluetooth stack ? */
#cmakedefine OSX_BLUE_FOUND

View file

@ -0,0 +1,34 @@
$NetBSD: patch-ad,v 1.1.1.1 2009/05/25 12:50:01 wiz Exp $
use "BSD" not "FreeBSD" for Bluetooth support.
--- libgammu/CMakeLists.txt.orig 2009-03-18 09:16:38.000000000 +0000
+++ libgammu/CMakeLists.txt 2009-05-22 09:46:23.000000000 +0100
@@ -76,9 +76,9 @@
if (LIBUSB_FOUND)
list (APPEND LIBRARY_SRC device/usb/usb.c)
endif (LIBUSB_FOUND)
-if (FBSD_BLUE_FOUND)
- list (APPEND LIBRARY_SRC device/bluetoth/blue_fbsd.c)
-endif (FBSD_BLUE_FOUND)
+if (BSD_BLUE_FOUND)
+ list (APPEND LIBRARY_SRC device/bluetoth/blue_bsd.c)
+endif (BSD_BLUE_FOUND)
if (OSX_BLUE_FOUND)
list (APPEND LIBRARY_SRC device/bluetoth/blue_osx.c)
endif (OSX_BLUE_FOUND)
@@ -126,10 +126,10 @@
include_directories (${LIBUSB_INCLUDE_DIR})
endif (LIBUSB_FOUND)
-if (FBSD_BLUE_FOUND)
- target_link_libraries (libGammu ${FBSD_BLUE_LIBRARIES})
- include_directories (${FBSD_BLUE_INCLUDE_DIR})
-endif (FBSD_BLUE_FOUND)
+if (BSD_BLUE_FOUND)
+ target_link_libraries (libGammu ${BSD_BLUE_LIBRARIES})
+ include_directories (${BSD_BLUE_INCLUDE_DIR})
+endif (BSD_BLUE_FOUND)
if (OSX_BLUE_FOUND)
target_link_libraries (libGammu ${OSX_BLUE_LIBS})

View file

@ -0,0 +1,259 @@
$NetBSD: patch-ae,v 1.1.1.1 2009/05/25 12:50:01 wiz Exp $
Replace "FreeBSD" Bluetooth support with "BSD".
This should cover NetBSD, FreeBSD, OpenBSD and DragonflyBSD at least.
The BLUETOOTH_RF_SEARCHING option will only work on systems that have
the later Service Discovery API in libbluetooth.
--- /dev/null 1970-01-01 01:00:00.000000000 +0100
+++ libgammu/device/bluetoth/blue_bsd.c 2009-05-22 09:43:12.000000000 +0100
@@ -0,0 +1,248 @@
+/*-
+ * Copyright (c) 2009 Iain Hibbert
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "../../gsmstate.h"
+
+#ifdef GSM_ENABLE_BLUETOOTHDEVICE
+#ifdef BSD_BLUE_FOUND
+
+#include <sys/socket.h>
+#include <sys/time.h>
+
+#include <bluetooth.h>
+#include <errno.h>
+#include <netdb.h>
+#include <sdp.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "../../gsmcomon.h"
+#include "../devfunc.h"
+#include "bluetoth.h"
+
+/*
+ * Handle FreeBSD compatibility
+ */
+#ifndef BTPROTO_RFCOMM
+#define BTPROTO_RFCOMM BLUETOOTH_PROTO_RFCOMM
+#define BDADDR_ANY NG_HCI_BDADDR_ANY
+#define sockaddr_bt sockaddr_rfcomm
+#define bt_len rfcomm_len
+#define bt_family rfcomm_family
+#define bt_channel rfcomm_channel
+#define bt_bdaddr rfcomm_bdaddr
+#endif
+
+static GSM_Error bluetooth_open(GSM_StateMachine *s, bdaddr_t *bdaddr, int channel)
+{
+ GSM_Device_BlueToothData *d = &s->Device.Data.BlueTooth;
+ struct sockaddr_bt sa;
+ int fd;
+
+ memset(&sa, 0, sizeof(sa));
+ sa.bt_len = sizeof(sa);
+ sa.bt_family = AF_BLUETOOTH;
+
+ smprintf(s, "Connecting to RF channel %i\n", channel);
+
+ fd = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
+ if (fd < 0) {
+ smprintf(s, "Can't create socket\n");
+ return ERR_DEVICENODRIVER;
+ }
+
+ bdaddr_copy(&sa.bt_bdaddr, BDADDR_ANY);
+
+ if (bind(fd, (struct sockaddr *)&sa, sizeof(sa)) < 0) {
+ smprintf(s, "Can't bind socket: %s\n", strerror(errno));
+ close(fd);
+ return ERR_DEVICEOPENERROR;
+ }
+
+ sa.bt_channel = channel;
+ bdaddr_copy(&sa.bt_bdaddr, bdaddr);
+
+ if (connect(fd, (struct sockaddr *)&sa, sizeof(sa)) < 0) {
+ smprintf(s, "Can't connect to %s: %s\n", bt_ntoa(bdaddr, NULL), strerror(errno));
+ close(fd);
+ return ERR_DEVICEOPENERROR;
+ }
+
+ d->hPhone = fd;
+ return ERR_NONE;
+}
+
+GSM_Error bluetooth_connect(GSM_StateMachine *s, int port, char *device)
+{
+ bdaddr_t bdaddr;
+ struct hostent *he = NULL;
+
+ if (!bt_aton(device, &bdaddr)) {
+ if ((he = bt_gethostbyname(device)) == NULL) {
+ smprintf(s, "%s: %s\n", device, hstrerror(h_errno));
+ return ERR_UNKNOWN;
+ }
+
+ bdaddr_copy(&bdaddr, (bdaddr_t *)he->h_addr);
+ }
+
+ return bluetooth_open(s, &bdaddr, port);
+}
+
+#ifdef BLUETOOTH_RF_SEARCHING
+
+static int bluetooth_channel(sdp_data_t *value)
+{
+ sdp_data_t pdl, seq;
+ uintmax_t channel;
+
+ sdp_get_alt(value, value); /* strip any alt container */
+
+ while (sdp_get_seq(value, &pdl)) {
+ if (sdp_get_seq(&pdl, &seq)
+ && sdp_match_uuid16(&seq, SDP_UUID_PROTOCOL_L2CAP)
+ && sdp_get_seq(&pdl, &seq)
+ && sdp_match_uuid16(&seq, SDP_UUID_PROTOCOL_RFCOMM)
+ && sdp_get_uint(&seq, &channel)
+ && channel >= 1 && channel <= 30)
+ return channel;
+ }
+
+ return -1;
+}
+
+static char *bluetooth_service(sdp_data_t *value)
+{
+ char *str;
+ size_t len;
+
+ if (!sdp_get_str(value, &str, &len))
+ return NULL;
+
+ return strndup(str, len);
+}
+
+static GSM_Error bluetooth_search(GSM_StateMachine *s, bdaddr_t *bdaddr)
+{
+ sdp_data_t rec, rsp, ssp, value;
+ uint8_t buf[3];
+ uint16_t attr;
+ sdp_session_t ss;
+ int ch, channel, sc, score;
+ char *sv;
+
+ ss = sdp_open(NULL, bdaddr);
+ if (ss == NULL) {
+ smprintf(s, "SDP Connection failed: %s\n", strerror(errno));
+ return ERR_TIMEOUT;
+ }
+
+ ssp.next = buf;
+ ssp.end = buf + sizeof(buf);
+ sdp_put_uuid16(&ssp, SDP_UUID_PROTOCOL_RFCOMM);
+ ssp.end = ssp.next;
+ ssp.next = buf;
+
+ if (!sdp_service_search_attribute(ss, &ssp, NULL, &rsp)) {
+ smprintf(s, "SDP Service Search Attribute failed: %s\n", strerror(errno));
+ sdp_close(ss);
+ return ERR_UNKNOWN;
+ }
+
+ channel = -1;
+ score = 0;
+
+ while (sdp_get_seq(&rsp, &rec)) {
+ ch = -1;
+ sv = NULL;
+
+ while (sdp_get_attr(&rec, &attr, &value)) {
+ switch (attr) {
+ case SDP_ATTR_PROTOCOL_DESCRIPTOR_LIST:
+ ch = bluetooth_channel(&value);
+ break;
+
+ case SDP_ATTR_PRIMARY_LANGUAGE_BASE_ID + SDP_ATTR_SERVICE_NAME_OFFSET:
+ sv = bluetooth_service(&value);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ if (ch != -1) {
+ smprintf(s, " Channel %i", ch);
+ if (sv != NULL) {
+ sc = bluetooth_checkservicename(s, sv);
+ smprintf(s, " - \"%s\" (score=%d)", sv, sc);
+ if (sc > score) {
+ score = sc;
+ channel = ch;
+ }
+ }
+ smprintf(s, "\n");
+ }
+
+ free(sv);
+ }
+
+ sdp_close(ss);
+
+ if (channel == -1) {
+ smprintf(s, "No suitable service found!\n");
+ return ERR_NOTSUPPORTED;
+ }
+
+ return bluetooth_open(s, bdaddr, channel);
+}
+
+GSM_Error bluetooth_findchannel(GSM_StateMachine *s)
+{
+ char *device = s->CurrentConfig->Device;
+ bdaddr_t bdaddr;
+ struct hostent *he = NULL;
+
+ if (!bt_aton(device, &bdaddr)) {
+ if ((he = bt_gethostbyname(device)) == NULL) {
+ smprintf(s, "%s: %s\n", device, hstrerror(h_errno));
+ return ERR_UNKNOWN;
+ }
+
+ bdaddr_copy(&bdaddr, (bdaddr_t *)he->h_addr);
+ }
+
+ return bluetooth_search(s, &bdaddr);
+}
+
+#endif
+#endif
+#endif
+
+/* How should editor hadle tabs in this file? Add editor commands here.
+ * vim: noexpandtab sw=8 ts=8 sts=8:
+ */

View file

@ -0,0 +1,8 @@
$NetBSD: patch-af,v 1.1.1.1 2009/05/25 12:50:01 wiz Exp $
use "BSD" instead of "FreeBSD" for Bluetooth support.
--- /dev/null 1970-01-01 01:00:00.000000000 +0100
+++ libgammu/device/bluetoth/blue_bsd.h 2009-05-22 09:43:12.000000000 +0100
@@ -0,0 +1,1 @@
+ /* empty file */

View file

@ -0,0 +1,17 @@
$NetBSD: patch-ag,v 1.1.1.1 2009/05/25 12:50:01 wiz Exp $
use "BSD" instead of "FreeBSD" for Bluetooth support.
--- libgammu/device/bluetoth/bluetoth.c.orig 2009-02-12 14:19:01.000000000 +0000
+++ libgammu/device/bluetoth/bluetoth.c 2009-05-22 09:44:29.000000000 +0100
@@ -21,8 +21,8 @@
#ifdef BLUEZ_FOUND
# include "bluez.h"
#endif
-#ifdef FBSD_BLUE_FOUND
-# include "blue_fbsd.h"
+#ifdef BSD_BLUE_FOUND
+# include "blue_bsd.h"
#endif
#ifdef OSX_BLUE_FOUND
# include "blue_osx.h"

View file

@ -0,0 +1,14 @@
$NetBSD: patch-ai,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
https://bugs.cihar.com/view.php?id=909
--- cmake/GammuTuneFlags.cmake.orig 2009-05-22 09:57:08.000000000 +0000
+++ cmake/GammuTuneFlags.cmake
@@ -0,0 +1,7 @@
+macro (GAMMU_TUNE_SHARED _target)
+ if(CMAKE_COMPILER_IS_GNUCC AND NOT (CMAKE_COMPILER_IS_MINGW OR
+ CMAKE_COMPILER_IS_CYGWIN OR CMAKE_COMPILER_IS_GNUCXX))
+ set_target_properties (${_target} PROPERTIES COMPILE_FLAGS -fPIC)
+ endif(CMAKE_COMPILER_IS_GNUCC AND NOT (CMAKE_COMPILER_IS_MINGW OR
+ CMAKE_COMPILER_IS_CYGWIN OR CMAKE_COMPILER_IS_GNUCXX))
+endmacro (GAMMU_TUNE_SHARED)

View file

@ -0,0 +1,44 @@
$NetBSD: patch-aj,v 1.1.1.1 2009/05/25 12:50:00 wiz Exp $
https://bugs.cihar.com/view.php?id=909
--- helper/CMakeLists.txt.orig 2009-02-12 14:05:40.000000000 +0000
+++ helper/CMakeLists.txt
@@ -5,24 +5,30 @@
project (gammu-helper C)
include(GammuTuneCompiler)
+include(GammuTuneFlags)
include_directories (
"${Gammu_BINARY_DIR}/include"
)
add_library(string STATIC string.c)
+GAMMU_TUNE_SHARED(string)
add_library (printing STATIC printing.c)
+GAMMU_TUNE_SHARED(printing)
add_library (memorydisplay STATIC memory-display.c)
+GAMMU_TUNE_SHARED(memorydisplay)
target_link_libraries (memorydisplay libGammu)
add_library (messagecmdline STATIC message-cmdline.c)
+GAMMU_TUNE_SHARED(messagecmdline)
target_link_libraries (messagecmdline libGammu)
target_link_libraries (messagecmdline printing)
target_link_libraries (messagecmdline string)
add_library (messagedisplay STATIC message-display.c)
+GAMMU_TUNE_SHARED(messagedisplay)
target_link_libraries (messagedisplay libGammu)
target_link_libraries (messagedisplay memorydisplay)
@@ -39,5 +45,6 @@ endif(WIN32 AND NOT CMAKE_COMPILER_IS_MI
if (NOT HAVE_STRPTIME)
add_library(strptime STATIC strptime.c)
+ GAMMU_TUNE_SHARED(strptime)
target_link_libraries (strptime string)
endif (NOT HAVE_STRPTIME)