kneodev / ksmppd

Kurt's SMPP Daemon (SMPP Server for Kannel)
Other
56 stars 38 forks source link

Cannot make using r5306 kannel #140

Closed josefig closed 3 years ago

josefig commented 3 years ago

Hello everybody,

I'm trying to compile ksmppd on ubuntu 20.04 but I'm getting some errors on libsmpp.la it seems like the problem is in the recursive Makefile but I see everything correct according to the GNU docs.

I cloned the kannel using svn, the revision is r5306 and compiled everything okay, but when I want to compile ksmppd, I did the ./boootstrap.sh:

jose@sagitario:~/Documents/projects/ksmpp$ ./bootstrap.sh autoreconf: Entering directory .' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal -I m4 autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy libtoolize: 'AC_PROG_RANLIB' is rendered obsolete by 'LT_INIT' autoreconf: running: /usr/bin/autoconf autoreconf: running: /usr/bin/autoheader autoreconf: running: automake --add-missing --copy --no-force autoreconf: Leaving directory.' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 97033 100 97033 0 0 71400 0 0:00:01 0:00:01 --:--:-- 71400 shtool-2.0.8/AUTHORS shtool-2.0.8/COPYING shtool-2.0.8/ChangeLog shtool-2.0.8/INSTALL shtool-2.0.8/Makefile.in shtool-2.0.8/NEWS shtool-2.0.8/RATIONAL shtool-2.0.8/README shtool-2.0.8/THANKS shtool-2.0.8/VERSION shtool-2.0.8/configure shtool-2.0.8/configure.ac shtool-2.0.8/sh.arx shtool-2.0.8/sh.common shtool-2.0.8/sh.echo shtool-2.0.8/sh.fixperm shtool-2.0.8/sh.install shtool-2.0.8/sh.mdate shtool-2.0.8/sh.mkdir shtool-2.0.8/sh.mkln shtool-2.0.8/sh.mkshadow shtool-2.0.8/sh.move shtool-2.0.8/sh.path shtool-2.0.8/sh.platform shtool-2.0.8/sh.prop shtool-2.0.8/sh.rotate shtool-2.0.8/sh.scpp shtool-2.0.8/sh.slo shtool-2.0.8/sh.subst shtool-2.0.8/sh.table shtool-2.0.8/sh.tarball shtool-2.0.8/sh.version shtool-2.0.8/shtool.m4 shtool-2.0.8/shtool.pod shtool-2.0.8/shtool.spec shtool-2.0.8/shtoolize.in shtool-2.0.8/shtoolize.pod shtool-2.0.8/test.db shtool-2.0.8/test.sh Configuring GNU shtool (Portable Shell Tool), version 2.0.8 (18-Jul-2008) Copyright (c) 1994-2008 Ralf S. Engelschall rse@engelschall.com checking whether make sets $(MAKE)... yes checking for perl interpreter... /usr/bin/perl checking for pod2man conversion tool... /usr/bin/pod2man configure: creating ./config.status config.status: creating Makefile config.status: creating shtoolize config.status: executing adjustment commands building program shtool ./shtoolize -o shtool all Generating shtool...(echo 11808/12742 bytes)...(mdate 3695/4690 bytes)...(table 1818/2753 bytes)...(prop 1109/2038 bytes)...(move 2685/3614 bytes)...(install 4567/5495 bytes)...(mkdir 2904/3821 bytes)...(mkln 4429/5361 bytes)...(mkshadow 3260/4193 bytes)...(fixperm 1471/2403 bytes)...(rotate 13425/14331 bytes)...(tarball 5297/6214 bytes)...(subst 5255/6180 bytes)...(platform 21739/22662 bytes)...(arx 2401/3312 bytes)...(slo 4139/5066 bytes)...(scpp 6295/7206 bytes)...(version 10234/11160 bytes)...(path 4041/4952 bytes) ./shtool mkdir -f -p -m 755 /usr/local ./shtool mkdir -f -p -m 755 /usr/local/bin ./shtool mkdir -f -p -m 755 /usr/local/share/man/man1 ./shtool mkdir -f -p -m 755 /usr/local/share/aclocal ./shtool mkdir -f -p -m 755 /usr/local/share/shtool ./shtool install -c -m 755 shtool /usr/local/bin/shtool ./shtool install -c -m 755 shtoolize /usr/local/bin/shtoolize ./shtool install -c -m 644 shtoolize.1 /usr/local/share/man/man1/shtoolize.1 ./shtool install -c -m 644 shtool.1 /usr/local/share/man/man1/shtool.1 ./shtool install -c -m 644 shtool-echo.1 /usr/local/share/man/man1/shtool-echo.1 ./shtool install -c -m 644 shtool-mdate.1 /usr/local/share/man/man1/shtool-mdate.1 ./shtool install -c -m 644 shtool-table.1 /usr/local/share/man/man1/shtool-table.1 ./shtool install -c -m 644 shtool-prop.1 /usr/local/share/man/man1/shtool-prop.1 ./shtool install -c -m 644 shtool-move.1 /usr/local/share/man/man1/shtool-move.1 ./shtool install -c -m 644 shtool-install.1 /usr/local/share/man/man1/shtool-install.1 ./shtool install -c -m 644 shtool-mkdir.1 /usr/local/share/man/man1/shtool-mkdir.1 ./shtool install -c -m 644 shtool-mkln.1 /usr/local/share/man/man1/shtool-mkln.1 ./shtool install -c -m 644 shtool-mkshadow.1 /usr/local/share/man/man1/shtool-mkshadow.1 ./shtool install -c -m 644 shtool-fixperm.1 /usr/local/share/man/man1/shtool-fixperm.1 ./shtool install -c -m 644 shtool-rotate.1 /usr/local/share/man/man1/shtool-rotate.1 ./shtool install -c -m 644 shtool-tarball.1 /usr/local/share/man/man1/shtool-tarball.1 ./shtool install -c -m 644 shtool-subst.1 /usr/local/share/man/man1/shtool-subst.1 ./shtool install -c -m 644 shtool-platform.1 /usr/local/share/man/man1/shtool-platform.1 ./shtool install -c -m 644 shtool-arx.1 /usr/local/share/man/man1/shtool-arx.1 ./shtool install -c -m 644 shtool-slo.1 /usr/local/share/man/man1/shtool-slo.1 ./shtool install -c -m 644 shtool-scpp.1 /usr/local/share/man/man1/shtool-scpp.1 ./shtool install -c -m 644 shtool-version.1 /usr/local/share/man/man1/shtool-version.1 ./shtool install -c -m 644 shtool-path.1 /usr/local/share/man/man1/shtool-path.1 ./shtool install -c -m 644 shtool.m4 /usr/local/share/aclocal/shtool.m4 ./shtool install -c -m 644 sh.common /usr/local/share/shtool/sh.common ./shtool install -c -m 644 sh.echo /usr/local/share/shtool/sh.echo ./shtool install -c -m 644 sh.mdate /usr/local/share/shtool/sh.mdate ./shtool install -c -m 644 sh.table /usr/local/share/shtool/sh.table ./shtool install -c -m 644 sh.prop /usr/local/share/shtool/sh.prop ./shtool install -c -m 644 sh.move /usr/local/share/shtool/sh.move ./shtool install -c -m 644 sh.install /usr/local/share/shtool/sh.install ./shtool install -c -m 644 sh.mkdir /usr/local/share/shtool/sh.mkdir ./shtool install -c -m 644 sh.mkln /usr/local/share/shtool/sh.mkln ./shtool install -c -m 644 sh.mkshadow /usr/local/share/shtool/sh.mkshadow ./shtool install -c -m 644 sh.fixperm /usr/local/share/shtool/sh.fixperm ./shtool install -c -m 644 sh.rotate /usr/local/share/shtool/sh.rotate ./shtool install -c -m 644 sh.tarball /usr/local/share/shtool/sh.tarball ./shtool install -c -m 644 sh.subst /usr/local/share/shtool/sh.subst ./shtool install -c -m 644 sh.platform /usr/local/share/shtool/sh.platform ./shtool install -c -m 644 sh.arx /usr/local/share/shtool/sh.arx ./shtool install -c -m 644 sh.slo /usr/local/share/shtool/sh.slo ./shtool install -c -m 644 sh.scpp /usr/local/share/shtool/sh.scpp ./shtool install -c -m 644 sh.version /usr/local/share/shtool/sh.version ./shtool install -c -m 644 sh.path /usr/local/share/shtool/sh.path Bootstrapping done, you can now run ./configure

and ./configure everything correct.

jose@sagitario:~/Documents/projects/ksmpp$ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of gcc... gcc3 checking for gcc option to accept ISO C99... none needed checking for ar... ar checking the archiver (ar) interface... ar checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... no checking for dlopen in -ldl... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... no checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pthread_create in -lpthread... yes configure: Checking for libevent2 and its requirements. checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for libxml2... yes configure: Checking for libevent2 and its requirements. checking for libevent... yes checking for shtool... yes checking for gw-config... yes checking for git... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating smpp/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands

And the make: jose@sagitario:~/Documents/projects/ksmpp$ make make all-recursive make[1]: Entering directory '/data/home/jose/Documents/projects/ksmpp' Making all in smpp make[2]: Entering directory '/data/home/jose/Documents/projects/ksmpp/smpp' gcc -DHAVE_CONFIG_H -I. -I.. -I ../smpp/libsmpp gw-config --cflags -g -O2 -MT ksmppd-ksmppd.o -MD -MP -MF .deps/ksmppd-ksmppd.Tpo -c -o ksmppd-ksmppd.o `test -f 'ksmppd.c' echo './'`ksmppd.c In file included from ksmppd.c:75: ../config.h:44: warning: "PACKAGE" redefined 44 #define PACKAGE "ksmppd"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:341: note: this is the location of the previous definition 341 #define PACKAGE "Kannel"
In file included from ksmppd.c:75: ../config.h:47: warning: "PACKAGE_BUGREPORT" redefined 47 #define PACKAGE_BUGREPORT "kneodev@gmail.com"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:344: note: this is the location of the previous definition 344 #define PACKAGE_BUGREPORT ""
In file included from ksmppd.c:75: ../config.h:50: warning: "PACKAGE_NAME" redefined 50 #define PACKAGE_NAME "ksmppd"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:347: note: this is the location of the previous definition 347 #define PACKAGE_NAME ""
In file included from ksmppd.c:75: ../config.h:53: warning: "PACKAGE_STRING" redefined 53 #define PACKAGE_STRING "ksmppd 1.4.4"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:350: note: this is the location of the previous definition 350 #define PACKAGE_STRING ""
In file included from ksmppd.c:75: ../config.h:56: warning: "PACKAGE_TARNAME" redefined 56 #define PACKAGE_TARNAME "ksmppd"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:353: note: this is the location of the previous definition 353 #define PACKAGE_TARNAME ""
In file included from ksmppd.c:75: ../config.h:59: warning: "PACKAGE_URL" redefined 59 #define PACKAGE_URL "https://github.com/kneodev/ksmppd"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:356: note: this is the location of the previous definition 356 #define PACKAGE_URL ""
In file included from ksmppd.c:75: ../config.h:62: warning: "PACKAGE_VERSION" redefined 62 #define PACKAGE_VERSION "1.4.4"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:359: note: this is the location of the previous definition 359 #define PACKAGE_VERSION ""
In file included from ksmppd.c:75: ../config.h:71: warning: "VERSION" redefined 71 #define VERSION "1.4.4"
In file included from /usr/local/include/kannel/gwlib/gw-rwlock.h:66, from /usr/local/include/kannel/gwlib/gwlib.h:104, from ksmppd.c:70: /usr/local/include/kannel/gw-config.h:398: note: this is the location of the previous definition 398 #define VERSION "svn-r5306M"

mv -f .deps/ksmppd-ksmppd.Tpo .deps/ksmppd-ksmppd.Po make[2]: No rule to make target '../smpp/libsmpp.la', needed by 'ksmppd'. Stop. make[2]: Leaving directory '/data/home/jose/Documents/projects/ksmpp/smpp' make[1]: [Makefile:413: all-recursive] Error 1 make[1]: Leaving directory '/data/home/jose/Documents/projects/ksmpp' make: *** [Makefile:345: all] Error 2

I even commented on the lines in ksmppd.c that reference the config.h and comment the config.h include and same output. If you have the chance to check or point me to the correct point will be helpful. Thanks!

m-faraz commented 3 years ago

Same issue with Kannel Revision "svn-r5307M" as well!

rajesh6115 commented 3 years ago

please check #143 this can fix your issue.

if you are using kannel default installation in ubuntu 20.04 you may have a compilation issue. sudo apt-get install kannel-dev

for that, you have to do change source code little

  1. in file smpp_route.h change include statement #include "gwlib/gw-regex.h" => #include "gwlib/regex.h"
donald-jackson commented 3 years ago

this has been resolved