setup-ipsec-vpn/extras/vpnsetup-debian-7-workaround.sh

74 lines
2.8 KiB
Bash
Raw Normal View History

2016-05-11 06:50:04 +02:00
#!/bin/sh
#
# Debian 7 (Wheezy) does NOT have the required libnss version (>= 3.16) for Libreswan.
2016-08-07 21:00:07 +02:00
# This script provides a workaround by installing newer packages from libreswan.org.
# Debian 7 users: Run this script first, before using the VPN setup script.
2016-05-11 06:50:04 +02:00
#
2016-08-07 21:00:07 +02:00
# IMPORTANT: These unofficial packages may not receive security updates compared to
# official Debian packages. They could contain vulnerabilities. Use at your own risk!
2016-05-11 06:50:04 +02:00
#
# Copyright (C) 2015-2016 Lin Song <linsongui@gmail.com>
2016-05-11 06:50:04 +02:00
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program. If not, see http://www.gnu.org/licenses/.
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
2016-11-07 02:30:53 +01:00
exiterr() { echo "Error: $1" >&2; exit 1; }
2016-05-11 06:50:04 +02:00
if [ "$(sed 's/\..*//' /etc/debian_version 2>/dev/null)" != "7" ]; then
2016-06-29 09:40:52 +02:00
exiterr "This script only supports Debian 7 (Wheezy)."
2016-05-11 06:50:04 +02:00
fi
if [ "$(uname -m)" != "x86_64" ]; then
2016-06-29 09:40:52 +02:00
exiterr "This script only supports 64-bit Debian 7."
2016-05-11 06:50:04 +02:00
fi
if [ "$(id -u)" != 0 ]; then
2016-06-29 09:40:52 +02:00
exiterr "Script must be run as root. Try 'sudo sh $0'"
2016-05-11 06:50:04 +02:00
fi
# Create and change to working dir
mkdir -p /opt/src
2016-06-29 09:40:52 +02:00
cd /opt/src || exiterr "Cannot enter /opt/src."
2016-05-11 06:50:04 +02:00
# Update package index and install wget
export DEBIAN_FRONTEND=noninteractive
2016-07-04 00:54:15 +02:00
apt-get -yq update || exiterr "'apt-get update' failed."
apt-get -yq install wget || exiterr "Failed to install 'wget'."
2016-05-11 06:50:04 +02:00
# Install libnss/libnspr packages from download.libreswan.org.
2016-05-11 06:50:04 +02:00
# Ref: https://libreswan.org/wiki/3.14_on_Debian_Wheezy
base_url=https://download.libreswan.org/binaries/debian/wheezy
deb1=libnspr4_4.10.7-1_amd64.deb
deb2=libnspr4-dev_4.10.7-1_amd64.deb
deb3=libnss3_3.17.2-1.1_amd64.deb
deb4=libnss3-dev_3.17.2-1.1_amd64.deb
deb5=libnss3-tools_3.17.2-1.1_amd64.deb
2016-05-11 06:50:04 +02:00
wget -t 3 -T 30 -nv -O "$deb1" "$base_url/$deb1"
wget -t 3 -T 30 -nv -O "$deb2" "$base_url/$deb2"
wget -t 3 -T 30 -nv -O "$deb3" "$base_url/$deb3"
wget -t 3 -T 30 -nv -O "$deb4" "$base_url/$deb4"
wget -t 3 -T 30 -nv -O "$deb5" "$base_url/$deb5"
2016-05-11 06:50:04 +02:00
if [ -s "$deb1" ] && [ -s "$deb2" ] && [ -s "$deb3" ] && [ -s "$deb4" ] && [ -s "$deb5" ]; then
dpkg -i "$deb1" "$deb2" "$deb3" "$deb4" "$deb5" && /bin/rm -f "$deb1" "$deb2" "$deb3" "$deb4" "$deb5"
2016-05-11 06:50:04 +02:00
apt-get install -f
echo
echo 'Completed! If no error, you may now proceed to run the VPN setup script.'
2016-05-11 06:50:04 +02:00
exit 0
else
/bin/rm -f "$deb1" "$deb2" "$deb3" "$deb4" "$deb5"
2016-06-29 09:40:52 +02:00
exiterr 'Could not download libnss/libnspr package(s).'
2016-05-11 06:50:04 +02:00
fi