Notizbl0g.

h4cking, ham radio, fire fighting and m0re

Compiling Aprsc for ARM Platform

After discovering that the HamserverPi release 1.5 is actually a Debian wheezy based system and therefore not supporting RustPager ([1]) I manually set up a Debian Jessie lite on my Raspberry Pi to serve as web server for the HamNet. RustPager compiled fine after two hours of full CPU load.

As I had set up an APRS server for HamNet use I also wanted to do that on the Jessie lite system. Apparently there are no .deb packages to install from the package tree. So I tried to compile it manually mainly following Hessu’s guide on [2]. A problem occured with the statically linked library libevent.a. This is how I managed to get along with this error.

The main problem lies within the path that is looked at during compilation of aprsc. I followd the description for “Building a .deb package”. The error message was:

gcc -Wall -g -O2    -Wall -Wstrict-prototypes -D_REENTRANT -c version.c
gcc -Wall -g -O2 -z noexecstack  -g -o aprsc aprsc.o accept.o worker.o errno.o login.o incoming.o dupecheck.o outgoing.o clientlist.o client_heard.o parse_aprs.o parse_qc.o messaging.o config.o netlib.o x
poll.o acl.o cfgfile.o passcode.o uplink.o rwlock.o hmalloc.o hlog.o keyhash.o filter.o cellmalloc.o historydb.o counterdata.o status.o cJSON.o http.o ssl.o sctp.o version.o  /usr/local/lib/libevent.a -lm
  -lpthread    -lz  
  gcc: error: /usr/local/lib/libevent.a: No such file or directory
  Makefile:187: recipe for target 'aprsc' failed
  make[2]: *** [aprsc] Error 1
  make[2]: Leaving directory '/home/df2et/aprsc-2.1.4.g408ed49/src'
  debian/rules:32: recipe for target 'build-stamp' failed
  make[1]: *** [build-stamp] Error 2
  make[1]: Leaving directory '/home/df2et/aprsc-2.1.4.g408ed49/src'
  dpkg-buildpackage: error: debian/rules build gave error exit status 2
  Makefile:270: recipe for target 'make-deb' failed
  make: *** [make-deb] Error 2

So my approach was: Download the package, extract it and change to the src directory. But after executing “./configure” and before “make make-deb” you have to change the debian/rules. Here is my diff:

$ diff debian/rules.orig debian/rules
24c24
<               --enable-static-libevent=/usr/local/lib/libevent.a \
---
>               --enable-static-libevent=/usr/lib/arm-linux-gnueabihf/libevent.a \

After changing this you can go on with “make make-deb”. That should run cleanly. Afterwards you will have the new .deb file in the parent directory. Before installing this (it will fail to some dependancies that it cannot find) you have to install some perl libs. In my case there were:

$ sudo apt-get install libwww-perl
$ sudo apt-get install libjson-xs-perl

After that you can install the .deb package with:

$ sudo dpkg -i aprsc_2.1.4.g408ed49+jessie1_armhf.deb

That should be all to get aprsc running on Jessie lite.

References:

[1] https://github.com/rwth-afu/RustPager
[1] http://he.fi/aprsc/BUILDING.html