From 342b8636d839b93cc1fad1ecf48650116c1edf99 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sun, 9 Jul 2017 23:41:53 +0200 Subject: Add support for building under FreeBSD 11 --- src/Build/build_veracrypt_freebsd.sh | 48 + src/Main/Main.make | 72 +- src/Makefile | 12 + src/Setup/FreeBSD/veracrypt-uninstall.sh | 11 + src/Setup/FreeBSD/veracrypt.desktop | 10 + src/Setup/FreeBSD/veracrypt_install_template.sh | 1100 +++++++++++++++++++++++ 6 files changed, 1242 insertions(+), 11 deletions(-) create mode 100644 src/Build/build_veracrypt_freebsd.sh create mode 100644 src/Setup/FreeBSD/veracrypt-uninstall.sh create mode 100644 src/Setup/FreeBSD/veracrypt.desktop create mode 100644 src/Setup/FreeBSD/veracrypt_install_template.sh (limited to 'src') diff --git a/src/Build/build_veracrypt_freebsd.sh b/src/Build/build_veracrypt_freebsd.sh new file mode 100644 index 00000000..4d50076e --- /dev/null +++ b/src/Build/build_veracrypt_freebsd.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Copyright (c) 2013-2016 IDRIX +# Governed by the Apache License 2.0 the full text of which is contained +# in the file License.txt included in VeraCrypt binary and source +# code distribution packages. +# + +# Absolute path to this script +SCRIPT=$(readlink -f "$0") +# Absolute path this script is in +SCRIPTPATH=$(dirname "$SCRIPT") +# source directory which contains the Makefile +SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") +# directory where the VeraCrypt has been checked out +PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") + +# Make sure only root can run our script +if [ "$(id -u)" != "0" ]; then + echo "VeraCrypt must be built by root" 1>&2 + exit 1 +fi + +# the sources of wxWidgets 3.0.3 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.0.3 +echo "Using wxWidgets sources in $WX_ROOT" + +cd $SOURCEPATH + +echo "Building GUI version of VeraCrypt" + +# this will be the temporary wxWidgets directory +export WX_BUILD_DIR=$PARENTDIR/wxBuildGui + +#gmake WXSTATIC=1 wxbuild && gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package + +# Uncomment below and comment line above to reuse existing wxWidgets build +gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package + +echo "Building console version of VeraCrypt" + +# this will be the temporary wxWidgets directory +export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole + +#gmake WXSTATIC=1 NOGUI=1 wxbuild && gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package + +# Uncomment below and comment line above to reuse existing wxWidgets build +gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package diff --git a/src/Main/Main.make b/src/Main/Main.make index e0ffc089..f11a2b53 100755 --- a/src/Main/Main.make +++ b/src/Main/Main.make @@ -133,6 +133,25 @@ INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH) endif #----------------------------------- +#------ FreeBSD package naming ------ +ifeq "$(PLATFORM)" "FreeBSD" + +SYSTEMNAME = $(shell uname -n) + +ifdef TC_NO_GUI +INSTALLER_TYPE := console +PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_console_$(PLATFORM_ARCH).tar.gz +else +INSTALLER_TYPE := gui +PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_$(PLATFORM_ARCH).tar.gz +endif + +INTERNAL_INSTALLER_NAME := veracrypt_install_f$(SYSTEMNAME)_$(INSTALLER_TYPE)_$(CPU_ARCH).sh +INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH) + +endif +#----------------------------------- + $(APPNAME): $(LIBS) $(OBJS) @echo Linking $@ $(CXX) -o $(APPNAME) $(OBJS) $(LIBS) $(FUSE_LIBS) $(WX_LIBS) $(LFLAGS) @@ -250,19 +269,50 @@ endif endif ifeq "$(PLATFORM)" "FreeBSD" -install: $(APPNAME) - mkdir -p /usr/share/$(APPNAME)/doc/HTML - cp $(PWD)/Main/$(APPNAME) /usr/bin/$(APPNAME) - cp $(PWD)/Setup/Linux/$(APPNAME)-uninstall.sh /usr/bin/$(APPNAME)-uninstall.sh - chmod +x /usr/bin/$(APPNAME)-uninstall.sh - cp $(PWD)/License.txt /usr/share/$(APPNAME)/doc/License.txt - cp $(PWD)/../doc/html/* "/usr/share/$(APPNAME)/doc/HTML" +prepare: $(APPNAME) + rm -fr $(PWD)/Setup/FreeBSD/usr + mkdir -p $(PWD)/Setup/FreeBSD/usr/bin + mkdir -p $(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/HTML + cp $(PWD)/Main/$(APPNAME) $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME) + cp $(PWD)/Setup/Linux/$(APPNAME)-uninstall.sh $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh + chmod +x $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh + cp $(PWD)/License.txt $(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/License.txt + cp $(PWD)/../doc/html/* "$(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/HTML" ifndef TC_NO_GUI - mkdir -p /usr/share/applications - mkdir -p /usr/share/pixmaps - cp $(PWD)/Resources/Icons/VeraCrypt-256x256.xpm /usr/share/pixmaps/$(APPNAME).xpm - cp $(PWD)/Setup/Linux/$(APPNAME).desktop /usr/share/applications/$(APPNAME).desktop + mkdir -p $(PWD)/Setup/FreeBSD/usr/share/applications + mkdir -p $(PWD)/Setup/FreeBSD/usr/share/pixmaps + cp $(PWD)/Resources/Icons/VeraCrypt-256x256.xpm $(PWD)/Setup/FreeBSD/usr/share/pixmaps/$(APPNAME).xpm + cp $(PWD)/Setup/Linux/$(APPNAME).desktop $(PWD)/Setup/FreeBSD/usr/share/applications/$(APPNAME).desktop +endif + chown -R root:wheel $(PWD)/Setup/FreeBSD/usr + chmod -R go-w $(PWD)/Setup/FreeBSD/usr + + +install: prepare + cp -R $(CURDIR)/Setup/FreeBSD/usr $(DESTDIR)/. + +ifeq "$(TC_BUILD_CONFIG)" "Release" +package: prepare + tar cfz $(PWD)/Setup/FreeBSD/$(PACKAGE_NAME) --directory $(PWD)/Setup/FreeBSD usr + + @rm -fr $(INTERNAL_INSTALLER_NAME) + @echo "#!/bin/sh" > $(INTERNAL_INSTALLER_NAME) + @echo "VERSION=$(TC_VERSION)" >> $(INTERNAL_INSTALLER_NAME) + @echo "PACKAGE_TYPE=tar" >> $(INTERNAL_INSTALLER_NAME) + @echo "PACKAGE_NAME=$(PACKAGE_NAME)" >> $(INTERNAL_INSTALLER_NAME) + @echo "PACKAGE_START=1107" >> $(INTERNAL_INSTALLER_NAME) + @echo "INSTALLER_TYPE=$(INSTALLER_TYPE)" >> $(INTERNAL_INSTALLER_NAME) + + @cat $(PWD)/Setup/FreeBSD/veracrypt_install_template.sh >> $(INTERNAL_INSTALLER_NAME) + @cat $(PWD)/Setup/FreeBSD/$(PACKAGE_NAME) >> $(INTERNAL_INSTALLER_NAME) + chmod +x $(INTERNAL_INSTALLER_NAME) + + rm -fr $(PWD)/Setup/FreeBSD/packaging + mkdir -p $(PWD)/Setup/FreeBSD/packaging + cp $(INTERNAL_INSTALLER_NAME) $(PWD)/Setup/FreeBSD/packaging/. + makeself $(PWD)/Setup/FreeBSD/packaging $(PWD)/Setup/FreeBSD/$(INSTALLER_NAME) "VeraCrypt $(TC_VERSION) $(SYSTEMNAME) Installer" ./$(INTERNAL_INSTALLER_NAME) + endif endif diff --git a/src/Makefile b/src/Makefile index 3e8a9e32..fa4a4ebf 100644 --- a/src/Makefile +++ b/src/Makefile @@ -287,6 +287,18 @@ ifeq "$(shell uname -s)" "FreeBSD" CC := cc CXX := c++ + + ifeq "$(TC_BUILD_CONFIG)" "Release" + C_CXX_FLAGS += -fdata-sections -ffunction-sections -fpie + LFLAGS += -Wl,--gc-sections -pie + + ifneq "$(shell ld --help 2>&1 | grep sysv | wc -l)" "0" + LFLAGS += -Wl,--hash-style=sysv + endif + + WXCONFIG_CFLAGS += -fpie -fPIC + WXCONFIG_CXXFLAGS += -fpie -fPIC + endif ifeq "$(SIMD_SUPPORTED)" "1" CFLAGS += -msse2 -maes diff --git a/src/Setup/FreeBSD/veracrypt-uninstall.sh b/src/Setup/FreeBSD/veracrypt-uninstall.sh new file mode 100644 index 00000000..f8f111e2 --- /dev/null +++ b/src/Setup/FreeBSD/veracrypt-uninstall.sh @@ -0,0 +1,11 @@ +#!/bin/sh +V="$(mount | grep veracrypt_aux_mnt)" +[ "$V" ] && echo Error: All volumes must be dismounted first. && exit 1 + +rm -f /usr/bin/veracrypt +rm -f /usr/share/applications/veracrypt.desktop +rm -f /usr/share/pixmaps/veracrypt.xpm +rm -fr /usr/share/veracrypt + +echo VeraCrypt uninstalled. +rm -f /usr/bin/veracrypt-uninstall.sh diff --git a/src/Setup/FreeBSD/veracrypt.desktop b/src/Setup/FreeBSD/veracrypt.desktop new file mode 100644 index 00000000..01dfaf61 --- /dev/null +++ b/src/Setup/FreeBSD/veracrypt.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=VeraCrypt +GenericName=VeraCrypt +Comment=VeraCrypt +Exec=/usr/bin/veracrypt +Icon=veracrypt +Terminal=false +Type=Application +Categories=Encryption;Encryption Tools;Utility; diff --git a/src/Setup/FreeBSD/veracrypt_install_template.sh b/src/Setup/FreeBSD/veracrypt_install_template.sh new file mode 100644 index 00000000..c34f5858 --- /dev/null +++ b/src/Setup/FreeBSD/veracrypt_install_template.sh @@ -0,0 +1,1100 @@ +# +# Derived from source code of TrueCrypt 7.1a, which is +# Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed +# by the TrueCrypt License 3.0. +# +# Modifications and additions to the original source code (contained in this file) +# and all other portions of this file are Copyright (c) 2013-2017 IDRIX +# and are governed by the Apache License 2.0 the full text of which is +# contained in the file License.txt included in VeraCrypt binary and source +# code distribution packages. +# + +PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/X11 + +PACKAGE_DIR=$(dirname $(mktemp)) +PACKAGE=$PACKAGE_DIR/$PACKAGE_NAME +umask 022 + + +# Terminal setup + +TTY=0 +tty >/dev/null 2>/dev/null && TTY=1 + +GUI=0 +XMESSAGE=0 +XTERM=0 +GTERM=0 +KTERM=0 + + +case $PACKAGE_TYPE in + tar) + PACKAGE_INSTALLER=tar + PACKAGE_INSTALLER_OPTS='-C / -xpzvf' + ;; +esac + + +if [ -n "$DISPLAY" -a "$INSTALLER_TYPE" != "console" ] +then + GUI=1 + which xmessage >/dev/null 2>/dev/null && XMESSAGE=1 + which xterm >/dev/null 2>/dev/null && XTERM=1 + which gnome-terminal >/dev/null 2>/dev/null && GTERM=1 + which konsole >/dev/null 2>/dev/null && KTERM=1 +fi + +if [ $TTY -eq 0 ] +then + [ $GUI -eq 0 ] && echo 'Error: Terminal required' >&2 && exit 1 + + if [ $XMESSAGE -eq 0 ] || ([ $XTERM -eq 0 ] && [ $GTERM -eq 0 ] && [ $KTERM -eq 0 ]) + then + which gnome-terminal && exec gnome-terminal -e "$0" + which konsole && exec konsole -e "$0" + which xterm && exec xterm -e "$0" + + [ $XMESSAGE -eq 1 ] && show_exit_message 'Error: Terminal required' + exit 1 + fi +fi + +if [ $XMESSAGE -eq 0 ] || ([ $XTERM -eq 0 ] && [ $GTERM -eq 0 ] && [ $KTERM -eq 0 ]) +then + GUI=0 + XMESSAGE=0 + XTERM=0 + GTERM=0 + KTERM=0 +fi + + +show_message() +{ + if [ $GUI -eq 1 ] + then + if [ $XMESSAGE -eq 1 ] + then + xmessage -center -buttons OK -default OK "$*" + else + if [ $TTY -eq 1 ] + then + echo "$*" + else + if [ $XTERM -eq 1 ] + then + xterm -T 'VeraCrypt Setup' -e sh -c "echo $*; read A" + else + if [ $GTERM -eq 1 ] + then + gnome-terminal --title='VeraCrypt Setup' -e "sh -c \"echo $*; read A\"" + else + if [ $KTERM -eq 1 ] + then + konsole --title 'VeraCrypt Setup' --caption 'VeraCrypt Setup' -e sh -c "echo $*; read A" + fi + fi + fi + fi + fi + else + echo "$*" + fi +} + +show_exit_message() +{ + show_message "$*" + + if [ $XMESSAGE -eq 0 ] + then + printf 'Press Enter to exit... ' + read A + fi +} + +# License extraction + +trap 'rm -f $LICENSE $PACKAGE; exit 1' HUP INT QUIT TERM +LICENSE=$(mktemp) + +cat >$LICENSE <<_LICENSE_END +VeraCrypt License +Software distributed under this license is distributed on an "AS +IS" BASIS WITHOUT WARRANTIES OF ANY KIND. THE AUTHORS AND +DISTRIBUTORS OF THE SOFTWARE DISCLAIM ANY LIABILITY. ANYONE WHO +USES, COPIES, MODIFIES, OR (RE)DISTRIBUTES ANY PART OF THE +SOFTWARE IS, BY SUCH ACTION(S), ACCEPTING AND AGREEING TO BE +BOUND BY ALL TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT +ACCEPT THEM, DO NOT USE, COPY, MODIFY, NOR (RE)DISTRIBUTE THE +SOFTWARE, NOR ANY PART(S) THEREOF. + +VeraCrypt is multi-licensed under Apache License 2.0 and +the TrueCrypt License version 3.0, a verbatim copy of both +licenses can be found below. + +This license does not grant you rights to use any +contributors' name, logo, or trademarks, including IDRIX, +VeraCrypt and all derivative names. +For example, the following names are not allowed: VeraCrypt, +VeraCrypt+, VeraCrypt Professional, iVeraCrypt, etc. Nor any +other names confusingly similar to the name VeraCrypt (e.g., +Vera-Crypt, Vera Crypt, VerKrypt, etc.) +____________________________________________________________ + +Apache License +Version 2.0, January 2004 +https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, +reproduction, and distribution as defined by Sections 1 through +9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized +by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under +common control with that entity. For the purposes of this +definition, "control" means (i) the power, direct or indirect, +to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) +or more of the outstanding shares, or (iii) beneficial ownership +of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making +modifications, including but not limited to software source +code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by +a copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or +Object form, that is based on (or derived from) the Work and +for which the editorial revisions, annotations, elaborations, or +other modifications represent, as a whole, an original work of +authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely +link (or bind by name) to the interfaces of, the Work and +Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or +additions to that Work or Derivative Works thereof, that is +intentionally submitted to Licensor for inclusion in the Work by +the copyright owner or by an individual or Legal Entity +authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form +of electronic, verbal, or written communication sent to the +Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control +systems, and issue tracking systems that are managed by, or on +behalf of, the Licensor for the purpose of discussing and +improving the Work, but excluding communication that is +conspicuously marked or otherwise designated in writing by the +copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal +Entity on behalf of whom a Contribution has been received by +Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and +conditions of this License, each Contributor hereby grants to +You a perpetual, worldwide, non-exclusive, no-charge, +royalty-free, irrevocable copyright license to reproduce, +prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works +in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions +of this License, each Contributor hereby grants to You a +perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable(except as stated in this section) patent license +to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only +to those patent claims licensable by such Contributor that are +necessarily infringed by their Contribution(s) alone or by +combination of their Contribution(s) with the Work to which such +Contribution(s) was submitted. If You institute patent +litigation against any entity (including a cross-claim or +counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or +contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of +the Work or Derivative Works thereof in any medium, with or +without modifications, and in Source or Object form, provided +that You meet the following conditions: + +(a) You must give any other recipients of the Work or Derivative + Works a copy of this License; and +(b) You must cause any modified files to carry prominent notices + stating that You changed the files; and +(c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and +(d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute + must include a readable copy of the attribution notices + contained within such NOTICE file, excluding those notices + that do not pertain to any part of the Derivative Works, in + at least one of the following places: within a NOTICE text + file distributed as part of the Derivative Works; within the + Source form or documentation, if provided along with the + Derivative Works; or, within a display generated by the + Derivative Works, if and wherever such third-party notices + normally appear. The contents of the NOTICE file are for + informational purposes only and do not modify the License. + You may add Your own attribution notices within Derivative + Works that You distribute, alongside or as an addendum to + the NOTICE text from the Work, provided that such additional + attribution notices cannot be construed as modifying + the License. + +You may add Your own copyright statement to Your modifications +and may provide additional or different license terms +and conditions for use, reproduction, or distribution of +Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work +otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state +otherwise, any Contribution intentionally submitted for +inclusion in the Work by You to the Licensor shall be under the +terms and conditions of this License, without any additional +terms or conditions. Notwithstanding the above, nothing herein +shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such +Contributions. + +6. Trademarks. This License does not grant permission to use the +trade names, trademarks, service marks, or product names of the +Licensor, except as required for reasonable and customary use in +describing the origin of the Work and reproducing the content of +the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or +conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, +or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible +for determining the appropriateness of using or redistributing +the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. In no event and under no legal +theory, whether in tort (including negligence), contract, +or otherwise, unless required by applicable law (such as +deliberate and grossly negligent acts) or agreed to in writing, +shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential +damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not +limited to damages for loss of goodwill, work stoppage, computer +failure or malfunction, or any and all other commercial damages +or losses), even if such Contributor has been advised of the +possibility of such damages. + +9. Accepting Warranty or Additional Liability. While +redistributing the Work or Derivative Works thereof, You may +choose to offer, and charge a fee for, acceptance of support, +warranty, indemnity, or other liability obligations and/or +rights consistent with this License. However, in accepting such +obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, +and only if You agree to indemnify, defend, and hold each +Contributor harmless for any liability incurred by, or claims +asserted against, such Contributor by reason of your accepting +any such warranty or additional liability. +____________________________________________________________ + +TrueCrypt License Version 3.0 + +Software distributed under this license is distributed on an "AS +IS" BASIS WITHOUT WARRANTIES OF ANY KIND. THE AUTHORS AND +DISTRIBUTORS OF THE SOFTWARE DISCLAIM ANY LIABILITY. ANYONE WHO +USES, COPIES, MODIFIES, OR (RE)DISTRIBUTES ANY PART OF THE +SOFTWARE IS, BY SUCH ACTION(S), ACCEPTING AND AGREEING TO BE +BOUND BY ALL TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT +ACCEPT THEM, DO NOT USE, COPY, MODIFY, NOR (RE)DISTRIBUTE THE +SOFTWARE, NOR ANY PART(S) THEREOF. + + +I. Definitions + +1. "This Product" means the work (including, but not limited to, +source code, graphics, texts, and accompanying files) made +available under and governed by this version of this license +("License"), as may be indicated by, but is not limited to, +copyright notice(s) attached to or included in the work. + +2. "You" means (and "Your" refers to) an individual or a legal +entity (e.g., a non-profit organization, commercial +organization, government agency, etc.) exercising permissions +granted by this License. + +3. "Modification" means (and "modify" refers to) any alteration +of This Product, including, but not limited to, addition to or +deletion from the substance or structure of This Product, +translation into another language, repackaging, alteration or +removal of any file included with This Product, and addition of +any new files to This Product. + +4. "Your Product" means This Product modified by You, or any +work You derive from (or base on) any part of This Product. In +addition, "Your Product" means any work in which You include any +(modified or unmodified) portion of This Product. However, if +the work in which you include it is an aggregate software +distribution (such as an operating system distribution or a +cover CD-ROM of a magazine) containing multiple separate +products, then the term "Your Product" includes only those +products (in the aggregate software distribution) that use, +include, or depend on a modified or unmodified version of This +Product (and the term "Your Product" does not include the whole +aggregate software distribution). For the purposes of this +License, a product suite consisting of two or more products is +considered a single product (operating system distributions and +cover media of magazines are not considered product suites). + +5. "Distribution" means (and "distribute" refers to), regardless +of means or methods, conveyance, transfer, providing, or making +available of This/Your Product or portions thereof to third +parties (including, but not limited to, making This/Your +Product, or portions thereof, available for download to third +parties, whether or not any third party has downloaded the +product, or any portion thereof, made available for download). + + + +II. Use, Copying, and Distribution of This Product + +1. Provided that You comply with all applicable terms and +conditions of this License, You may make copies of This Product +(unmodified) and distribute copies of This Product (unmodified) +that are not included in another product forming Your Product +(except as permitted under Chapter III). Note: For terms and +conditions for copying and distribution of modified versions of +This Product, see Chapter III. + +2. Provided that You comply with all applicable terms and +conditions of this License, You may use This Product freely (see +also Chapter III) on any number of computers/systems for non- +commercial and/or commercial purposes. + + + +III. Modification, Derivation, and Inclusion in Other Products + +1. If all conditions specified in the following paragraphs in +this Chapter (III) are met (for exceptions, see Section III.2) +and if You comply with all other applicable terms and conditions +of this License, You may modify This Product (thus forming Your +Product), derive new works from This Product or portions thereof +(thus forming Your Product), include This Product or portions +thereof in another product (thus forming Your Product, unless +defined otherwise in Chapter I), and You may use (for non- +commercial and/or commercial purposes), copy, and/or distribute +Your Product. + + a. The name of Your Product (or of Your modified version of + This Product) must not contain the name TrueCrypt (for + example, the following names are not allowed: TrueCrypt, + TrueCrypt+, TrueCrypt Professional, iTrueCrypt, etc.) nor + any other names confusingly similar to the name TrueCrypt + (e.g., True-Crypt, True Crypt, TruKrypt, etc.) + + All occurrences of the name TrueCrypt that could reasonably + be considered to identify Your Product must be removed from + Your Product and from any associated materials. Logo(s) + included in (or attached to) Your Product (and in/to + associated materials) must not incorporate and must not be + confusingly similar to any of the TrueCrypt logos + (including, but not limited to, the non-textual logo + consisting primarily of a key in stylized form) or + portion(s) thereof. All graphics contained in This Product + (logos, icons, etc.) must be removed from Your Product (or + from Your modified version of This Product) and from any + associated materials. + + b. The following phrases must be removed from Your Product + and from any associated materials, except the text of this + License: "A TrueCrypt Foundation Release", "Released by + TrueCrypt Foundation", "This is a TrueCrypt Foundation + release." + + c. Phrase "Based on TrueCrypt, freely available at + http://www.truecrypt.org/" must be displayed by Your Product + (if technically feasible) and contained in its + documentation. Alternatively, if This Product or its portion + You included in Your Product constitutes only a minor + portion of Your Product, phrase "Portions of this product + are based in part on TrueCrypt, freely available at + http://www.truecrypt.org/" may be displayed instead. In each + of the cases mentioned above in this paragraph, + "http://www.truecrypt.org/" must be a hyperlink (if + technically feasible) pointing to http://www.truecrypt.org/ + and You may freely choose the location within the user + interface (if there is any) of Your Product (e.g., an + "About" window, etc.) and the way in which Your Product will + display the respective phrase. + + Your Product (and any associated materials, e.g., the + documentation, the content of the official web site of Your + Product, etc.) must not present any Internet address + containing the domain name truecrypt.org (or any domain name + that forwards to the domain name truecrypt.org) in a manner + that might suggest that it is where information about Your + Product may be obtained or where bugs found in Your Product + may be reported or where support for Your Product may be + available or otherwise attempt to indicate that the domain + name truecrypt.org is associated with Your Product. + + d. The complete source code of Your Product must be freely + and publicly available (for exceptions, see Section III.2) + at least until You cease to distribute Your Product. This + condition can be met in one or both of the following ways: + (i) You include the complete source code of Your Product + with every copy of Your Product that You make and distribute + and You make all such copies of Your Product available to + the general public free of charge, and/or (ii) You include + information (valid and correct at least until You cease to + distribute Your Product) about where the complete source + code of Your Product can be obtained free of charge (e.g., + an Internet address) or for a reasonable reproduction fee + with every copy of Your Product that You make and distribute + and, if there is a web site officially associated with Your + Product, You include the aforementioned information about + the source code on a freely and publicly accessible web + page to which such web site links via an easily viewable + hyperlink (at least until You cease to distribute Your + Product). + + The source code of Your Product must not be deliberately + obfuscated and it must not be in an intermediate form (e.g., + the output of a preprocessor). Source code means the + preferred form in which a programmer would usually modify + the program. + + Portions of the source code of Your Product not contained in + This Product (e.g., portions added by You in creating Your + Product, whether created by You or by third parties) must be + available under license(s) that (however, see also + Subsection III.1.e) allow(s) anyone to modify and derive new + works from the portions of the source code that are not + contained in This Product and to use, copy, and redistribute + such modifications and/or derivative works. The license(s) + must be perpetual, non-exclusive, royalty-free, no-charge, + and worldwide, and must not invalidate, weaken, restrict, + interpret, amend, modify, interfere with or otherwise affect + any part, term, provision, or clause of this License. The + text(s) of the license(s) must be included with every copy + of Your Product that You make and distribute. + + e. You must not change the license terms of This Product in + any way (adding any new terms is considered changing the + license terms even if the original terms are retained), + which means, e.g., that no part of This Product may be put + under another license. You must keep intact all the legal + notices contained in the source code files. You must include + the following items with every copy of Your Product that You + make and distribute: a clear and conspicuous notice stating + that Your Product or portion(s) thereof is/are governed by + this version of the TrueCrypt License, a verbatim copy of + this version of the TrueCrypt License (as contained herein), + a clear and conspicuous notice containing information about + where the included copy of the License can be found, and an + appropriate copyright notice. + + +2. You are not obligated to comply with Subsection III.1.d if +Your Product is not distributed (i.e., Your Product is available +only to You). + + + +IV. Disclaimer of Liability, Disclaimer of Warranty, +Indemnification + +You expressly acknowledge and agree to the following: + +1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY +APPLICABLE INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY WHO +MAY COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, +AS MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER +PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY +DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR +THIRD PARTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY +OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR +BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, +TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, +ARISING OUT OF THE USE, COPYING, MODIFICATION, OR +(RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF +YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS +PRODUCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE +POSSIBILITY OF SUCH DAMAGES) ARE/WERE PREDICTABLE OR KNOWN TO +ANY (CO)AUTHOR, INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY. + +2. THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY +KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT +LIMITED TO, THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THE ENTIRE RISK AS TO +THE QUALITY AND PERFORMANCE OF THIS PRODUCT IS WITH YOU. SHOULD +THIS PRODUCT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR, OR CORRECTION. + +3. THIS PRODUCT MAY INCORPORATE IMPLEMENTATIONS OF CRYPTOGRAPHIC +ALGORITHMS THAT ARE REGULATED (E.G., SUBJECT TO EXPORT/IMPORT +CONTROL REGULATIONS) OR ILLEGAL IN SOME COUNTRIES. IT IS SOLELY +YOUR RESPONSIBILITY TO VERIFY THAT IT IS LEGAL TO IMPORT AND/OR +(RE)EXPORT AND/OR USE THIS PRODUCT (OR PORTIONS THEREOF) IN +COUNTRIES WHERE YOU INTEND TO USE IT AND/OR TO WHICH YOU INTEND +TO IMPORT IT AND/OR FROM WHICH YOU INTEND TO EXPORT IT, AND IT +IS SOLELY YOUR RESPONSIBILITY TO COMPLY WITH ANY APPLICABLE +REGULATIONS, RESTRICTIONS, AND LAWS. + +4. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS +PRODUCT, AND APPLICABLE INTELLECTUAL-PROPERTY OWNERS, HARMLESS +FROM AND AGAINST ANY AND ALL LIABILITY, DAMAGES, LOSSES, +SETTLEMENTS, PENALTIES, FINES, COSTS, EXPENSES (INCLUDING +REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, +ACTIONS, PROCEEDINGS, AND SUITS, DIRECTLY RELATED TO OR ARISING +OUT OF YOUR USE, INABILITY TO USE, COPYING, (RE)DISTRIBUTION, +IMPORT AND/OR (RE)EXPORT OF THIS PRODUCT (OR PORTIONS THEREOF) +AND/OR YOUR BREACH OF ANY TERM OF THIS LICENSE. + + + +V. Trademarks + +This License does not grant permission to use trademarks +associated with (or applying to) This Product, except for fair +use as defined by applicable law and except for use expressly +permitted or required by this License. Any attempt otherwise to +use trademarks associated with (or applying to) This Product +automatically and immediately terminates Your rights under This +License and may constitute trademark infringement (which may be +prosecuted). + + + +VI. General Terms and Conditions, Miscellaneous Provisions + +1. ANYONE WHO USES AND/OR COPIES AND/OR MODIFIES AND/OR CREATES +DERIVATIVE WORKS OF AND/OR (RE)DISTRIBUTES THIS PRODUCT, OR ANY +PORTION(S) THEREOF, IS, BY SUCH ACTION(S), AGREEING TO BE BOUND +BY AND ACCEPTING ALL TERMS AND CONDITIONS OF THIS LICENSE (AND +THE RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS LICENSE). +IF YOU DO NOT ACCEPT (AND AGREE TO BE BOUND BY) ALL TERMS AND +CONDITIONS OF THIS LICENSE, DO NOT USE, COPY, MODIFY, CREATE +DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY +PORTION(S) THEREOF. + +2. YOU MAY NOT USE, MODIFY, COPY, CREATE DERIVATIVE WORKS OF, +(RE)DISTRIBUTE, OR SUBLICENSE THIS PRODUCT, OR PORTION(S) +THEREOF, EXCEPT AS EXPRESSLY PROVIDED IN THIS LICENSE (EVEN IF +APPLICABLE LAW GIVES YOU MORE RIGHTS). ANY ATTEMPT (EVEN IF +PERMITTED BY APPLICABLE LAW) OTHERWISE TO USE, MODIFY, COPY, +CREATE DERIVATIVE WORKS OF, (RE)DISTRIBUTE, OR SUBLICENSE THIS +PRODUCT, OR PORTION(S) THEREOF, AUTOMATICALLY AND IMMEDIATELY +TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN CONSTITUTE +COPYRIGHT INFRINGEMENT (WHICH MAY BE PROSECUTED). ANY CONDITIONS +AND RESTRICTIONS CONTAINED IN THIS LICENSE ARE ALSO LIMITATIONS +ON THE SCOPE OF THIS LICENSE AND ALSO DEFINE THE SCOPE OF YOUR +RIGHTS UNDER THIS LICENSE. YOUR FAILURE TO COMPLY WITH THE TERMS +AND CONDITIONS OF THIS LICENSE OR FAILURE TO PERFORM ANY +APPLICABLE OBLIGATION IMPOSED BY THIS LICENSE AUTOMATICALLY AND +IMMEDIATELY TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN +CAUSE OR BE CONSIDERED COPYRIGHT INFRINGEMENT (WHICH MAY BE +PROSECUTED). NOTHING IN THIS LICENSE SHALL IMPLY OR BE CONSTRUED +AS A PROMISE, OBLIGATION, OR COVENANT NOT TO SUE FOR COPYRIGHT +OR TRADEMARK INFRINGEMENT IF YOU DO NOT COMPLY WITH THE TERMS +AND CONDITIONS OF THIS LICENSE. + +3. This License does not constitute or imply a waiver of any +intellectual property rights except as may be otherwise +expressly provided in this License. This License does not +transfer, assign, or convey any intellectual property rights +(e.g., it does not transfer ownership of copyrights or +trademarks). + +4. Subject to the terms and conditions of this License, You may +allow a third party to use Your copy of This Product (or a copy +that You make and distribute, or Your Product) provided that the +third party explicitly accepts and agrees to be bound by all +terms and conditions of this License and the third party is not +prohibited from using This Product (or portions thereof) by this +License (see, e.g., Section VI.7) or by applicable law. However, +You are not obligated to ensure that the third party accepts +(and agrees to be bound by all terms of) this License if You +distribute only the self-extracting package (containing This +Product) that does not allow the user to install (nor extract) +the files contained in the package until he or she accepts and +agrees to be bound by all terms and conditions of this License. + +5. Without specific prior written permission from the authors of +This Product (or from their common representative), You must not +use the name of This Product, the names of the authors of This +Product, or the names of the legal entities (or informal groups) +of which the authors were/are members/employees, to endorse or +promote Your Product or any work in which You include a modified +or unmodified version of This Product, or to endorse or promote +You or Your affiliates, or in a way that might suggest that Your +Product (or any work in which You include a modified or +unmodified version of This Product), You, or Your affiliates +is/are endorsed by one or more authors of This Product, or in a +way that might suggest that one or more authors of This Product +is/are affiliated with You (or Your affiliates) or directly +participated in the creation of Your Product or of any work in +which You include a modified or unmodified version of This +Product. + +6. IF YOU ARE NOT SURE WHETHER YOU UNDERSTAND ALL PARTS OF THIS +LICENSE OR IF YOU ARE NOT SURE WHETHER YOU CAN COMPLY WITH ALL +TERMS AND CONDITIONS OF THIS LICENSE, YOU MUST NOT USE, COPY, +MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS +PRODUCT, NOR ANY PORTION(S) OF IT. YOU SHOULD CONSULT WITH A +LAWYER. + +7. IF (IN RELEVANT CONTEXT) ANY PROVISION OF CHAPTER IV OF THIS +LICENSE IS UNENFORCEABLE, INVALID, OR PROHIBITED UNDER +APPLICABLE LAW IN YOUR JURISDICTION, YOU HAVE NO RIGHTS UNDER +THIS LICENSE AND YOU MUST NOT USE, COPY, MODIFY, CREATE +DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY +PORTION(S) THEREOF. + +8. Except as otherwise provided in this License, if any +provision of this License, or a portion thereof, is found to be +invalid or unenforceable under applicable law, it shall not +affect the validity or enforceability of the remainder of this +License, and such invalid or unenforceable provision shall be +construed to reflect the original intent of the provision and +shall be enforced to the maximum extent permitted by applicable +law so as to effect the original intent of the provision as +closely as possible. + +____________________________________________________________ + + +Third-Party Licenses + +This Product contains components that were created by third +parties and that are governed by third-party licenses, which are +contained hereinafter (separated by lines consisting of +underscores). Each of the third-party licenses applies only to +(portions of) the source code file(s) in which the third-party +license is contained or in which it is explicitly referenced, +and to compiled or otherwise processed forms of such source +code. None of the third-party licenses applies to This Product +as a whole, even when it uses terms such as "product", +"program", or any other equivalent terms/phrases. This Product +as a whole is governed by the TrueCrypt License (see above). +Some of the third-party components have been modified by the +authors of This Product. Unless otherwise stated, such +modifications and additions are governed by the TrueCrypt +License (see above). Note: Unless otherwise stated, graphics and +files that are not part of the source code are governed by the +TrueCrypt License. + +____________________________________________________________ + +License agreement for Encryption for the Masses. + +Copyright (C) 1998-2000 Paul Le Roux. All Rights Reserved. + +This product can be copied and distributed free of charge, +including source code. + +You may modify this product and source code, and distribute such +modifications, and you may derive new works based on this +product, provided that: + +1. Any product which is simply derived from this product cannot +be called E4M, or Encryption for the Masses. + +2. If you use any of the source code in your product, and your +product is distributed with source code, you must include this +notice with those portions of this source code that you use. + +Or, + +If your product is distributed in binary form only, you must +display on any packaging, and marketing materials which +reference your product, a notice which states: + +"This product uses components written by Paul Le Roux +" + +3. If you use any of the source code originally by Eric Young, +you must in addition follow his terms and conditions. + +4. Nothing requires that you accept this License, as you have +not signed it. However, nothing else grants you permission to +modify or distribute the product or its derivative works. + +These actions are prohibited by law if you do not accept this +License. + +5. If any of these license terms is found to be to broad in +scope, and declared invalid by any court or legal process, you +agree that all other terms shall not be so affected, and shall +remain valid and enforceable. + +6. THIS PROGRAM IS DISTRIBUTED FREE OF CHARGE, THEREFORE THERE +IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. UNLESS OTHERWISE STATED THE PROGRAM IS PROVIDED +"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR +IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS +WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE +COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +7. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY +MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM, INCLUDING BUT NOT LIMITED TO LOSS +OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH +ANY OTHER PROGRAMS, EVEN IF SUCH HOLDER OR OTHER PARTY HAD +PREVIOUSLY BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +____________________________________________________________ + +Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. +All rights reserved. + +LICENSE TERMS + +The free distribution and use of this software is allowed (with +or without changes) provided that: + + 1. source code distributions include the above copyright + notice, this list of conditions and the following + disclaimer; + + 2. binary distributions include the above copyright notice, + this list of conditions and the following disclaimer in + their documentation; + + 3. the name of the copyright holder is not used to endorse + products built using this software without specific written + permission. + +DISCLAIMER + +This software is provided 'as is' with no explicit or implied +warranties in respect of its properties, including, but not +limited to, correctness and/or fitness for purpose. +____________________________________________________________ + +Copyright (C) 2002-2004 Mark Adler, all rights reserved +version 1.8, 9 Jan 2004 + +This software is provided 'as-is', without any express or +implied warranty. In no event will the author be held liable +for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the + product documentation would be appreciated but is not + required. +2. Altered source versions must be plainly marked as such, and + must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source + distribution. +____________________________________________________________ +_LICENSE_END + +[ $? -ne 0 ] && show_exit_message 'Error while extracting license' && exit 1 + + +# Task selection + +INSTALL=-1 + +if [ $XMESSAGE -eq 1 ] +then + + cat <<_END | xmessage -center -file - -buttons "Exit:1,Extract .$PACKAGE_TYPE Package File:20,Install VeraCrypt:10" -default 'Install VeraCrypt' +VeraCrypt $VERSION Setup +==================== + VeraCrypt is a free disk encryption software brought to you by IDRIX + (http://www.idrix.fr) and that is based on TrueCrypt. + It is a software system for establishing and maintaining an + on-the-fly-encrypted volume (data storage device). On-the-fly encryption + means that data are automatically encrypted or decrypted right before they + are loaded or saved, without any user intervention. No data stored on an + encrypted volume can be read (decrypted) without using the correct + password/keyfile(s) or correct encryption keys. Entire file system is + encrypted (e.g., file names, folder names, contents of every file, + free space, meta data, etc). + +Please select one of the below options: + +_END + + SEL=$? + + case $SEL in + 1) exit 1 + ;; + 10) INSTALL=1 + ;; + 20) INSTALL=0 + ;; + esac + +else + + while [ $INSTALL -eq -1 ] + do + clear + cat <<_MENU_END +VeraCrypt $VERSION Setup +____________________ + + +Installation options: + + 1) Install $PACKAGE_NAME + 2) Extract package file $PACKAGE_NAME and place it to $PACKAGE_DIR + +_MENU_END + + printf 'To select, enter 1 or 2: ' + + read SEL + [ -z "$SEL" ] && SEL=1 + + case $SEL in + 1) INSTALL=1 + ;; + 2) INSTALL=0 + ;; + esac + done + +fi + + +# Administrator privileges check + +SUDO=sudo + +if [ $INSTALL -eq 1 -a $(id -u) -ne 0 ] +then + if ! which $SUDO >/dev/null 2>/dev/null + then + show_exit_message "Error: Administrator privileges required ($SUDO command is not installed)" + rm -f $LICENSE + exit 1 + fi +else + unset SUDO +fi + +[ -n "$SUDO" -a $GUI -eq 1 ] && which gksudo >/dev/null 2>/dev/null && SUDO="gksudo -D 'VeraCrypt Setup' --" +[ -n "$SUDO" -a $GUI -eq 1 ] && which kdesudo >/dev/null 2>/dev/null && SUDO="kdesudo -d --comment 'VeraCrypt Setup' --" + + +# License agreement + +if [ $XMESSAGE -eq 1 ] +then + +# GUI license agreement + + cat <<_END | cat - $LICENSE | xmessage -center -file - -buttons 'I accept and agree to be bound by the license terms:10,I do not accept:20' + +Before you can use, extract, or install VeraCrypt, you must accept these +license terms. + +IMPORTANT: By clicking the left button below this text field, you accept +these license terms and agree to be bound by and to comply with them. +Press Page Down key or use the scroll bar to see the rest of the license. + + + +_END + + SEL=$? + + rm -f $LICENSE + if [ $SEL -ne 10 ] + then + show_exit_message 'Installation/extraction aborted' + exit 1 + fi + +else + +# Console license agreement + +printf '\nBefore you can use, extract, or install VeraCrypt, you must accept the\n' +printf 'terms of the VeraCrypt License.\n\nPress Enter to display the license terms... ' +read A + +MORE=more +HASLESS=0 +which less >/dev/null 2>/dev/null && HASLESS=1 +if [ $HASLESS -eq 1 ] +then + MORE='less -E -X' +fi + cat <<_END | cat - $LICENSE | $MORE + +Press Enter or space bar to see the rest of the license. + + +_END + if [ $? -ne 0 ] + then + if [ $HASLESS -eq 1 ] + then +# use less without -X as it is not supported by some versions (busybox case) + MORE='less -E' + cat <<_END | cat - $LICENSE | $MORE + +Press Enter or space bar to see the rest of the license. + + +_END + [ $? -ne 0 ] && exit 1 + else + exit 1 + fi + fi + + rm -f $LICENSE + + ACCEPTED=0 + while [ $ACCEPTED -eq 0 ] + do + printf '\n\nDo you accept and agree to be bound by the license terms? (yes/no): ' + + read SEL + + case $SEL in + y|Y|yes|YES) + ACCEPTED=1 + ;; + n|N|no|NO) + exit 0 + ;; + esac + done +fi + + +# Package extraction + +[ $GUI -eq 0 ] && echo + +if ! tail -n +$PACKAGE_START "$0" >$PACKAGE +then + show_exit_message "Error: Extraction to $PACKAGE failed" + exit 1 +fi + + +# Package installation + +if [ "$PACKAGE_TYPE" = "tar" ] +then + if ! which fusermount >/dev/null 2>/dev/null || ! which dmsetup >/dev/null 2>/dev/null + then + show_message "$(cat <<_INFO +Requirements for Running VeraCrypt: +----------------------------------- + + - FUSE library and tools + - device mapper tools + +_INFO +)" + [ $GUI -eq 0 ] && echo && echo Press Enter to continue... && read A + fi + + show_message "$(cat <<_INFO +Uninstalling VeraCrypt: +----------------------- + +To uninstall VeraCrypt, please run 'veracrypt-uninstall.sh'. + +_INFO +)" + [ $GUI -eq 0 ] && echo +fi + +if [ $INSTALL -eq 1 ] +then + + INSTALLED=0 + + if [ $GUI -eq 1 ] + then + if [ $XTERM -eq 1 ] + then + exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A" + else + if [ $GTERM -eq 1 ] + then + exec gnome-terminal --title='VeraCrypt Setup' -e "sh -c \"echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A\"" + else + if [ $KTERM -eq 1 ] + then + exec konsole --title 'VeraCrypt Setup' --caption 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A" + fi + fi + fi + else + echo 'Installing package...' + $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && INSTALLED=1 + + if [ $INSTALLED -eq 1 ] + then + show_exit_message '' + fi + fi + + rm -f $PACKAGE + if [ $INSTALLED -ne 1 ] + then + show_exit_message 'Error: VeraCrypt installation failed' + exit 1 + fi +else + show_exit_message "Installation package '$PACKAGE_NAME' extracted and placed in '$PACKAGE_DIR'" +fi + +exit 0 -- cgit v1.2.3