HOWTO urbackup @ QNAP (NAS)

what i have:

→ QNAP TS-121

what we need:

  • putty → a terminal → every time you see “#” you need putty
  • winSCP → an “file-explorer”

What we will do:

1. installing packages for compiling
1a) optware IPKG
1b) installing necessary packages for compiling
1c) edit the Optware.sh

2. installing missing packages for urbackup
2a) creating temp and install directory
2b) installing missing packages for urbackup
2bb) crypto++
2bbb) libcurl & libcurl-dev

3. installing urbackup-server
3a) download the source-code and unzip
3b) we set the “install-dir” with prefix
3c) compiling (make)
3d) edit the MAKEFILE
3e) make install
3f) edit the “start_urbackup_server”

4. Testing
4a) starting urbackup-server
4b) test if it works
4c) config the “backup-dir”

5. Autostart urbackup-server at startup
5a) create an “autorun.sh”
5b) edit the “qpkg.conf”#

---------------------------------------------LET US BEGIN-------------------------------

1. installing packages for compiling

1a) optware IPKG

→ go to the app-center on your qnap and install the optware IPKG

1b) installing necessary packages for compiling

→ for compiling the source code for urbackup we need some packages
→ logon with putty on your nas and type the following:

# ipkg update
# ipkg install libidn getopt unzip optware-devel

1c) edit the Optware.sh

Fix the $PATH in “/etc/profile”
→ you can edit the Optware.sh with winSCP → go to

and open the

Look for the section of code which mentions

Replace it so that this part of the file looks like:

# adding Ipkg apps into system path ...
/bin/cat /etc/profile | /bin/grep "PATH" | /bin/grep "/opt/bin" 1>>/dev/null 2>>/dev/null
# Bug fix for following: put IPKG first, per http://forum.qnap.com/viewtopic.php?f=124&t=15663
# was [ $? -ne 0 ] && /bin/echo "export PATH=$PATH":/opt/bin:/opt/sbin >> /etc/profile
[ $? -ne 0 ] && /bin/echo "export PATH=/opt/bin:/opt/sbin:\$PATH" >> /etc/profile

save the file.

reboot the QNAP NAS and check – in admin shell (putty) – the $PATH environment : variable “ /opt/bin” and “/opt/sbin” should come before “/bin” and “/usr/bin”. For instance:

 # echo $PATH
/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin

2. installing missing packages for urbackup

2a) creating temp and install directory

→ in the temp dir i will download the necessary source-code for compiling
→ Because my Qnap (121) has not enough space at “system-dir” i will use my “own” install dir for urbackup
→ the temp and install dir are now FIX!!! if you want anothe location for the temp and install dir you have adapt every time where you find my temp and install dir @ your own

temp dir:

with winSCP go to
[quote=“”]/share/HDA_DATA/[/quote]
create a

install dir:

with winSCP got to
[quote=“”] /share/HDA_DATA/[/quote]
create

in urbackup dir create an install dir and an backup dir

it shuld look like this:

/share/HDA_DATA/
…temp
…urbackup
,install
,backups

2b) installing missing packages for urbackup

→ for compiling the source-code of urbackup successful we need some package
→ the crypto++ package need do be compiled and installed

2bb) crypto++

with putty type the following:

# cd /share/HDA_DATA/temp
# mkdir cryptopp
# cd cryptopp

download the source-code for crypto++ → the make will take a while ←

# wget http://prdownloads.sourceforge.net/cryptopp/cryptopp562.zip
# unzip cryptopp562.zip
# rm -r cryptopp562.zip
# make -f GNUmakefile      
# make libcryptopp.a libcryptopp.so
# make install

→ if there comes an error message, with cryptest.exe (not enough space) → thats no problem
→ now you can delete the cryptopp folder in your temp

# rm -r /share/HDA_DATA/temp/cryptopp

2bbb) libcurl & libcurl-dev

# ipkg update
# ipkg install libcurl
# ipkg install libcurl-dev automake

REBOOT the system now

# reboot

3. installing urbackup-server

3a) download the source-code and unzip

→ with putty go to the temp dir

# cd /share/HDA_DATA/temp

download the source-code for urbackup

# wget http://sourceforge.net/projects/urbackup/files/Server/1.2.3/urbackup-server-1.2.3.tar.gz/download
# tar xzf urbackup-server-1.2.3.tar.gz
# rm urbackup-server-1.2.3.tar.gz
# cd urbackup-server-1.2.3.261/

3b) we set the “install-dir” with prefix

----------------------PREFIX----------------
→ we use the prefix to install urbackup on a place we want
→ because at my qnap is not enough space @ the “system directory”
→ this will install urbackup @ /share/HDA_DATA/urbackup/install/
→ the following command will check your qnap if all dependings are installed

# ./configure --prefix /share/HDA_DATA/urbackup/install/

→ when there was[color=#FF0000] NO ERROR-MESSAGE [/color] then we can compile the source-code

3c) compiling (make)

→ this will take a very long time–> go for lunch or coffe

# make

3d) edit the MAKEFILE

→ we have to edit the make file, because the “adduser” command will not work
→ go with winSCP to
[quote=“”]/share/HDA_DATA/temp/urbackup-server-1.2.3.261/[/quote]
and edit the[quote=“”]MAKEFILE[/quote]
→ go to the buttom and search for the following line:

adduser urbackup --system --quiet --group --home "$(DESTDIR)$(localstatedir)/urbackup" || true

→ and comment it out with #, so that it look like this:

###adduser urbackup --system --quiet --group --home "$(DESTDIR)$(localstatedir)/urbackup" || true

3e) make install

→ now we can “install” urbackup @ QNAP
→ All files shoud be installe @ /share/HDA_DATA/urbackup/install/

# make install

3f) edit the “start_urbackup_server”

→ go with winSCP to
[quote=“”] /share/HDA_DATA/urbackup/install/sbin/ [/quote]

→ edit the[quote=“”] “start_urbackup_server” [/quote]

search for:

 PREFIX=/usr

replace with:

PREFIX=/share/HDA_DATA/urbackup/install

search for:

DAEMON_DIR="/var"

replace with:

DAEMON_DIR="/share/HDA_DATA/urbackup/install/var"

SAVE FILE!!!

4. Testing

4a) starting urbackup-server

with putty go to the install dir

# cd /share/HDA_DATA/urbackup/install/sbin
# ./start_urbackup_server

4b) test if it works

—> open your browser and type:

→ now you should see the webAdminPagePage

4c) config the “backup-dir”

→ under Settung you should set the location where urbackup-server should save the “BACKUPS”
→ i set: [quote=“”]/share/HDA_DATA/urbackup/backups/[/quote]

5. Autostart urbackup-server at startup

5a) create an “autorun.sh”
→ [color=#FF4040]REMEMBER to adapt these lines if you use another location of your “install path”[/color]
→ I make some [color=#008000]“variables” [/color]–> there you can place your “install path”

→ with winSCP go to:
[quote=“”]/share/HDA_DATA/urbackup/install/sbin[/quote]
→ create the file:
[quote=“”]autorun.sh[/quote]
→ enter the following line into the “autorun.sh” file

#!/bin/sh
  
[color=#008000]PIDFILE="/var/run/urbackup_srv.pid"
LOGFILE="/var/log/urbackup.log"
HTTP_PORT=55414
FASTCGI_PORT=55413
INSTALL_DIR="/share/HDA_DATA/urbackup/install"
LIB_DIR="$INSTALL_DIR/lib"[/color]  


start()
{  

## go to the /var dir --> this is neccessary if you start urbackup_srv
cd /share/HDA_DATA/urbackup/install/var  

## start the urbackp_srv with plugins
  /share/HDA_DATA/urbackup/install/sbin/urbackup_srv --daemon --http_port $HTTP_PORT --logfile $LOGFILE --pidfile $PIDFILE --plugin $LIB_DIR/liburbackupserver_urlplugin.so --plugin $LIB_DIR/liburbackupserver_cryptoplugin.so --plugin $LIB_DIR/liburbackupserver_downloadplugin.so --plugin $LIB_DIR/liburbackupserver_fsimageplugin.so --plugin $LIB_DIR/liburbackupserver_httpserver.so --plugin $LIB_DIR/liburbackupserver.so --http_root $INSTALL_DIR/var/urbackup/www --workingdir $INSTALL_DIR/var --user urbackup --snapshot_helper $INSTALL_DIR/bin/urbackup_snapshot_helper  

}
  
stop()
{
   #echo "Shutting down "
   kill `cat $PIDFILE`
   rm -f $PIDFILE
   sleep 5
}
  
# you do not need to edit this lines
case "$1" in
  	start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        # Restarting the Daemon
        $0 stop
        $0 start
	;;
	
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac  

exit 0  

make the [quote=“”]“autorun.sh”[/quote] executable → press[quote=“”] F9[/quote] and set the permission to [quote=“”]0755[/quote]

[u]
5b) edit the “qpkg.conf”
[/u]

→ with winSCP goto
[quote=“”]/etc/config/[/quote]
→ edit the[quote=“”] “qpkg.conf”[/quote]
→ the [color=#FF4000]SHELL[/color] and the [color=#FF4000]INSTALL_PATH[/color] are the important lines
→ at the end of the line enter these following lines!! [color=#FF4040]REMEMBER to adapt these lines if you use anothe location of your “install path”[/color]

[urbackup]
Name = urbackup
Version = 0.1
Author = escctrl
Date = 2013-20-08
Shell = /share/HDA_DATA/urbackup/install/sbin/autorun.sh       
Install_Path = /share/HDA_DATA/urbackup/install/sbin
Enable = TRUE

→ now reboot your QNAP and urbackup server shuld be autostart

[size=28]–>FINISH<—[/size]

1 Like

Hi. I have Qnap 439. I would like to install urbackup serwer on it. I started to go with your tutorial but i don’t have enaugh space for “make install” of the for crypto++.
cp: writing `/usr/lib/libcryptopp.so’: No space left on device

[/mnt/HDA_ROOT/temp/cryptopp] # df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 140M 99M 42M 71% /
/dev/root 140M 99M 42M 71% /
tmpfs 64M 292K 64M 1% /tmp
/dev/sda4 310M 217M 94M 70% /mnt/ext
/dev/md9 510M 83M 428M 17% /mnt/HDA_ROOT
/dev/md0 916G 552M 915G 1% /share/MD0_DATA
tmpfs 32M 0 32M 0% /.eaccelerator.tmp
Is there a way around this? Please help me.

I’ve put the HOWTO unto the wiki and linked it from the download page: https://urbackup.atlassian.net/wiki/display/US/HOWTO+install+UrBackup+on+a+QNAP+NAS

Hi. I managed somehow with low space for installing cryptopp. But now i have error with “3c) compiling (make)”. When i write make command it runs for a while but next i got an error:

make all-recursive
make[1]: Entering directory /mnt/HDA_ROOT/temp/urbackup-server-1.2.3.261' Making all in . make[2]: Entering directory /mnt/HDA_ROOT/temp/urbackup-server-1.2.3.261’
g++ -pthread -DLINUX -g -O2 -o urbackup_srv AcceptThread.o Client.o Database.o Query.o SelectThread.o Server.o ServerLinux.o ServiceAcceptor.o ServiceWorker.o SessionMgr.o StreamPipe.o Template.o WorkerThread.o main.o md5.o stringtools.o fastcgi.o Mutex_lin.o LoadbalancerClient.o DBSettingsReader.o file_common.o file_fstream.o file_linux.o FileSettingsReader.o LookupService.o SettingsReader.o Table.o OutputStream.o ThreadPool.o MemoryPipe.o Condition_lin.o MemorySettingsReader.o sqlite3.o shell.o SQLiteFactory.o PipeThrottler.o mt19937ar.o -ldl
AcceptThread.o: In function __exchange_and_add': /share/MD0_DATA/.qpkg/Optware/bin/../lib/gcc/i686-unknown-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomicity.h:51: undefined reference to __sync_fetch_and_add_4’
/share/MD0_DATA/.qpkg/Optware/bin/…/lib/gcc/i686-unknown-linux-gnu/4.2.1/…/…/…/…/include/c++/4.2.1/ext/atomicity.h:51: undefined reference to __sync_fetch_and_add_4' /share/MD0_DATA/.qpkg/Optware/bin/../lib/gcc/i686-unknown-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomicity.h:51: undefined reference to __sync_fetch_and_add_4’
/share/MD0_DATA/.qpkg/Optware/bin/…/lib/gcc/i686-unknown-linux-gnu/4.2.1/…/…/…/…/include/c++/4.2.1/ext/atomicity.h:51: undefined reference to __sync_fetch_and_add_4' /share/MD0_DATA/.qpkg/Optware/bin/../lib/gcc/i686-unknown-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomicity.h:51: undefined reference to __sync_fetch_and_add_4’
AcceptThread.o:/share/MD0_DATA/.qpkg/Optware/bin/…/lib/gcc/i686-unknown-linux-gnu/4.2.1/…/…/…/…/include/c++/4.2.1/bits/basic_string.h:288: more undefined references to __sync_fetch_and_add_4' follow collect2: ld returned 1 exit status make[2]: *** [urbackup_srv] Error 1 make[2]: Leaving directory /mnt/HDA_ROOT/temp/urbackup-server-1.2.3.261’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/HDA_ROOT/temp/urbackup-server-1.2.3.261’
make: *** [all] Error 2

Please, please help me with this I’m no Linux expert and i don’t know what to do with it.

Ok. i made some proggress. Now i only have:

[/share/MD0_DATA/temp/urbackup-server-1.2.3.261] # make
make all-recursive
make[1]: Entering directory /share/MD0_DATA/temp/urbackup-server-1.2.3.261' Making all in . make[2]: Entering directory /share/MD0_DATA/temp/urbackup-server-1.2.3.261’
g++ -m32 -pthread -DLINUX -O2 -march=i686 -o urbackup_srv AcceptThread.o Client.o Database.o Query.o SelectThread.o Server.o ServerLinux.o ServiceAcceptor.o ServiceWorker.o SessionMgr.o StreamPipe.o Template.o WorkerThread.o main.o md5.o stringtools.o fastcgi.o Mutex_lin.o LoadbalancerClient.o DBSettingsReader.o file_common.o file_fstream.o file_linux.o FileSettingsReader.o LookupService.o SettingsReader.o Table.o OutputStream.o ThreadPool.o MemoryPipe.o Condition_lin.o MemorySettingsReader.o sqlite3.o shell.o SQLiteFactory.o PipeThrottler.o mt19937ar.o -ldl
fastcgi.o: In function __gnu_cxx::__exchange_and_add(int volatile*, int)': fastcgi.cpp:(.text+0x5c0): undefined reference to __sync_fetch_and_add_4’
collect2: ld returned 1 exit status
make[2]: *** [urbackup_srv] Error 1
make[2]: Leaving directory /share/MD0_DATA/temp/urbackup-server-1.2.3.261' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory /share/MD0_DATA/temp/urbackup-server-1.2.3.261’
make: *** [all] Error 2

Please help me with this fastcgi.cpp error. Am i missing something?

i think you first tried to install @ system dir and then to local drive

please use the following drive:

/share/MD0_DATA/temp/
/share/MD0_DATA/urbackup/install

and repeate the howto again

i also found maybe a solution for you. at the point with ./configure use the following code:

./configure --prefix /share/MD0_DATA/urbackup/install/ CC='gcc -march=i686' CXX='g++ -march=i686'

i hope this will help you

esc-ctrl

1 Like

Hi.
Firstly i would like to thank you for your Tutorial and for your Help. I managed to properly compile and run Urbackup server on Qnap TS-439 Pro II+. I’ll describe what i had to change (comparing to your tutorial) to make the task successful.

1c) edit the Optware.sh
I had to change the code to replace (shown bellow) because “# echo $PATH” didn’t want to change.

adding Ipkg apps into system path …

/bin/cat /etc/profile | /bin/grep “PATH” | /bin/grep “/opt/bin” 1>>/dev/null 2>>/dev/null
[ $? -ne 0 ] && /bin/echo “export PATH=/opt/bin:/opt/sbin:$PATH” >> /etc/profile

2a) creating temp and install directory
Becouse i have 2 disk’s i raid mode so my path for temp and install dir looks like this:
/share/MD0_DATA/
…temp
…urbackup
,install
,backups

2bb) crypto++
In my Qnap ther’s to little space on root drive to properly install crypto++. Thers not enaugh space for libcryptopp.a libcryptopp.so files, not mentionig the .exe file. So her’s proper installation of crypto++:

wget http://prdownloads.sourceforge.net/cryptopp/cryptopp562.zip

unzip cryptopp562.zip

rm -r cryptopp562.zip

make -d

make install PREFIX=/share/MD0_DATA/.qpkg/Optware

ln -s /share/MD0_DATA/.qpkg/Optware/include/cryptopp /usr/include/cryptopp

ln -s /share/MD0_DATA/.qpkg/Optware/lib/libcryptopp.a /share/MD0_DATA/.qpkg/Optware/include/cryptopp/

3b) we set the “install-dir” with prefix
3c) compiling (make)
When compaling urbackup (rinning make command), i had error:
fastcgi.o: In function __gnu_cxx::__exchange_and_add(int volatile*, int)': fastcgi.cpp:(.text+0x5c0): undefined reference to __sync_fetch_and_add_4’

Compile worked with prefix just like you wrote in your reply:
./configure --prefix /share/MD0_DATA/urbackup/install/ CC=‘gcc -march=i686’ CXX=‘g++ -march=i686’

After setting the above prefix, i had an error with libstdc++.la. This helped:

mkdir -p /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/

ln -s /share/MD0_DATA/.qpkg/Optware/lib/libstdc++.la /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib

3d) edit the MAKEFILE
It’s not exactly true that adduser command does not work on Qnap. It works but you have to use parameters in different way, but it’s better to remove it anyway. When you remove adduser command the chown urbackup:urbackup “$(DESTDIR)$(localstatedir)/urbackup” command gives an error: urbackup user does not exist. So I had to set the user on existing admin account (simplest way):
chown admin:administrators “$(DESTDIR)$(localstatedir)/urbackup”

After those changes i was able to properly compile and install urbackup-server-1.2.3.261 properly on my TS-439 Pro II+.
Then i tried to install urbackup-server-1.2.4.304, and here’s probably question for uroni. When running make install command it gave me an error that liburbackupserver_cryptoplugin.lai file does not exist. That’s correct because after compiling in cryptoplugin folder there’s only liburbackupserver_cryptoplugin.la file. I changed the file extension to .lai and the make install command worked OK without any errors. So now I have working urbackup-server-1.2.4.304 on my TS-439 Pro II+ with latest Qnap firmware (QTS 4.0.2). I tried to install urbackup-server-1.3.0.0 version from WIP folder, but this does not want to compile at all. Gives me errors when running make command. Something changed?

That’s all. Maybe my work will help someone.

2 Likes

Following the instructions provided by @escctrl and @bondzo here (thank you!), compilation of 1.4.4 tarball on a QNAP TS-659 FW 4.1.1 fails with the error " ‘execvpe’ was not declared in this scope".

[/share/MD0_DATA/.tmp/urbackup-server-1.4.4] # ./configure --prefix /opt/urbackup/ CC='gcc -march=i686' CXX='g++ -march=i686'

…All goes well…

[/share/MD0_DATA/.tmp/urbackup-server-1.4.4] # mkdir -p /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/
[/share/MD0_DATA/.tmp/urbackup-server-1.4.4] # ln -s /share/MD0_DATA/.qpkg/Optware/lib/libstdc++.la 
/home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib

So far so good…

[/share/MD0_DATA/.tmp/urbackup-server-1.4.4] # make
...
main.cpp: In function 'int exec_wait(const std::string&, ...)':
main.cpp:111: error: 'execvpe' was not declared in this scope
make[3]: *** [main.o] Error 1
make[3]: Leaving directory `/share/MD0_DATA/.tmp/urbackup-server-1.4.4/snapshot_helper'
...

Any ideas anyone?

Will be fixed with the next version. Meanwhile you can remove the offending line ( line 111 in snapshot_helper/main.cpp) to fix the problem. The functionality is only relevant on the btrfs filesystem.

Deleted lines 111 and 112 and that did the trick - cheers!

Do you think if it possible to integrate urbackup as an app, it will be an overkill app for all Qnap owners

1 Like

I’ve Done Every Steps Of This Guide But I’ve Problems Installing It In QNAP TS-112P
When I Do The make Command On Point 3c I Recieve A Series Of Errors…

[/share/HDA_DATA/temp/urbackup-server-1.2.4.304] # make
    make  all-recursive
    make[1]: Entering directory `/share/HDA_DATA/temp/urbackup-server-1.2.4.304'
    Making all in .
    make[2]: Entering directory `/share/HDA_DATA/temp/urbackup-server-1.2.4.304'
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT AcceptThread.o -MD -MP -MF .deps/AcceptThread.Tpo -c -o AcceptThread.o AcceptThread.cpp
    In file included from AcceptThread.h:3,
                     from AcceptThread.cpp:21:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from AcceptThread.h:4,
                     from AcceptThread.cpp:21:
    types.h:2:27: warning: no newline at end of file
    In file included from libfastcgi/../OutputStream.h:1,
                     from libfastcgi/fastcgi.hpp:26,
                     from AcceptThread.h:5,
                     from AcceptThread.cpp:21:
    libfastcgi/../Interface/OutputStream.h:13:3: warning: no newline at end of file
    In file included from libfastcgi/fastcgi.hpp:26,
                     from AcceptThread.h:5,
                     from AcceptThread.cpp:21:
    libfastcgi/../OutputStream.h:12:3: warning: no newline at end of file
    In file included from Server.h:13,
                     from AcceptThread.cpp:22:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from SelectThread.h:5,
                     from AcceptThread.cpp:24:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from SelectThread.h:6,
                     from AcceptThread.cpp:24:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from SelectThread.h:6,
                     from AcceptThread.cpp:24:
    Interface/Condition.h:16:22: warning: no newline at end of file
    In file included from SelectThread.h:9,
                     from AcceptThread.cpp:24:
    types.h:2:27: warning: no newline at end of file
    In file included from AcceptThread.cpp:24:
    SelectThread.h:44:24: warning: no newline at end of file
    In file included from Client.h:1,
                     from AcceptThread.cpp:25:
    socket_header.h:22:7: warning: no newline at end of file
    mv -f .deps/AcceptThread.Tpo .deps/AcceptThread.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT Client.o -MD -MP -MF .deps/Client.Tpo -c -o Client.o Client.cpp
    In file included from Client.h:1,
                     from Client.cpp:21:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from Client.h:2,
                     from Client.cpp:21:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Server.h:13,
                     from Client.cpp:22:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from AcceptThread.h:3,
                     from Client.cpp:23:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from AcceptThread.h:4,
                     from Client.cpp:23:
    types.h:2:27: warning: no newline at end of file
    In file included from libfastcgi/../OutputStream.h:1,
                     from libfastcgi/fastcgi.hpp:26,
                     from AcceptThread.h:5,
                     from Client.cpp:23:
    libfastcgi/../Interface/OutputStream.h:13:3: warning: no newline at end of file
    In file included from libfastcgi/fastcgi.hpp:26,
                     from AcceptThread.h:5,
                     from Client.cpp:23:
    libfastcgi/../OutputStream.h:12:3: warning: no newline at end of file
    mv -f .deps/Client.Tpo .deps/Client.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT Database.o -MD -MP -MF .deps/Database.Tpo -c -o Database.o Database.cpp
    In file included from Database.cpp:25:
    Interface/File.h:30:17: warning: no newline at end of file
    In file included from Server.h:13,
                     from Database.cpp:27:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from Database.cpp:41:
    sqlite/shell.h:39:61: warning: no newline at end of file
    In file included from Database.h:4,
                     from Database.cpp:43:
    Interface/DatabaseInt.h:12:7: warning: no newline at end of file
    In file included from Database.h:6,
                     from Database.cpp:43:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from Database.h:7,
                     from Database.cpp:43:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Database.h:7,
                     from Database.cpp:43:
    Interface/Condition.h:16:22: warning: no newline at end of file
    Database.cpp:524:7: warning: no newline at end of file
    mv -f .deps/Database.Tpo .deps/Database.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT Query.o -MD -MP -MF .deps/Query.Tpo -c -o Query.o Query.cpp
    In file included from Server.h:13,
                     from Query.cpp:24:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from Database.h:4,
                     from Query.cpp:35:
    Interface/DatabaseInt.h:12:7: warning: no newline at end of file
    In file included from Database.h:6,
                     from Query.cpp:35:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from Database.h:7,
                     from Query.cpp:35:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Database.h:7,
                     from Query.cpp:35:
    Interface/Condition.h:16:22: warning: no newline at end of file
    Query.cpp:448:7: warning: no newline at end of file
    mv -f .deps/Query.Tpo .deps/Query.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT SelectThread.o -MD -MP -MF .deps/SelectThread.Tpo -c -o SelectThread.o SelectThread.cpp
    In file included from SelectThread.h:5,
                     from SelectThread.cpp:24:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from SelectThread.h:6,
                     from SelectThread.cpp:24:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from SelectThread.h:6,
                     from SelectThread.cpp:24:
    Interface/Condition.h:16:22: warning: no newline at end of file
    In file included from SelectThread.h:9,
                     from SelectThread.cpp:24:
    types.h:2:27: warning: no newline at end of file
    In file included from SelectThread.cpp:24:
    SelectThread.h:44:24: warning: no newline at end of file
    In file included from Client.h:1,
                     from SelectThread.cpp:25:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from WorkerThread.h:4,
                     from SelectThread.cpp:26:
    types.h:2:27: warning: no newline at end of file
    In file included from Server.h:13,
                     from SelectThread.cpp:27:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/SelectThread.Tpo .deps/SelectThread.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT Server.o -MD -MP -MF .deps/Server.Tpo -c -o Server.o Server.cpp
    In file included from libfastcgi/../OutputStream.h:1,
                     from libfastcgi/fastcgi.hpp:26,
                     from Server.cpp:31:
    libfastcgi/../Interface/OutputStream.h:13:3: warning: no newline at end of file
    In file included from libfastcgi/fastcgi.hpp:26,
                     from Server.cpp:31:
    libfastcgi/../OutputStream.h:12:3: warning: no newline at end of file
    In file included from Interface/DatabaseFactory.h:5,
                     from Server.cpp:35:
    Interface/DatabaseInt.h:12:7: warning: no newline at end of file
    In file included from Server.cpp:35:
    Interface/DatabaseFactory.h:13:28: warning: no newline at end of file
    In file included from Server.h:13,
                     from Server.cpp:37:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from Template.h:5,
                     from Server.cpp:38:
    Interface/Template.h:22:21: warning: no newline at end of file
    In file included from Template.h:6,
                     from Server.cpp:38:
    Interface/Table.h:18:18: warning: no newline at end of file
    In file included from Interface/SessionMgr.h:6,
                     from SessionMgr.h:4,
                     from Server.cpp:41:
    Interface/User.h:38:17: warning: no newline at end of file
    In file included from SessionMgr.h:4,
                     from Server.cpp:41:
    Interface/SessionMgr.h:19:23: warning: no newline at end of file
    In file included from SessionMgr.h:5,
                     from Server.cpp:41:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from SessionMgr.h:6,
                     from Server.cpp:41:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from SessionMgr.h:6,
                     from Server.cpp:41:
    Interface/Condition.h:16:22: warning: no newline at end of file
    In file included from Server.cpp:42:
    md5.h:118:15: warning: no newline at end of file
    In file included from ServiceAcceptor.h:3,
                     from Server.cpp:43:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from LookupService.h:1,
                     from Server.cpp:44:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from Server.cpp:44:
    LookupService.h:4:57: warning: no newline at end of file
    In file included from SettingsReader.h:4,
                     from FileSettingsReader.h:4,
                     from Server.cpp:45:
    Interface/SettingsReader.h:24:36: warning: no newline at end of file
    In file included from StreamPipe.h:2,
                     from Server.cpp:47:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from ThreadPool.h:6,
                     from Server.cpp:48:
    Interface/ThreadPool.h:18:24: warning: no newline at end of file
    In file included from Server.cpp:48:
    ThreadPool.h:57:3: warning: no newline at end of file
    In file included from file.h:4,
                     from Server.cpp:49:
    Interface/File.h:30:17: warning: no newline at end of file
    In file included from Server.cpp:52:
    MemorySettingsReader.h:15:3: warning: no newline at end of file
    In file included from Database.h:4,
                     from Server.cpp:53:
    Interface/DatabaseInt.h:12:7: warning: no newline at end of file
    In file included from Server.cpp:54:
    SQLiteFactory.h:7:3: warning: no newline at end of file
    In file included from PipeThrottler.h:1,
                     from Server.cpp:55:
    Interface/PipeThrottler.h:15:26: warning: no newline at end of file
    In file included from Server.cpp:55:
    PipeThrottler.h:21:3: warning: no newline at end of file
    In file included from Server.cpp:56:
    mt19937ar.h:10:29: warning: no newline at end of file
    mv -f .deps/Server.Tpo .deps/Server.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT ServerLinux.o -MD -MP -MF .deps/ServerLinux.Tpo -c -o ServerLinux.o ServerLinux.cpp
    In file included from Server.h:13,
                     from ServerLinux.cpp:20:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/ServerLinux.Tpo .deps/ServerLinux.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT ServiceAcceptor.o -MD -MP -MF .deps/ServiceAcceptor.Tpo -c -o ServiceAcceptor.o ServiceAcceptor.cpp
    In file included from ServiceAcceptor.h:3,
                     from ServiceAcceptor.cpp
    socket_header.h:22:7: warning: no newline at end of file
    In file included from Server.h:13,
                     from ServiceAcceptor.cpp:24:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from ServiceWorker.h:4,
                     from ServiceAcceptor.cpp:26:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from ServiceWorker.h:5,
                     from ServiceAcceptor.cpp:26:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from ServiceWorker.h:5,
                     from ServiceAcceptor.cpp:26:
    Interface/Condition.h:16:22: warning: no newline at end of file
    In file included from ServiceWorker.h:7,
                     from ServiceAcceptor.cpp:26:
    socket_header.h:22:7: warning: no newline at end of file
    mv -f .deps/ServiceAcceptor.Tpo .deps/ServiceAcceptor.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT ServiceWorker.o -MD -MP -MF .deps/ServiceWorker.Tpo -c -o ServiceWorker.o ServiceWorker.cpp
    In file included from ServiceWorker.h:4,
                     from ServiceWorker.cpp:3:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from ServiceWorker.h:5,
                     from ServiceWorker.cpp:3:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from ServiceWorker.h:5,
                     from ServiceWorker.cpp:3:
    Interface/Condition.h:16:22: warning: no newline at end of file
    In file included from ServiceWorker.h:7,
                     from ServiceWorker.cpp:3:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from StreamPipe.h:2,
                     from ServiceWorker.cpp:4:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from Server.h:13,
                     from ServiceWorker.cpp:5:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/ServiceWorker.Tpo .deps/ServiceWorker.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT SessionMgr.o -MD -MP -MF .deps/SessionMgr.Tpo -c -o SessionMgr.o SessionMgr.cpp
    In file included from Interface/SessionMgr.h:6,
                     from SessionMgr.h:4,
                     from SessionMgr.cpp:21:
    Interface/User.h:38:17: warning: no newline at end of file
    In file included from SessionMgr.h:4,
                     from SessionMgr.cpp:21:
    Interface/SessionMgr.h:19:23: warning: no newline at end of file
    In file included from SessionMgr.h:5,
                     from SessionMgr.cpp:21:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from SessionMgr.h:6,
                     from SessionMgr.cpp:21:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from SessionMgr.h:6,
                     from SessionMgr.cpp:21:
    Interface/Condition.h:16:22: warning: no newline at end of file
    In file included from Server.h:13,
                     from SessionMgr.cpp:22:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/SessionMgr.Tpo .deps/SessionMgr.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT StreamPipe.o -MD -MP -MF .deps/StreamPipe.Tpo -c -o StreamPipe.o StreamPipe.cpp
    In file included from StreamPipe.h:2,
                     from StreamPipe.cpp:22:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from Server.h:13,
                     from StreamPipe.cpp:26:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from StreamPipe.cpp:27:
    Interface/PipeThrottler.h:15:26: warning: no newline at end of file
    StreamPipe.cpp:275:2: warning: no newline at end of file
    mv -f .deps/StreamPipe.Tpo .deps/StreamPipe.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT Template.o -MD -MP -MF .deps/Template.Tpo -c -o Template.o Template.cpp
    In file included from Template.h:5,
                     from Template.cpp:20:
    Interface/Template.h:22:21: warning: no newline at end of file
    In file included from Template.h:6,
                     from Template.cpp:20:
    Interface/Table.h:18:18: warning: no newline at end of file
    In file included from Server.h:13,
                     from Template.cpp:24:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/Template.Tpo .deps/Template.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT WorkerThread.o -MD -MP -MF .deps/WorkerThread.Tpo -c -o WorkerThread.o WorkerThread.cpp
    In file included from WorkerThread.h:2,
                     from WorkerThread.cpp:22:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from WorkerThread.h:3,
                     from WorkerThread.cpp:22:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from WorkerThread.h:3,
                     from WorkerThread.cpp:22:
    Interface/Condition.h:16:22: warning: no newline at end of file
    In file included from WorkerThread.h:4,
                     from WorkerThread.cpp:22:
    types.h:2:27: warning: no newline at end of file
    In file included from Client.h:1,
                     from WorkerThread.cpp:23:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from Server.h:13,
                     from WorkerThread.cpp:24:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from libfastcgi/../OutputStream.h:1,
                     from libfastcgi/fastcgi.hpp:26,
                     from WorkerThread.cpp:25:
    libfastcgi/../Interface/OutputStream.h:13:3: warning: no newline at end of file
    In file included from libfastcgi/fastcgi.hpp:26,
                     from WorkerThread.cpp:25:
    libfastcgi/../OutputStream.h:12:3: warning: no newline at end of file
    In file included from SelectThread.h:9,
                     from WorkerThread.cpp:26:
    types.h:2:27: warning: no newline at end of file
    In file included from WorkerThread.cpp:26:
    SelectThread.h:44:24: warning: no newline at end of file
    In file included from WorkerThread.cpp:28:
    Interface/File.h:30:17: warning: no newline at end of file
    WorkerThread.cpp:342:2: warning: no newline at end of file
    mv -f .deps/WorkerThread.Tpo .deps/WorkerThread.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
    In file included from Server.h:13,
                     from main.cpp:21:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from AcceptThread.h:3,
                     from main.cpp:22:
    socket_header.h:22:7: warning: no newline at end of file
    In file included from AcceptThread.h:4,
                     from main.cpp:22:
    types.h:2:27: warning: no newline at end of file
    In file included from libfastcgi/../OutputStream.h:1,
                     from libfastcgi/fastcgi.hpp:26,
                     from AcceptThread.h:5,
                     from main.cpp:22:
    libfastcgi/../Interface/OutputStream.h:13:3: warning: no newline at end of file
    In file included from libfastcgi/fastcgi.hpp:26,
                     from AcceptThread.h:5,
                     from main.cpp:22:
    libfastcgi/../OutputStream.h:12:3: warning: no newline at end of file
    In file included from Interface/SessionMgr.h:6,
                     from SessionMgr.h:4,
                     from main.cpp:23:
    Interface/User.h:38:17: warning: no newline at end of file
    In file included from SessionMgr.h:4,
                     from main.cpp:23:
    Interface/SessionMgr.h:19:23: warning: no newline at end of file
    In file included from SessionMgr.h:5,
                     from main.cpp:23:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Interface/Condition.h:4,
                     from SessionMgr.h:6,
                     from main.cpp:23:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from SessionMgr.h:6,
                     from main.cpp:23:
    Interface/Condition.h:16:22: warning: no newline at end of file
    mv -f .deps/main.Tpo .deps/main.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT md5.o -MD -MP -MF .deps/md5.Tpo -c -o md5.o md5.cpp
    In file included from md5.cpp:49:
    md5.h:118:15: warning: no newline at end of file
    mv -f .deps/md5.Tpo .deps/md5.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT stringtools.o -MD -MP -MF .deps/stringtools.Tpo -c -o stringtools.o stringtools.cpp
    mv -f .deps/stringtools.Tpo .deps/stringtools.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT fastcgi.o -MD -MP -MF .deps/fastcgi.Tpo -c -o fastcgi.o `test -f 'libfastcgi/fastcgi.cpp' || echo './'`libfastcgi/fastcgi.cpp
    In file included from libfastcgi/../OutputStream.h:1,
                     from libfastcgi/fastcgi.hpp:26,
                     from libfastcgi/fastcgi.cpp:13:
    libfastcgi/../Interface/OutputStream.h:13:3: warning: no newline at end of file
    In file included from libfastcgi/fastcgi.hpp:26,
                     from libfastcgi/fastcgi.cpp:13:
    libfastcgi/../OutputStream.h:12:3: warning: no newline at end of file
    mv -f .deps/fastcgi.Tpo .deps/fastcgi.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT Mutex_lin.o -MD -MP -MF .deps/Mutex_lin.Tpo -c -o Mutex_lin.o Mutex_lin.cpp
    In file included from Mutex_lin.h:1,
                     from Mutex_lin.cpp:19:
    Interface/Mutex.h:32:18: warning: no newline at end of file
    In file included from Server.h:13,
                     from Mutex_lin.cpp:20:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/Mutex_lin.Tpo .deps/Mutex_lin.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT LoadbalancerClient.o -MD -MP -MF .deps/LoadbalancerClient.Tpo -c -o LoadbalancerClient.o LoadbalancerClient.cpp
    In file included from Server.h:13,
                     from LoadbalancerClient.cpp:20:
    Interface/Action.h:22:19: warning: no newline at end of file
    In file included from LoadbalancerClient.cpp:21:
    socket_header.h:22:7: warning: no newline at end of file
    mv -f .deps/LoadbalancerClient.Tpo .deps/LoadbalancerClient.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT DBSettingsReader.o -MD -MP -MF .deps/DBSettingsReader.Tpo -c -o DBSettingsReader.o DBSettingsReader.cpp
    In file included from SettingsReader.h:4,
                     from DBSettingsReader.cpp:22:
    Interface/SettingsReader.h:24:36: warning: no newline at end of file
    In included from Server.h:13,
                     from DBSettingsReader.cpp:24:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/DBSettingsReader.Tpo .deps/DBSettingsReader.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT file_common.o -MD -MP -MF .deps/file_common.Tpo -c -o file_common.o file_common.cpp
    In file included from file.h:4,
                     from file_common.cpp:19:
    Interface/File.h:30:17: warning: no newline at end of file
    In file included from Server.h:13,
                     from file_common.cpp:21:
    Interface/Action.h:22:19: warning: no newline at end of file
    mv -f .deps/file_common.Tpo .deps/file_common.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT file_fstream.o -MD -MP -MF .deps/file_fstream.Tpo -c -o file_fstream.o file_fstream.cpp
    In file included from file.h:4,
                     from file_fstream.cpp:20:
    Interface/File.h:30:17: warning: no newline at end of file
    In file included from file_fstream.cpp:21:
    types.h:2:27: warning: no newline at end of file
    mv -f .deps/file_fstream.Tpo .deps/file_fstream.Po
    g++ -DHAVE_CONFIG_H -I.    -pthread -DLINUX -g -O2 -MT file_linux.o -MD -MP -MF .deps/file_linux.Tpo -c -o file_linux.o file_linux.cppIZlibDecompression.h:15:30: warning: no newline at end of file
In file included from pluginmgr.cpp:21:
CryptoFactory.h:17:3: warning: no newline at end of file
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -DLINUX -I/usr/include -g -O2 -MT pluginmgr.lo -MD -MP -MF .deps/pluginmgr.Tpo -c pluginmgr.cpp -o pluginmgr.o >/dev/null 2>&1
mv -f .deps/pluginmgr.Tpo .deps/pluginmgr.Plo
/bin/sh ./libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.    -DLINUX -I/usr/include -g -O2 -MT AESEncryption.lo -MD -MP -MF .deps/AESEncryption.Tpo -c -o AESEncryption.lo AESEncryption.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -DLINUX -I/usr/include -g -O2 -MT AESEncryption.lo -MD -MP -MF .deps/AESEncryption.Tpo -c AESEncryption.cpp  -fPIC -DPIC -o .libs/AESEncryption.o
In file included from AESEncryption.h:2,
                 from AESEncryption.cpp:19:
cryptopp_inc.h:32:7: warning: no newline at end of file
In file included from AESEncryption.h:4,
                 from AESEncryption.cpp:19:
IAESEncryption.h:16:7: warning: no newline at end of file
In file included from AESEncryption.cpp:19:
AESEncryption.h:23:3: warning: no newline at end of file
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -DLINUX -I/usr/include -g -O2 -MT AESEncryption.lo -MD -MP -MF .deps/AESEncryption.Tpo -c AESEncryption.cpp -o AESEncryption.o >/dev/null 2>&1
mv -f .deps/AESEncryption.Tpo .deps/AESEncryption.Plo
/bin/sh ./libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.    -DLINUX -I/usr/include -g -O2 -MT ZlibCompression.lo -MD -MP -MF .deps/ZlibCompression.Tpo -c -o ZlibCompression.lo ZlibCompression.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -DLINUX -I/usr/include -g -O2 -MT ZlibCompression.lo -MD -MP -MF .deps/ZlibCompression.Tpo -c ZlibCompression.cpp  -fPIC -DPIC -o .libs/ZlibCompression.o
In file included from ZlibCompression.h:1,
                 from ZlibCompression.cpp:1:
IZlibCompression.h:15:28: warning: no newline at end of file
In file included from ZlibCompression.h:3,
                 from ZlibCompression.cpp:1:
cryptopp_inc.h:32:7: warning: no newline at end of file
In file included from ZlibCompression.cpp:1:
ZlibCompression.h:14:3: warning: no newline at end of file
ZlibCompression.cpp:28:2: warning: no newline at end of file
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -DLINUX -I/usr/include -g -O2 -MT ZlibCompression.lo -MD -MP -MF .deps/ZlibCompression.Tpo -c ZlibCompression.cpp -o ZlibCompression.o >/dev/null 2>&1
mv -f .deps/ZlibCompression.Tpo .deps/ZlibCompression.Plo
/bin/sh ./libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.    -DLINUX -I/usr/include -g -O2 -MT ZlibDecompression.lo -MD -MP -MF .deps/ZlibDecompression.Tpo -c -o ZlibDecompression.lo ZlibDecompression.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -DLINUX -I/usr/include -g -O2 -MT ZlibDecompression.lo -MD -MP -MF .deps/ZlibDecompression.Tpo -c ZlibDecompression.cpp  -fPIC -DPIC -o .libs/ZlibDecompression.o
In file included from ZlibDecompression.h:1,
                 from ZlibDecompression.cpp:1:
IZlibDecompression.h:15:30: warning: no newline at end of file
In file included from ZlibDecompression.h:3,
                 from ZlibDecompression.cpp:1:
cryptopp_inc.h:32:7: warning: no newline at end of file
In file included from ZlibDecompression.cpp:1:
ZlibDecompression.h:12:3: warning: no newline at end of file
ZlibDecompression.cpp:37:2: warning: no newline at end of file
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -DLINUX -I/usr/include -g -O2 -MT ZlibDecompression.lo -MD -MP -MF .deps/ZlibDecompression.Tpo -c ZlibDecompression.cpp -o ZlibDecompression.o >/dev/null 2>&1
mv -f .deps/ZlibDecompression.Tpo .deps/ZlibDecompression.Plo
/bin/sh ./libtool --tag=CXX   --mode=link g++ -DLINUX -I/usr/include -g -O2 -L/usr/lib  -o liburbackupserver_cryptoplugin.la -rpath /share/HDA_DATA/urbackup/install/lib dllmain.lo AESDecryption.lo CryptoFactory.lo pluginmgr.lo AESEncryption.lo ZlibCompression.lo ZlibDecompression.lo -lcryptopp
libtool: link: g++ -shared -nostdlib /share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/crti.o /share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3/crtbeginS.o  .libs/dllmain.o .libs/AESDecryption.o .libs/CryptoFactory.o .libs/pluginmgr.o .libs/AESEncryption.o .libs/ZlibCompression.o .libs/ZlibDecompression.o   -L/usr/lib -lcryptopp -L/share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3 -L/share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc -L/share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib -L/share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3/../../.. -lstdc++ -lm -lc -lgcc_s /share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3/crtendS.o /share/HDA_DATA/.qpkg/Optware/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/lib/crtn.o    -Wl,-soname -Wl,liburbackupserver_cryptoplugin.so.0 -o .libs/liburbackupserver_cryptoplugin.so.0.0.0
/usr/lib/libcryptopp.so: file not recognized: File truncated
collect2: ld returned 1 exit status
make[3]: *** [liburbackupserver_cryptoplugin.la] Error 1
make[3]: Leaving directory `/share/HDA_DATA/temp/urbackup-server-1.2.4.304/cryptoplugin'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/share/HDA_DATA/temp/urbackup-server-1.2.4.304/cryptoplugin'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/share/HDA_DATA/temp/urbackup-server-1.2.4.304'
make: *** [all] Error 2
[/share/HDA_DATA/temp/urbackup-server-1.2.4.304] #

This is way easier now, can use the QTS web interface to load it… download the right version (link below) then from the APP center inside the QNAP NAS load the correct version, it will install and run (QNAP IP with port 55414 at the end).

Works on:

  • ARM (64 bit only)
  • Intel x86 and x64
  • AMD x86 and x64

We have tried it on both Intel and AMD, currently using it on a 12 bay AMD high end NAS, its fast with transfers running at almost 1Gb sustained speeds.