-
Notifications
You must be signed in to change notification settings - Fork 0
/
install_gpg.sh
167 lines (149 loc) · 5.11 KB
/
install_gpg.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# LIB versions
GNUPG_VER=2.2.20
LIBGPG_ERROR_VER=1.40
LIBGCRYPT_VER=1.9.4
LIBKSBA_VER=1.6.0
LIBASSUAN_VER=2.5.5
NTBTLS_VER=0.1.2
NPTH_VER=1.6
PINENTRY_VER=1.1.0
GPGME_VER=1.13.0
GPA_VER=0.10.0
mkdir -p /var/src/gnupg2 || echo "Unable to create directory in /var/src"
cd /var/src/gnupg2 || exit 1
echo "Printing list of all keys in user keyring in case of issues following install..."
gpg --list-keys
echo "Retrieving GnuPG release signing keys from Ubuntu keyserver..."
gpg --keyserver keyserver.ubuntu.com --recv-keys 249B39D24F25E3B6 04376F3EE0856959 2071B08A33BD3F06 8A861B1C7EFD60D9
#Build and install libgpg-error
echo "Building and installing libgpg-error..."
wget -c https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${LIBGPG_ERROR_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${LIBGPG_ERROR_VER}.tar.bz2.sig
gpg --verify libgpg-error-${LIBGPG_ERROR_VER}.tar.bz2.sig
tar xjvof libgpg-error-${LIBGPG_ERROR_VER}.tar.bz2
cd libgpg-error-${LIBGPG_ERROR_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure
make -s
make check
make install
cd ..
# Build and install libgcrypt
echo "Building and installing libgcrypt..."
wget -c https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${LIBGCRYPT_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${LIBGCRYPT_VER}.tar.bz2.sig
gpg --verify libgcrypt-${LIBGCRYPT_VER}.tar.bz2.sig
tar xjof libgcrypt-${LIBGCRYPT_VER}.tar.bz2
cd libgcrypt-${LIBGCRYPT_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure --enable-m-guard --with-capabilities
make -s
make check
make install
cd ..
# Build and install libksba
echo "Building and installing libksba..."
wget -c https://gnupg.org/ftp/gcrypt/libksba/libksba-${LIBKSBA_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/libksba/libksba-${LIBKSBA_VER}.tar.bz2.sig
gpg --verify libksba-${LIBKSBA_VER}.tar.bz2.sig
tar xjof libksba-${LIBKSBA_VER}.tar.bz2
cd libksba-${LIBKSBA_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure
make -s
make check
make install
cd ..
# Build and install libassuan
echo "Building and installing libassuan..."
wget -c https://gnupg.org/ftp/gcrypt/libassuan/libassuan-${LIBASSUAN_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/libassuan/libassuan-${LIBASSUAN_VER}.tar.bz2.sig
gpg --verify libassuan-${LIBASSUAN_VER}.tar.bz2.sig
tar xjof libassuan-${LIBASSUAN_VER}.tar.bz2
cd libassuan-${LIBASSUAN_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure
make -s
make check
make install
cd ..
# Build and install ntbTLS
echo "Building and installing ntbtls..."
wget -c https://gnupg.org/ftp/gcrypt/ntbtls/ntbtls-${NTBTLS_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/ntbtls/ntbtls-${NTBTLS_VER}.tar.bz2.sig
gpg --verify ntbtls-${NTBTLS_VER}.tar.bz2.sig
tar xjof ntbtls-${NTBTLS_VER}.tar.bz2
cd ntbtls-${NTBTLS_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure
make -s
make install
cd ..
# Build and install nPth
echo "Building and installing npth..."
wget -c https://gnupg.org/ftp/gcrypt/npth/npth-${NPTH_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/npth/npth-${NPTH_VER}.tar.bz2.sig
gpg --verify npth-${NPTH_VER}.tar.bz2.sig
tar xjof npth-${NPTH_VER}.tar.bz2
cd npth-${NPTH_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure
make -s
make check
make install
cd ..
# Build and install Pinentry
echo "Building and installing pinentry..."
wget -c https://gnupg.org/ftp/gcrypt/pinentry/pinentry-${PINENTRY_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/pinentry/pinentry-${PINENTRY_VER}.tar.bz2.sig
gpg --verify pinentry-${PINENTRY_VER}.tar.bz2.sig
tar xjof pinentry-${PINENTRY_VER}.tar.bz2
cd pinentry-${PINENTRY_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure --enable-libsecret --enable-pinentry-tty --enable-pinentry-qt --enable-pinentry-gnome3
make -s
make install
cd ..
# Build and install GPGME
echo "Building and installing gpgme..."
wget -c https://gnupg.org/ftp/gcrypt/gpgme/gpgme-${GPGME_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/gpgme/gpgme-${GPGME_VER}.tar.bz2.sig
gpg --verify gpgme-${GPGME_VER}.tar.bz2.sig
tar xjof gpgme-${GPGME_VER}.tar.bz2
cd gpgme-${GPGME_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure
make -s
make check
make install
cd ..
# Build and install GPA
echo "Building and installing gpa..."
wget -c https://gnupg.org/ftp/gcrypt/gpa/gpa-${GPA_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/gpa/gpa-${GPA_VER}.tar.bz2.sig
gpg --verify gpa-${GPA_VER}.tar.bz2.sig
tar xjof gpa-${GPA_VER}.tar.bz2
cd gpa-${GPA_VER} || exit 1
autoreconf -fi 2>/dev/null
./configure
make -s
make install
cd ..
# linking the libs
echo "/usr/local/lib" >> /etc/ld.so.conf
# reload config
ldconfig -v
echo "Building and installing GnuPG version ${GNUPG_VER}"
wget -c https://gnupg.org/ftp/gcrypt/gnupg/gnupg-${GNUPG_VER}.tar.bz2
wget -c https://gnupg.org/ftp/gcrypt/gnupg/gnupg-${GNUPG_VER}.tar.bz2.sig
gpg --verify gnupg-${GNUPG_VER}.tar.bz2.sig
tar xjof gnupg-${GNUPG_VER}.tar.bz2
cd gnupg-${GNUPG_VER} || exit 1
echo "Creating dest folder for binaries"
mkdir dest
autoreconf -fi 2>/dev/null
./configure --sysconfdir=/etc --localstatedir=/var \
--enable-g13 --enable-symcryptrun --enable-large-secmem --with-capabilities --prefix=/var/src/gnupg2/gnupg-${GNUPG_VER}/dest
make -s
make check
make install