The commands below build all software packages that run on the eBlocker.
The build environment is Debian Buster.
Install pre-requisites:
sudo apt-get install git gcc build-essential debhelper fakeroot openjdk-11-jdk-headless maven bundler
Create user icapd:
sudo adduser --quiet --system --no-create-home --home /opt/eblocker-icap --shell /usr/sbin/nologin --group icapd
The bootstrap package can only be installed on the architecture it was built for.
In this example the target architecture is amd64, so the profile amd64-buster is used:
git clone https://github.com/eblocker/eblocker-bootstrap.git
cd eblocker-bootstrap
mvn -Pamd64-buster clean package
cd ..
Other profiles are:
armbian-busterfor the Banana Pi M2+raspbian-busterfor the Raspberry Pi.
The following packages are architecture dependent, so they must be
built on the same architecture as the target, e.g. amd64 or armhf.
sudo apt-get install libnet1-dev libpcap-dev libhiredis-dev
git clone https://github.com/eblocker/eblocker-network-tools.git
cd eblocker-network-tools
make package
cd ..
sudo apt-get install libldap2-dev libpam0g-dev libdb-dev cdbs libsasl2-dev libcppunit-dev libkrb5-dev comerr-dev libcap2-dev libecap3-dev libexpat1-dev libxml2-dev libltdl-dev libnetfilter-conntrack-dev nettle-dev libgnutls28-dev libssl-dev
git clone https://github.com/eblocker/squid.git
cd squid
fakeroot debian/rules binary
cd ..
git clone https://github.com/eblocker/eblocker-led
cd eblocker-led
make package
cd ..
sudo apt-get install ruby-hitimes ruby-nio4r
git clone https://github.com/eblocker/eblocker-dns
cd eblocker-dns
make package
cd ..
The Java components are architecture independent.
The RestExpres project needs the JAVA_HOME variable:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
git clone https://github.com/eblocker/eblocker-top.git
git clone https://github.com/eblocker/eblocker-crypto.git
git clone https://github.com/eblocker/eblocker-registration-api.git
git clone https://github.com/eblocker/netty-icap.git
git clone https://github.com/eblocker/RestExpress.git
cd eblocker-top && mvn install && cd ..
cd eblocker-crypto && mvn install && cd ..
cd eblocker-registration-api && mvn install && cd ..
cd netty-icap && mvn install && cd ..
cd RestExpress && mvn install && cd ..
git clone https://github.com/eblocker/eblocker
export OPENSSL_CONF=/etc/ssl/
cd eblocker
mvn clean package
cd ..
git clone https://github.com/eblocker/eblocker-lists.git
cd eblocker-lists
mvn -Pupdate-lists clean package
cd ..