libgsm: Update to version 1.0.14

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
diff --git a/recipes-isdn/libgsm/files/0001-Configure-Makefile.patch b/recipes-isdn/libgsm/files/0001-Configure-Makefile.patch
new file mode 100644
index 0000000..60aa78d
--- /dev/null
+++ b/recipes-isdn/libgsm/files/0001-Configure-Makefile.patch
@@ -0,0 +1,85 @@
+Upstream-Status: Inappropriate [configuration]
+
+Subject: [PATCH 1/5] Configure Makefile
+Organization: O.S. Systems Software LTDA.
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ Makefile | 20 ++++++++++++++------
+ 1 file changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index cfab74f..410d3f6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -96,7 +96,7 @@ TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1
+ #  Other tools
+ 
+ SHELL		= /bin/sh
+-LN		= ln
++LN		= ln -s
+ BASENAME 	= basename
+ AR		= ar
+ ARFLAGS		= cr
+@@ -140,6 +140,7 @@ LFLAGS	= $(LDFLAGS) $(LDINC)
+ # Targets
+ 
+ LIBGSM	= $(LIB)/libgsm.a
++LIBGSMSO = $(LIB)/libgsm.so
+ 
+ TOAST	= $(BIN)/toast
+ UNTOAST	= $(BIN)/untoast
+@@ -279,7 +280,7 @@ TOAST_INSTALL_TARGETS =	\
+ 
+ # Target rules
+ 
+-all:		$(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
++all:		$(LIBGSM) $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST)
+ 		@-echo $(ROOT): Done.
+ 
+ tst:		$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
+@@ -299,6 +300,11 @@ install:	toastinstall gsminstall
+ 
+ # The basic API: libgsm
+ 
++$(LIBGSMSO):	$(LIB) $(GSM_OBJECTS)
++		$(LD) -o $@.1.0.12 -shared -Xlinker -soname -Xlinker libgsm.so.1 $(GSM_OBJECTS) -lc $(LDFLAGS)
++		ln -fs libgsm.so.1.0.12 lib/libgsm.so.1
++		ln -fs libgsm.so.1.0.12 lib/libgsm.so
++
+ $(LIBGSM):	$(LIB) $(GSM_OBJECTS)
+ 		-rm $(RMFLAGS) $(LIBGSM)
+ 		$(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
+@@ -308,15 +314,15 @@ $(LIBGSM):	$(LIB) $(GSM_OBJECTS)
+ # Toast, Untoast and Tcat -- the compress-like frontends to gsm.
+ 
+ $(TOAST):	$(BIN) $(TOAST_OBJECTS) $(LIBGSM)
+-		$(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB)
++		$(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB)
+ 
+ $(UNTOAST):	$(BIN) $(TOAST)
+ 		-rm $(RMFLAGS) $(UNTOAST)
+-		$(LN) $(TOAST) $(UNTOAST)
++		$(LN) toast $(UNTOAST)
+ 
+ $(TCAT):	$(BIN) $(TOAST)
+ 		-rm $(RMFLAGS) $(TCAT)
+-		$(LN) $(TOAST) $(TCAT)
++		$(LN) toast $(TCAT)
+ 
+ 
+ # The local bin and lib directories
+@@ -426,7 +432,9 @@ semi-clean:
+ 
+ clean:	semi-clean
+ 		-rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add		\
+-			$(TOAST) $(TCAT) $(UNTOAST)	\
++			$(LIBGSMSO) $(LIB)/libgsm.so.1.0.12	\
++			$(LIB)libgsm.so.1			\
++			$(TOAST) $(TCAT) $(UNTOAST)		\
+ 			$(ROOT)/gsm-1.0.tar.Z
+ 
+ 
+-- 
+2.1.4
+
diff --git a/recipes-isdn/libgsm/files/0002-Add-defines-to-c.patch b/recipes-isdn/libgsm/files/0002-Add-defines-to-c.patch
new file mode 100644
index 0000000..70f34f2
--- /dev/null
+++ b/recipes-isdn/libgsm/files/0002-Add-defines-to-c.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Inappropriate [configuration]
+
+Subject: [PATCH 2/5] Add defines to c++
+Organization: O.S. Systems Software LTDA.
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ inc/gsm.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/inc/gsm.h b/inc/gsm.h
+index 4714ab6..eb2d5e7 100644
+--- a/inc/gsm.h
++++ b/inc/gsm.h
+@@ -54,6 +54,10 @@ typedef gsm_byte 		gsm_frame[33];		/* 33 * 8 bits	 */
+ #define	GSM_OPT_FRAME_INDEX	5
+ #define	GSM_OPT_FRAME_CHAIN	6
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ extern gsm  gsm_create 	GSM_P((void));
+ extern void gsm_destroy GSM_P((gsm));	
+ 
+@@ -66,6 +70,10 @@ extern int  gsm_decode  GSM_P((gsm, gsm_byte   *, gsm_signal *));
+ extern int  gsm_explode GSM_P((gsm, gsm_byte   *, gsm_signal *));
+ extern void gsm_implode GSM_P((gsm, gsm_signal *, gsm_byte   *));
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #undef	GSM_P
+ 
+ #endif	/* GSM_H */
+-- 
+2.1.4
+
diff --git a/recipes-isdn/libgsm/files/0003-Use-gsm_config.-header-instead-of-config.h.patch b/recipes-isdn/libgsm/files/0003-Use-gsm_config.-header-instead-of-config.h.patch
new file mode 100644
index 0000000..6755124
--- /dev/null
+++ b/recipes-isdn/libgsm/files/0003-Use-gsm_config.-header-instead-of-config.h.patch
@@ -0,0 +1,186 @@
+Upstream-Status: Inappropriate [configuration]
+
+Subject: [PATCH 3/5] Use gsm_config. header instead of config.h
+Organization: O.S. Systems Software LTDA.
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ Makefile          |  2 +-
+ inc/config.h      | 37 -------------------------------------
+ inc/gsm_config.h  | 37 +++++++++++++++++++++++++++++++++++++
+ inc/toast.h       |  2 +-
+ src/code.c        |  2 +-
+ src/gsm_create.c  |  2 +-
+ src/gsm_destroy.c |  2 +-
+ tls/taste.c       |  2 +-
+ 8 files changed, 43 insertions(+), 43 deletions(-)
+ delete mode 100644 inc/config.h
+ create mode 100644 inc/gsm_config.h
+
+diff --git a/Makefile b/Makefile
+index 410d3f6..c8c5b58 100644
+--- a/Makefile
++++ b/Makefile
+@@ -152,7 +152,7 @@ GSM_HEADERS =	$(INC)/gsm.h
+ 
+ HEADERS	=	$(INC)/proto.h		\
+ 		$(INC)/unproto.h	\
+-		$(INC)/config.h		\
++		$(INC)/gsm_config.h	\
+ 		$(INC)/private.h	\
+ 		$(INC)/gsm.h		\
+ 		$(INC)/toast.h		\
+diff --git a/inc/config.h b/inc/config.h
+deleted file mode 100644
+index dfb1ead..0000000
+--- a/inc/config.h
++++ /dev/null
+@@ -1,37 +0,0 @@
+-/*
+- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+- * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+- * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+- */
+-
+-/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/config.h,v 1.5 1996/07/02 11:26:20 jutta Exp $*/
+-
+-#ifndef	CONFIG_H
+-#define	CONFIG_H
+-
+-/*efine	SIGHANDLER_T	int 		/* signal handlers are void	*/
+-/*efine HAS_SYSV_SIGNAL	1		/* sigs not blocked/reset?	*/
+-
+-#define	HAS_STDLIB_H	1		/* /usr/include/stdlib.h	*/
+-#define	HAS_LIMITS_H	1		/* /usr/include/limits.h	*/
+-#define	HAS_FCNTL_H	1		/* /usr/include/fcntl.h		*/
+-#define	HAS_ERRNO_DECL	1		/* errno.h declares errno	*/
+-
+-#define	HAS_FSTAT 	1		/* fstat syscall		*/
+-#define	HAS_FCHMOD 	1		/* fchmod syscall		*/
+-#define	HAS_CHMOD 	1		/* chmod syscall		*/
+-#define	HAS_FCHOWN 	1		/* fchown syscall		*/
+-#define	HAS_CHOWN 	1		/* chown syscall		*/
+-/*efine	HAS__FSETMODE 	1		/* _fsetmode -- set file mode	*/
+-
+-#define	HAS_STRING_H 	1		/* /usr/include/string.h 	*/
+-/*efine	HAS_STRINGS_H	1		/* /usr/include/strings.h 	*/
+-
+-#define	HAS_UNISTD_H	1		/* /usr/include/unistd.h	*/
+-#define	HAS_UTIME	1		/* POSIX utime(path, times)	*/
+-/*efine	HAS_UTIMES	1		/* use utimes()	syscall instead	*/
+-#define	HAS_UTIME_H	1		/* UTIME header file		*/
+-#define	HAS_UTIMBUF	1		/* struct utimbuf		*/
+-/*efine	HAS_UTIMEUSEC   1		/* microseconds in utimbuf?	*/
+-
+-#endif	/* CONFIG_H */
+diff --git a/inc/gsm_config.h b/inc/gsm_config.h
+new file mode 100644
+index 0000000..28cee6d
+--- /dev/null
++++ b/inc/gsm_config.h
+@@ -0,0 +1,37 @@
++/*
++ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
++ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
++ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
++ */
++
++/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/config.h,v 1.5 1996/07/02 11:26:20 jutta Exp $*/
++
++#ifndef	CONFIG_H
++#define	CONFIG_H
++
++/*efine	SIGHANDLER_T	int 		-* signal handlers are void	*/
++/*efine HAS_SYSV_SIGNAL	1		-* sigs not blocked/reset?	*/
++
++#define	HAS_STDLIB_H	1		/* /usr/include/stdlib.h	*/
++#define	HAS_STDIO_H 	1		/* /usr/include/stdio.h 	*/
++/*efine	HAS_LIMITS_H	1		-* /usr/include/limits.h	*/
++#define	HAS_FCNTL_H	1		/* /usr/include/fcntl.h		*/
++
++#define	HAS_FSTAT 	1		/* fstat syscall		*/
++#define	HAS_FCHMOD 	1		/* fchmod syscall		*/
++#define	HAS_CHMOD 	1		/* chmod syscall		*/
++#define	HAS_FCHOWN 	1		/* fchown syscall		*/
++#define	HAS_CHOWN 	1		/* chown syscall		*/
++/*efine	HAS__FSETMODE 	1		-* _fsetmode -- set file mode	*/
++
++#define	HAS_STRING_H 	1		/* /usr/include/string.h 	*/
++/*efine	HAS_STRINGS_H	1		-* /usr/include/strings.h 	*/
++
++#define	HAS_UNISTD_H	1		/* /usr/include/unistd.h	*/
++#define	HAS_UTIME	1		/* POSIX utime(path, times)	*/
++/*efine	HAS_UTIMES	1		-* use utimes()	syscall instead	*/
++#define	HAS_UTIME_H	1		/* UTIME header file		*/
++/*efine	HAS_UTIMBUF	1		-* struct utimbuf		*/
++/*efine	HAS_UTIMEUSEC   1		-* microseconds in utimbuf?	*/
++
++#endif	/* CONFIG_H */
+diff --git a/inc/toast.h b/inc/toast.h
+index b42d9ae..911769d 100644
+--- a/inc/toast.h
++++ b/inc/toast.h
+@@ -9,7 +9,7 @@
+ #ifndef	TOAST_H
+ #define	TOAST_H				/* Guard against multiple includes */
+ 
+-#include "config.h"
++#include "gsm_config.h"
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+diff --git a/src/code.c b/src/code.c
+index 402f614..5222727 100644
+--- a/src/code.c
++++ b/src/code.c
+@@ -6,7 +6,7 @@
+ 
+ /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/code.c,v 1.3 1996/07/02 09:59:05 jutta Exp $ */
+ 
+-#include	"config.h"
++#include	"gsm_config.h"
+ 
+ 
+ #ifdef	HAS_STRING_H
+diff --git a/src/gsm_create.c b/src/gsm_create.c
+index a0bf634..9cc2670 100644
+--- a/src/gsm_create.c
++++ b/src/gsm_create.c
+@@ -6,7 +6,7 @@
+ 
+ static char const	ident[] = "$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_create.c,v 1.4 1996/07/02 09:59:05 jutta Exp $";
+ 
+-#include	"config.h"
++#include	"gsm_config.h"
+ 
+ #ifdef	HAS_STRING_H
+ #include	<string.h>
+diff --git a/src/gsm_destroy.c b/src/gsm_destroy.c
+index 03c8659..274dc4c 100644
+--- a/src/gsm_destroy.c
++++ b/src/gsm_destroy.c
+@@ -7,7 +7,7 @@
+ /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_destroy.c,v 1.3 1994/11/28 19:52:25 jutta Exp $ */
+ 
+ #include "gsm.h"
+-#include "config.h"
++#include "gsm_config.h"
+ #include "proto.h"
+ 
+ #ifdef	HAS_STDLIB_H
+diff --git a/tls/taste.c b/tls/taste.c
+index 4bc84ad..56d1a93 100644
+--- a/tls/taste.c
++++ b/tls/taste.c
+@@ -10,7 +10,7 @@
+ #include	<string.h>
+ #include	<memory.h>
+ 
+-#include	"config.h"
++#include	"gsm_config.h"
+ 
+ #ifdef	HAS_STDLIB_H
+ #	include	<stdlib.h>
+-- 
+2.1.4
+
diff --git a/recipes-isdn/libgsm/files/0004-Add-includes.patch b/recipes-isdn/libgsm/files/0004-Add-includes.patch
new file mode 100644
index 0000000..efb1133
--- /dev/null
+++ b/recipes-isdn/libgsm/files/0004-Add-includes.patch
@@ -0,0 +1,41 @@
+Upstream-Status: Inappropriate [configuration]
+
+Subject: [PATCH 4/5] Add includes
+Organization: O.S. Systems Software LTDA.
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ inc/toast.h | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/inc/toast.h b/inc/toast.h
+index 911769d..3e710d0 100644
+--- a/inc/toast.h
++++ b/inc/toast.h
+@@ -16,10 +16,11 @@
+ 
+ #include <stdio.h>
+ #include <ctype.h>
++#include <pthread.h>
+ #include <signal.h>
+ 
+ #include <errno.h>
+-#ifndef	HAS_ERRNO_DECL
++#ifndef	errno
+ 	 extern int	errno;
+ #endif
+ 
+@@ -37,6 +38,10 @@
+ # endif
+ #endif
+ 
++#ifdef  HAS_STDIO_H
++# include <stdio.h>
++#endif
++
+ #include "gsm.h"
+ 
+ #ifndef	S_ISREG
+-- 
+2.1.4
+
diff --git a/recipes-isdn/libgsm/files/0005-Change-compiler-warnings.patch b/recipes-isdn/libgsm/files/0005-Change-compiler-warnings.patch
new file mode 100644
index 0000000..126d4ff
--- /dev/null
+++ b/recipes-isdn/libgsm/files/0005-Change-compiler-warnings.patch
@@ -0,0 +1,114 @@
+Upstream-Status: Inappropriate [configuration]
+
+Subject: [PATCH 5/5] Change compiler warnings
+Organization: O.S. Systems Software LTDA.
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ src/debug.c |  6 +++---
+ src/toast.c | 17 +++++++----------
+ 2 files changed, 10 insertions(+), 13 deletions(-)
+
+diff --git a/src/debug.c b/src/debug.c
+index 04c3907..a2a5136 100644
+--- a/src/debug.c
++++ b/src/debug.c
+@@ -49,7 +49,7 @@ void gsm_debug_longwords P4( (name, from, to, ptr),
+ 	fprintf( stderr, "%s [%d .. %d]: ", name, from, to );
+ 	while (from <= to) {
+ 
+-		fprintf(stderr, "%d ", ptr[ from ] );
++		fprintf(stderr, "%ld ", ptr[ from ] );
+ 		from++;
+ 		if (nprinted++ >= 7) {
+ 			nprinted = 0;
+@@ -63,14 +63,14 @@ void gsm_debug_longword P2(  (name, value),
+ 	char		* name,
+ 	longword	  value	)
+ {
+-	fprintf(stderr, "%s: %d\n", name, (long)value );
++	fprintf(stderr, "%s: %ld\n", name, (long)value );
+ }
+ 
+ void gsm_debug_word P2(  (name, value),
+ 	char	* name,
+ 	word	  value	)
+ {
+-	fprintf(stderr, "%s: %d\n", name, (long)value);
++	fprintf(stderr, "%s: %ld\n", name, (long)value);
+ }
+ 
+ #endif
+diff --git a/src/toast.c b/src/toast.c
+index 9823642..55606d7 100644
+--- a/src/toast.c
++++ b/src/toast.c
+@@ -251,8 +251,8 @@ static char * emalloc P1((len), size_t len)
+ {
+ 	char * s;
+ 	if (!(s = malloc(len))) {
+-		fprintf(stderr, "%s: failed to malloc %d bytes -- abort\n",
+-			progname, len);
++		fprintf(stderr, "%s: failed to malloc %ld bytes -- abort\n",
++			progname, (long) len);
+ 		onintr();
+ 		exit(1);
+ 	}
+@@ -270,7 +270,7 @@ static char* normalname P3((name, want, cut), char *name, char *want,char *cut)
+ 	maxlen = strlen(name) + 1 + strlen(want) + strlen(cut);
+ 	p = strcpy(emalloc(maxlen), name);
+ 
+-	if (s = suffix(p, cut)) strcpy(s, want);
++	if ((s = suffix(p, cut))) strcpy(s, want);
+ 	else if (*want && !suffix(p, want)) strcat(p, want);
+ 
+ 	return p;
+@@ -386,7 +386,7 @@ static void update_times P0()
+ 		ut[0] = instat.st_atime;
+ 		ut[1] = instat.st_mtime;
+ 
+-		(void) utime(outname, ut);
++		(void) utime(outname, (struct utimbuf *)ut);
+ 
+ #endif	/* UTIMBUF */
+ 	}
+@@ -416,7 +416,7 @@ static int okay_as_input P3((name,f,st), char* name, FILE* f, struct stat * st)
+ 	}
+ 	if (st->st_nlink > 1 && !f_cat && !f_precious) {
+ 		fprintf(stderr, 
+-		      "%s: \"%s\" has %s other link%s -- unchanged.\n",
++		      "%s: \"%s\" has %d other link%s -- unchanged.\n",
+ 			progname,name,st->st_nlink - 1,"s" + (st->st_nlink<=2));
+ 		return 0;
+ 	}
+@@ -585,8 +585,8 @@ static int process_decode P0()
+ 
+ 		if (cc != sizeof(s)) {
+ 			if (cc >= 0) fprintf(stderr,
+-			"%s: incomplete frame (%d byte%s missing) from %s\n",
+-					progname, sizeof(s) - cc,
++			"%s: incomplete frame (%ld byte%s missing) from %s\n",
++					progname, (long) sizeof(s) - cc,
+ 					"s" + (sizeof(s) - cc == 1),
+ 					inname ? inname : "stdin" );
+ 			gsm_destroy(r);
+@@ -624,8 +624,6 @@ static int process_decode P0()
+ 
+ static int process P1((name), char * name)
+ {
+-	int step = 0;
+-
+ 	out     = (FILE *)0;
+ 	in      = (FILE *)0;
+ 
+@@ -779,7 +777,6 @@ int main P2((ac, av), int ac, char **av)
+ 	case 'h': help();    exit(0);
+ 
+ 	default: 
+-	usage:
+ 		fprintf(stderr,
+ 	"Usage: %s [-fcpdhvuaslFC] [files...] (-h for help)\n",
+ 			progname);
+-- 
+2.1.4
+