Сборка truecrypt в Debian/Ubuntu.
Эта статья написана для тех кто не хочет использовать сторонние сборки с различных репозиториев, или собранные сторонними людьми.
Итак приступим:
Нам необходимо скачать исходные коды TrueCrypt. Так как разработка официально закрыта и их нельзя скачать с http://www.truecrypt.org/. Нам придется их качать с других мест. Для примера приведу несколько:
Скачиваем файл TrueCrypt 7.1a Source.tar.gz прежде чем распаковать его, мы можем проверить цифровую подпись и контрольную сумму файла.
SHA256
=======
e6214e911d0bbededba274a2f8f8d7b3f6f6951e20f1c3a598fc7a23af81c8dc TrueCrypt 7.1a Source.tar.gz
3de1be6ff4793c5d7269384a5739bb4c985068b15978d17d5bd71403e0f02177 TrueCrypt 7.1a Source.tar.gz.sig
SHA1
=======
d43e0dbe05c04e316447d87413c4f74c68f5de24 TrueCrypt 7.1a Source.tar.gz
caeb2bb1d5605d1fc960e936a06e52611033788c TrueCrypt 7.1a Source.tar.gz.sig
MD5
=======
102d9652681db11c813610882332ae48 TrueCrypt 7.1a Source.tar.gz
5bca3d15b35d0725ff3317e568062ad8 TrueCrypt 7.1a Source.tar.gz.sig
Так как в Debian GNU/Linux начиная с версии 8 и в Ubuntu начиная с версии 16.04 не предоставляется библиотека wxWidgets версии 2.8 необходимая для сборки TrueCrypt. Заходим на сайт https://www.wxwidgets.org/downloads/ качаем исходники версии 2.8.12:
wget https://github.com/wxWidgets/wxWidgets/releases/download/v2.8.12/wxWidgets-2.8.12.tar.gz
Распакуем архивы в любую директорию например /home/user/build
Так же нам понадобится заголовочный файлы PKCS#11
cd /home/user/build
mkdir pkcs11
cd pkcs11
wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11.h
wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11f.h
wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11t.h
Удовлетворим зависимости для сборки
sudo aptitude install build-essential libgtk2.0-dev libfuse-dev fuse-utils mount dmsetup libsm6 nasm pkg-config libsm-dev
Переходим в папку /home/user/build/truecrypt-7.1a-source
Переносим исходники wxWidgets и заголовочный файлы PKCS#11 в /home/user/build/truecrypt-7.1a-source
mv ../wxWidgets-2.8.12 .
mv ../pkcs11 .
Теперь самое интересное TrueCrypt не может монтировать разделы, если его собрать с помощью gcc-5.x. Связанно с изменением C++ ABI.
Проверяем версию gcc:
gcc --version
gcc (Debian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Если у нас в системе версия gcc 5.x. и выше, ставим gcc 4.9 и экспортируем переменные CC и CXX
sudo aptitude install gcc-4.9 g++-4.9
export CC=gcc-4.9
export CXX=g++-4.9
Теперь определим еще две переменные PKCS11_INC и WX_ROOT
export PKCS11_INC=/home/user/build/truecrypt-7.1a-source/pkcs11
export WX_ROOT=/home/user/build/truecrypt-7.1a-source/wxWidgets-2.8.12
Для сборки нам необходимо подправить строку 108 в файле Main/Main.make, что бы линковка завершилась без ошибок, привести к такому виду
$(CXX) -o $(APPNAME) $(LFLAGS) $(OBJS) $(LIBS) $(FUSE_LIBS) $(WX_LIBS) $(EXTRA_LIBS)
Определим переменную EXTRA_LIBS
export EXTRA_LIBS="-lX11 -ldl"
Собираем библиотеку wxWidgets
make wxbuild
Собираем TrueCrypt
make WXSTATIC=1
Копируем truecrypt в /usr/local/bin
sudo cp Main/truecrypt /usr/local/bin/
Запускаем и пользуемся
Click to read and post comments