Skip to content
Jason Charney edited this page Feb 9, 2015 · 7 revisions

TODO: This page is still being written. It would have been easy to write but compy is being fussy.

Installing the security packages is a lot more complex than it should be. It became such a irksome chore to divide them up in to separate pages, that the instructions for installing them had to be put into a single page.

This is a job for source installation!

As much as everyone kept saying "install the apt-get packages, installing from source is too much work" this process really needs to be done in source. The reason: Last year's Heartbleed bug fiasco. The fact that the Transportation Security Layer (TLS) is mentioned is more than enough motivation to install GnuTLS from source rather than binary.

But there is just one problem, not everything that GnuTLS relies on seems to understand that anything that wasn't upgraded prior to April 2014 needed to be upgraded too.

So as I am writing this page, I'm caught between a rock and a hard place because GnuTLS, despite being upgrade in January 2015 won't support the latest stable version of Nettle (3.0), and Nettle (2.7.1) won't reconginze the latest stable version of GMP (6.0.0) and pass that information on to GnuTLS to know where the new libhogweed libraries are.

Basically, it's been a frustrating week here at the Rigel wiki trying to communicate the problem on the Odroid forum without having someone say "Install the binaries" which is a really bad idea considering the version of libhogweed is from 2012.

So what is OK to install using apt-get?

The usual stuff if you haven't installed it.

sudo apt-get install autogen bison yacc flex

And the rest from source

There was quite a bit of stuff to download and extract, so I did everyone a favor and made the dlxt script and put the list if files into security_packages.txt.

cd ~/Software
git clone https://github.com/jrcharney/rigel.git
cd rigel/
bash dlxt -f security_packages.txt

Now it's time to go through everything.

# Download extract our stuff first
ftp://ftp.gnutls.org/gcrypt/libgpg-error/libgpg-error-1.17.tar.bz2
ftp://ftp.gnutls.org/gcrypt/libgcrypt/libgcrypt-1.6.2.tar.bz2
ftp://ftp.gnutls.org/gcrypt/libassuan/libassuan-2.2.0.tar.bz2
ftp://ftp.gnutls.org/gcrypt/libksba/libksba-1.3.2.tar.bz2
ftp://ftp.gnutls.org/gcrypt/npth/npth-1.1.tar.bz2
ftp://ftp.gnutls.org/gcrypt/pinentry/pinentry-0.9.0.tar.bz2
ftp://ftp.gnutls.org/gcrypt/gnupg/gnupg-2.1.1.tar.bz2
# ftp://ftp.gnutls.org/gcrypt/gpgme/gpgme-1.5.3.tar.bz2   # I had some trouble with this.
https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2
https://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.12.tar.xz
# All those files should be in the security_packages.txt

libgpg-error-1.17/
./configure && make && sudo make install && sudo ldconfig
cd ../libcrypt-1.6.2/
./configure && make && sudo make install && sudo ldconfig
cd ../libassuan-2.2.0/
./configure && make && sudo make install && sudo ldconfig
cd ../libksba-1.3.2/
./configure && make && sudo make install && sudo ldconfig
cd ../npth-1.1/
./configure && make && sudo make install && sudo ldconfig
cd ../pinentry-0.9.0/
./configure && make && sudo make install && sudo ldconfig
cd ../gnupg-2.1.1/
./configure && make && sudo make install && sudo ldconfig #this would like gnutls
cd ../gmp-6.0.0/
# These next four lines are for the Odroid U3 only, because /proc/cpuinfo says all four cpus are the same.
cp config.guess config.guess.backup                    # In case we screw up.
sed -i '176s/\(null\)/\1 | sort -u/' config.guess      # append 'sort -u' after the word 'null'
sed -i '203s/\(null\)/\1 | sort -u/' config.guess      # append 'sort -u' after the word 'null'
rm config.guess.backup                                 # When we succeed
./configure
make # -j5 tp use all four processors, but that's where I'm still stuck because of assembly problems.
make check
sudo make install

External Links

Clone this wiki locally