Gammu is a tool for cell phone/modem control, including send/receive SMS, phone directory and other. Signed-off-by: Vitaly Protsko <villy@sft.ru> --- Makefile | 68 +++++++++++++++++++++++++++++++ files/gammurc | 37 ++++++++++++++++ patches/001-iconv-disabling-option.patch | 51 +++++++++++++++++++++++ patches/002-no-fstack-protector.patch | 11 +++++ patches/003-cmake-cross-toolchain.patch | 43 +++++++++++++++++++ patches/010-utils-shell-fix.patch | 16 +++++++ 6 files changed, 226 insertions(+)lilik-openwrt-22.03
@ -0,0 +1,68 @@ | |||||
# | |||||
# Copyright (C) 2006-2014 OpenWrt.org | |||||
# | |||||
# This is free software, licensed under the GNU General Public License v2. | |||||
# See /LICENSE for more information. | |||||
# | |||||
include $(TOPDIR)/rules.mk | |||||
PKG_NAME:=gammu | |||||
PKG_VERSION:=1.33.0 | |||||
PKG_RELEASE:=1 | |||||
PKG_SOURCE_URL:=http://dl.cihar.com/gammu/releases/ | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | |||||
PKG_MD5SUM:=66b95afbde3085168c4a20266e8cb5c0 | |||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) | |||||
PKG_MAINTAINER:=Vitaly Protsko <villy@sft.ru> | |||||
PKG_LICENCE:=GPL-2.0 | |||||
include $(INCLUDE_DIR)/package.mk | |||||
include $(INCLUDE_DIR)/nls.mk | |||||
define Package/gammu | |||||
SECTION:=utils | |||||
CATEGORY:=Utilities | |||||
TITLE:=Cell phone/modem SMS and control tool | |||||
URL:=http://dl.cihar.com/gammu/releases/ | |||||
DEPENDS:=@BUILD_NLS +libpthread +libcurl +glib2 $(ICONV_DEPENDS) $(INTL_DEPENDS) | |||||
DEPENDS+=+PACKAGE_python:python +PACKAGE_bluez-libs:bluez-libs | |||||
DEPENDS+=+PACKAGE_libmysqlclient:libmysqlclient +PACKAGE_unixodbc:unixodbc | |||||
endef | |||||
CONFIGURE_ARGS:= \ | |||||
--prefix=/usr \ | |||||
--cross-root="$(STAGING_DIR) $(TOOLCHAIN_DIR)" \ | |||||
--enable-shared | |||||
define Build/Compile | |||||
$(MAKE) -C $(PKG_BUILD_DIR) \ | |||||
$(TARGET_CONFIGURE_OPTS) \ | |||||
LDSHARED="$(TARGET_CROSS)ld -shared" \ | |||||
CFLAGS="$(TARGET_CFLAGS) $(FPIC)" | |||||
endef | |||||
define Build/Install | |||||
$(MAKE) -C $(PKG_BUILD_DIR) \ | |||||
DESTDIR="$(PKG_INSTALL_DIR)" \ | |||||
install | |||||
endef | |||||
define Build/InstallDev | |||||
mkdir -p $(1)/usr/include | |||||
$(CP) -r $(PKG_INSTALL_DIR)/usr/include/gammu $(1)/usr/include/ | |||||
mkdir -p $(1)/usr/lib | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{Gammu*,gsmsd*} $(1)/usr/lib/ | |||||
endef | |||||
define Package/gammu/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gammu $(1)/usr/bin | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gammu-{smsd,smsd-inject,smsd-monitor} $(1)/usr/bin | |||||
$(INSTALL_DIR) $(1)/usr/lib | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/lib{Gammu*,gsmsd*} $(1)/usr/lib | |||||
$(INSTALL_BIN) ./files/gammurc $(1)/etc | |||||
endef | |||||
$(eval $(call BuildPackage,gammu)) |
@ -0,0 +1,37 @@ | |||||
# Port : "/dev/ttyS%" or "/dev/ircomm%" ("irda" connection), "/dev/ttyUSB%" | |||||
# (instead of "%" please put "0", "1", "2", etc.) | |||||
# Model : use only, when Gammu doesn't recognize your phone model. | |||||
# Put it here. Example values: "6110", "6150", "6210", "8210" | |||||
# Connection : type of connection. Use "fbus" or "mbus" or "dlr3" or | |||||
# "irda" (Infrared over sockets) or "infrared" (DirectIR) | |||||
# or "at19200" (AT commands on 19200, 8 bits, None parity, | |||||
# 1 stop bit, no flow control) or "at115200" (AT commands on | |||||
# 115200, 8 bits, None parity, 1 stop bit, no flow control) | |||||
# or "atblue" (AT over BlueTooth) or "dlr3blue" (FBUS | |||||
# over BlueTooth) | |||||
# SynchronizeTime: If you want to set time from computer to phone during | |||||
# starting connection. Do not rather use this option when want | |||||
# to reset phone during connection (in some phones need to | |||||
# set time again after restart) | |||||
# Logfile : Use, when want to have logfile from communication. | |||||
# Logformat : What debug info and format should be used: | |||||
# "nothing" - no debug level, "text" - transmission dump in | |||||
# text format, "textall" - all possible info in text format, | |||||
# "errors" - errors in text format, "binary" - transmission | |||||
# dump in binary format | |||||
# Use_Locking : under Unix/Linux use "yes", if want to lock used device | |||||
# to prevent using it by other applications | |||||
# GammuLoc : name of localisation file | |||||
[gammu] | |||||
port = /dev/ttyUSB0 | |||||
#model = | |||||
connection = at | |||||
#synchronizetime = yes | |||||
#logfile = | |||||
#logformat = errors | |||||
use_locking = yes | |||||
#gammuloc = | |||||
# EOF /etc/gammurc |
@ -0,0 +1,51 @@ | |||||
--- a/cmake/FindIconv.cmake | |||||
+++ b/cmake/FindIconv.cmake | |||||
@@ -34,9 +34,9 @@ string(REGEX REPLACE "(.*)/include/?" "\ | |||||
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv c HINTS "${ICONV_INCLUDE_BASE_DIR}/lib" PATHS /opt/local/lib) | |||||
-IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) | |||||
+IF(NOT DISABLE_ICONV AND ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) | |||||
SET(ICONV_FOUND TRUE) | |||||
-ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) | |||||
+ENDIF(NOT DISABLE_ICONV AND ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) | |||||
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) | |||||
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) | |||||
--- a/configure | |||||
+++ b/configure | |||||
@@ -31,6 +31,7 @@ Usage: ./configure [options] | |||||
--enable-backup enable backup support | |||||
--enable-win32 enable mingw crosscomilation | |||||
--enable-protection enable compile time protections | |||||
+--disable-iconv disable iconv support | |||||
--with-python=<path> path to Python interpreter | |||||
--without-gnapplet disable installation of gnapplet | |||||
--without-completion disable installation of bash completion script | |||||
@@ -57,6 +58,7 @@ CMAKE_PROTECTION= | |||||
CMAKE_PYTHON= | |||||
CMAKE_GNAP= | |||||
CMAKE_COMPLETE= | |||||
+CMAKE_ICONV= | |||||
# process command line | |||||
while [ "$#" -gt 0 ] ; do | |||||
@@ -94,6 +96,12 @@ while [ "$#" -gt 0 ] ; do | |||||
--disable-protection) | |||||
CMAKE_PROTECTION="-DENABLE_PROTECTION=OFF" | |||||
;; | |||||
+ --enable-iconv) | |||||
+ CMAKE_ICONV="-DDISABLE_ICONV=OFF" | |||||
+ ;; | |||||
+ --disable-iconv) | |||||
+ CMAKE_ICONV="-DDISABLE_ICONV=ON" | |||||
+ ;; | |||||
--enable-debug) | |||||
CMAKE_DEBUG="-DCMAKE_BUILD_TYPE=Debug" | |||||
;; | |||||
@@ -142,4 +150,4 @@ fi | |||||
cd "$BUILD_DIR" | |||||
# invoke cmake to do configuration | |||||
-cmake $SOURCE_DIR $CMAKE_PREFIX $CMAKE_SHARED $CMAKE_DEBUG $CMAKE_BACKUP $CMAKE_CROSS $CMAKE_PROTECTION $CMAKE_PYTHON $CMAKE_GNAP $CMAKE_COMPLETE | |||||
+cmake $SOURCE_DIR $CMAKE_PREFIX $CMAKE_SHARED $CMAKE_DEBUG $CMAKE_BACKUP $CMAKE_CROSS $CMAKE_PROTECTION $CMAKE_PYTHON $CMAKE_GNAP $CMAKE_COMPLETE $CMAKE_ICONV |
@ -0,0 +1,11 @@ | |||||
--- a/CMakeLists.txt | |||||
+++ b/CMakeLists.txt | |||||
@@ -537,8 +537,6 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMP | |||||
# MACRO_TUNE_LINKER("-pie") | |||||
# These do not work on Windows right now | |||||
if (NOT WIN32) | |||||
- # Stack protector | |||||
- MACRO_TUNE_COMPILER("-fstack-protector") | |||||
# Mark code read only | |||||
MACRO_TUNE_LINKER("-Wl,-zrelro") | |||||
endif (NOT WIN32) |
@ -0,0 +1,43 @@ | |||||
--- /dev/null | |||||
+++ b/cmake/Toolchain-cross.cmake | |||||
@@ -0,0 +1,5 @@ | |||||
+# search for programs in the build host directories | |||||
+SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | |||||
+# for libraries and headers in the target directories | |||||
+SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | |||||
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | |||||
--- a/configure | |||||
+++ b/configure | |||||
@@ -25,6 +25,7 @@ Usage: ./configure [options] | |||||
--help|-h shows this help | |||||
--prefix=<path> installation prefix | |||||
+--cross-root=<path> cross-compilation prefix | |||||
--enable-shared enables shared build | |||||
--enable-debug enables debug build | |||||
--enable-tiger enables Mac OS X 10.4 (Tiger) build | |||||
@@ -50,6 +51,7 @@ SOURCE_DIR=`pwd` | |||||
# cmake parameters | |||||
CMAKE_PREFIX= | |||||
+CMAKE_ROOT= | |||||
CMAKE_SHARED= | |||||
CMAKE_DEBUG= | |||||
CMAKE_BACKUP= | |||||
@@ -69,6 +71,10 @@ while [ "$#" -gt 0 ] ; do | |||||
--prefix=*) | |||||
CMAKE_PREFIX="-DCMAKE_INSTALL_PREFIX=${1##--prefix=}" | |||||
;; | |||||
+ --cross-root=*) | |||||
+ CMAKE_ROOT="-DCMAKE_TOOLCHAIN_FILE=$SOURCE_DIR/cmake/Toolchain-cross.cmake" | |||||
+ echo "SET(CMAKE_FIND_ROOT_PATH ${1##--cross-root=})" >> $SOURCE_DIR/cmake/Toolchain-cross.cmake | |||||
+ ;; | |||||
--with-python=*) | |||||
CMAKE_PYTHON="-DBUILD_PYTHON=${1##--with-python=}" | |||||
;; | |||||
@@ -150,4 +156,4 @@ fi | |||||
cd "$BUILD_DIR" | |||||
# invoke cmake to do configuration | |||||
-cmake $SOURCE_DIR $CMAKE_PREFIX $CMAKE_SHARED $CMAKE_DEBUG $CMAKE_BACKUP $CMAKE_CROSS $CMAKE_PROTECTION $CMAKE_PYTHON $CMAKE_GNAP $CMAKE_COMPLETE $CMAKE_ICONV | |||||
+cmake $SOURCE_DIR $CMAKE_ROOT $CMAKE_PREFIX $CMAKE_SHARED $CMAKE_DEBUG $CMAKE_BACKUP $CMAKE_CROSS $CMAKE_PROTECTION $CMAKE_PYTHON $CMAKE_GNAP $CMAKE_COMPLETE $CMAKE_ICONV |
@ -0,0 +1,16 @@ | |||||
--- a/utils/gammu-config | |||||
+++ b/utils/gammu-config | |||||
@@ -1,4 +1,4 @@ | |||||
-#!/bin/bash | |||||
+#!/bin/sh | |||||
# Gammu configuration generator | |||||
# Copyright (C) 2003 - 2009 Michal Cihar <michal@cihar.com> | |||||
# vim: expandtab sw=4 ts=4 sts=4: | |||||
--- a/utils/jadmaker | |||||
+++ b/utils/jadmaker | |||||
@@ -1,4 +1,4 @@ | |||||
-#!/bin/bash | |||||
+#!/bin/sh | |||||
# JAD file generator | |||||
# Copyright © 2008 - 2009 Michal Čihař <michal@cihar.com> | |||||
# vim: expandtab sw=4 ts=4 sts=4: |