VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Build/CMakeLists.txt18
-rwxr-xr-xsrc/Build/build_cmake_deb.sh2
-rw-r--r--src/Build/build_cmake_opensuse.sh16
-rw-r--r--src/Build/build_cmake_rpm.sh (renamed from src/Build/build_cmake_rpm_gtk2.sh)16
-rw-r--r--src/Build/build_cmake_rpm_gtk3.sh75
-rwxr-xr-xsrc/Build/build_veracrypt_freebsd.sh6
-rwxr-xr-xsrc/Build/build_veracrypt_linux.sh6
-rw-r--r--src/Build/build_veracrypt_linux_gtk3.sh47
-rwxr-xr-xsrc/Build/build_veracrypt_linux_no_sse2.sh6
-rw-r--r--src/Common/SCard.cpp2
-rw-r--r--src/Common/SCardLoader.cpp4
-rw-r--r--src/Common/SCardLoader.h9
-rw-r--r--src/Common/SCardReader.cpp4
-rw-r--r--src/Common/TLVParser.cpp8
-rw-r--r--src/Main/Forms/PreferencesDialog.cpp53
-rw-r--r--src/Main/Forms/PreferencesDialog.h45
-rw-r--r--src/Main/Forms/VolumeCreationWizard.cpp25
-rw-r--r--src/Main/GraphicUserInterface.cpp53
-rwxr-xr-xsrc/Main/Main.make12
-rw-r--r--src/Main/StringFormatter.h5
-rw-r--r--src/Main/TextUserInterface.cpp41
-rw-r--r--src/Main/TextUserInterface.h2
-rw-r--r--src/Main/UserInterface.cpp17
-rw-r--r--src/Makefile48
-rw-r--r--src/Readme.txt2
25 files changed, 209 insertions, 313 deletions
diff --git a/src/Build/CMakeLists.txt b/src/Build/CMakeLists.txt
index a06b1761..345db88b 100644
--- a/src/Build/CMakeLists.txt
+++ b/src/Build/CMakeLists.txt
@@ -318,17 +318,13 @@ elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) )
if (NOGUI)
set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, sudo" )
else ()
- if ( PLATFORM STREQUAL "CentOS" )
-
- if ( DEFINED WITHGTK3 AND WITHGTK3 )
- set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk3, sudo, pcsc-lite" )
- else ()
- set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo, pcsc-lite" )
- endif()
-
- elseif ( PLATFORM STREQUAL "openSUSE" )
-
- set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo, pcsc-lite" )
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(GTK3 gtk+-3.0)
+
+ if(GTK3_FOUND)
+ set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk3, sudo, pcsc-lite" )
+ else()
+ set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo, pcsc-lite" )
endif()
endif()
diff --git a/src/Build/build_cmake_deb.sh b/src/Build/build_cmake_deb.sh
index f756cd10..17103a61 100755
--- a/src/Build/build_cmake_deb.sh
+++ b/src/Build/build_cmake_deb.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2013-2022 IDRIX
+# Copyright (c) 2013-2024 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.
diff --git a/src/Build/build_cmake_opensuse.sh b/src/Build/build_cmake_opensuse.sh
index 622eb4cd..52bed78a 100644
--- a/src/Build/build_cmake_opensuse.sh
+++ b/src/Build/build_cmake_opensuse.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2013-2022 IDRIX
+# Copyright (c) 2013-2024 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.
@@ -18,8 +18,8 @@ export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..")
# Directory where the VeraCrypt has been checked out
export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..")
-# The sources of wxWidgets 3.2.2.1 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1
+# The sources of wxWidgets 3.2.5 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5
echo "Using wxWidgets sources in $WX_ROOT"
cd $SOURCEPATH
@@ -29,7 +29,7 @@ echo "Building GUI version of VeraCrypt for RPM using wxWidgets static libraries
# This will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildGui
-# To build wxWidgets using GTK-2
+# To build wxWidgets using native GTK version
make WXSTATIC=1 wxbuild || exit 1
ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64
make WXSTATIC=1 clean || exit 1
@@ -50,7 +50,7 @@ echo "Building console version of VeraCrypt for RPM using wxWidgets static libra
# This will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
-# To build wxWidgets using GTK-2
+# To build wxWidgets using native GTK version
make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64
make WXSTATIC=1 NOGUI=1 clean || exit 1
@@ -70,8 +70,8 @@ echo "Creating VeraCrypt RPM packages "
mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI
mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console
-# wxWidgets was built using GTK-2
-cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=FALSE -DNOGUI=FALSE || exit 1
+# wxWidgets was built using native GTK version
+cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DNOGUI=FALSE || exit 1
cpack --config $PARENTDIR/VeraCrypt_Packaging/GUI/CPackConfig.cmake || exit 1
-cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=FALSE -DNOGUI=TRUE || exit 1
+cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DNOGUI=TRUE || exit 1
cpack --config $PARENTDIR/VeraCrypt_Packaging/Console/CPackConfig.cmake|| exit 1
diff --git a/src/Build/build_cmake_rpm_gtk2.sh b/src/Build/build_cmake_rpm.sh
index 3f33cc1c..938bf40f 100644
--- a/src/Build/build_cmake_rpm_gtk2.sh
+++ b/src/Build/build_cmake_rpm.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2013-2022 IDRIX
+# Copyright (c) 2013-2024 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.
@@ -18,8 +18,8 @@ export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..")
# Directory where the VeraCrypt has been checked out
export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..")
-# The sources of wxWidgets 3.2.2.1 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1
+# The sources of wxWidgets 3.2.5 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5
echo "Using wxWidgets sources in $WX_ROOT"
cd $SOURCEPATH
@@ -29,7 +29,7 @@ echo "Building GUI version of VeraCrypt for RPM using wxWidgets static libraries
# This will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildGui
-# To build wxWidgets using GTK-2
+# To build wxWidgets using native GTK version
make WXSTATIC=1 wxbuild || exit 1
make WXSTATIC=1 clean || exit 1
make WXSTATIC=1 || exit 1
@@ -49,7 +49,7 @@ echo "Building console version of VeraCrypt for RPM using wxWidgets static libra
# This will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
-# To build wxWidgets using GTK-2
+# To build wxWidgets using native GTK version
make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
make WXSTATIC=1 NOGUI=1 clean || exit 1
make WXSTATIC=1 NOGUI=1 || exit 1
@@ -68,8 +68,8 @@ echo "Creating VeraCrypt RPM packages "
mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI
mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console
-# wxWidgets was built using GTK-2
-cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=FALSE -DNOGUI=FALSE || exit 1
+# wxWidgets was built using native GTK version
+cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DNOGUI=FALSE || exit 1
cpack --config $PARENTDIR/VeraCrypt_Packaging/GUI/CPackConfig.cmake || exit 1
-cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=FALSE -DNOGUI=TRUE || exit 1
+cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DNOGUI=TRUE || exit 1
cpack --config $PARENTDIR/VeraCrypt_Packaging/Console/CPackConfig.cmake || exit 1
diff --git a/src/Build/build_cmake_rpm_gtk3.sh b/src/Build/build_cmake_rpm_gtk3.sh
deleted file mode 100644
index 72556dcf..00000000
--- a/src/Build/build_cmake_rpm_gtk3.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2013-2022 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.
-#
-
-# Errors should cause script to exit
-set -e
-
-# Absolute path to this script
-export SCRIPT=$(readlink -f "$0")
-# Absolute path this script is in
-export SCRIPTPATH=$(dirname "$SCRIPT")
-# Source directory which contains the Makefile
-export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..")
-# Directory where the VeraCrypt has been checked out
-export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..")
-
-# The sources of wxWidgets 3.2.2.1 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1
-echo "Using wxWidgets sources in $WX_ROOT"
-
-cd $SOURCEPATH
-
-echo "Building GUI version of VeraCrypt for RPM using wxWidgets static libraries"
-
-# This will be the temporary wxWidgets directory
-export WX_BUILD_DIR=$PARENTDIR/wxBuildGui
-
-# To build wxWidgets using GTK-3
-make WXSTATIC=1 WITHGTK3=1 wxbuild || exit 1
-make WXSTATIC=1 clean || exit 1
-make WXSTATIC=1 || exit 1
-make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1
-
-# Uncomment below and comment lines above to reuse existing wxWidgets build
-# make WXSTATIC=1 clean || exit 1
-# make WXSTATIC=1 || exit 1
-# make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1
-
-echo "Building console version of VeraCrypt for RPM using wxWidgets static libraries"
-
-# This is to avoid " Error: Unable to initialize GTK+, is DISPLAY set properly?"
-# when building over SSH without X11 Forwarding
-# export DISPLAY=:0.0
-
-# This will be the temporary wxWidgets directory
-export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
-
-# To build wxWidgets using GTK-3
-make WXSTATIC=1 WITHGTK3=1 NOGUI=1 wxbuild || exit 1
-make WXSTATIC=1 NOGUI=1 clean || exit 1
-make WXSTATIC=1 NOGUI=1 || exit 1
-make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1
-
-# Uncomment below and comment lines above to reuse existing wxWidgets build
-# make WXSTATIC=1 NOGUI=1 clean || exit 1
-# make WXSTATIC=1 NOGUI=1 || exit 1
-# make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1
-
-echo "Creating VeraCrypt RPM packages "
-
-# -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack RPM
-# -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack RPM
-
-mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI
-mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console
-
-# wxWidgets was built using GTK-3
-cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=TRUE -DNOGUI=FALSE || exit 1
-cpack --config $PARENTDIR/VeraCrypt_Packaging/GUI/CPackConfig.cmake || exit 1
-cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=TRUE -DNOGUI=TRUE || exit 1
-cpack --config $PARENTDIR/VeraCrypt_Packaging/Console/CPackConfig.cmake|| exit 1
diff --git a/src/Build/build_veracrypt_freebsd.sh b/src/Build/build_veracrypt_freebsd.sh
index 176c8499..fe7f1f84 100755
--- a/src/Build/build_veracrypt_freebsd.sh
+++ b/src/Build/build_veracrypt_freebsd.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2013-2022 IDRIX
+# Copyright (c) 2013-2024 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.
@@ -21,8 +21,8 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi
-# the sources of wxWidgets 3.2.2.1 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1
+# the sources of wxWidgets 3.2.5 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5
echo "Using wxWidgets sources in $WX_ROOT"
cd $SOURCEPATH
diff --git a/src/Build/build_veracrypt_linux.sh b/src/Build/build_veracrypt_linux.sh
index fa928556..f8c8c325 100755
--- a/src/Build/build_veracrypt_linux.sh
+++ b/src/Build/build_veracrypt_linux.sh
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013-2022 IDRIX
+# Copyright (c) 2013-2024 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.
@@ -20,8 +20,8 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi
-# the sources of wxWidgets 3.2.2.1 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1
+# the sources of wxWidgets 3.2.5 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5
echo "Using wxWidgets sources in $WX_ROOT"
cd $SOURCEPATH
diff --git a/src/Build/build_veracrypt_linux_gtk3.sh b/src/Build/build_veracrypt_linux_gtk3.sh
deleted file mode 100644
index bae6a856..00000000
--- a/src/Build/build_veracrypt_linux_gtk3.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Copyright (c) 2013-2022 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.2.2.1 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1
-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
-
-make WXSTATIC=1 WITHGTK3=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package
-
-# Uncomment below and comment line above to reuse existing wxWidgets build
-#make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package
-
-echo "Building console version of VeraCrypt"
-
-# this will be the temporary wxWidgets directory
-export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
-
-make WXSTATIC=1 WITHGTK3=1 NOGUI=1 wxbuild && make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package
-
-# Uncomment below and comment line above to reuse existing wxWidgets build
-#make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package
diff --git a/src/Build/build_veracrypt_linux_no_sse2.sh b/src/Build/build_veracrypt_linux_no_sse2.sh
index f68641b9..5f29dc49 100755
--- a/src/Build/build_veracrypt_linux_no_sse2.sh
+++ b/src/Build/build_veracrypt_linux_no_sse2.sh
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013-2022 IDRIX
+# Copyright (c) 2013-2024 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.
@@ -20,8 +20,8 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi
-# the sources of wxWidgets 3.2.2.1 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1
+# the sources of wxWidgets 3.2.5 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5
echo "Using wxWidgets sources in $WX_ROOT"
cd $SOURCEPATH
diff --git a/src/Common/SCard.cpp b/src/Common/SCard.cpp
index 9f8d1145..edd315f6 100644
--- a/src/Common/SCard.cpp
+++ b/src/Common/SCard.cpp
@@ -6,7 +6,7 @@ namespace VeraCrypt
{
SCardManager SCard::manager;
- SCard::SCard() : m_reader(NULL)
+ SCard::SCard()
{
}
diff --git a/src/Common/SCardLoader.cpp b/src/Common/SCardLoader.cpp
index 16026e62..24486002 100644
--- a/src/Common/SCardLoader.cpp
+++ b/src/Common/SCardLoader.cpp
@@ -320,7 +320,7 @@ namespace VeraCrypt
return scardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen);
}
- LONG SCardLoader::SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE rgReaderStates, DWORD cReaders)
+ LONG SCardLoader::SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, SCARD_READERSTATE* rgReaderStates, DWORD cReaders)
{
Initialize();
@@ -399,4 +399,4 @@ namespace VeraCrypt
return scardSetAttrib(hCard, dwAttrId, pbAttr, cbAttrLen);
}
-} \ No newline at end of file
+}
diff --git a/src/Common/SCardLoader.h b/src/Common/SCardLoader.h
index a7243d82..af0758ed 100644
--- a/src/Common/SCardLoader.h
+++ b/src/Common/SCardLoader.h
@@ -13,8 +13,6 @@
#include <PCSC/winscard.h>
#include <PCSC/wintypes.h>
#include "reader.h"
-typedef LPSCARD_READERSTATE_A LPSCARD_READERSTATE;
-using VeraCrypt::uint8;
#define BOOL int
#else
#undef BOOL
@@ -22,7 +20,6 @@ using VeraCrypt::uint8;
#include <winscard.h>
#include <wintypes.h>
#include <reader.h>
-using VeraCrypt::uint8;
#define BOOL int
#endif
#endif
@@ -48,7 +45,7 @@ namespace VeraCrypt
typedef LONG (SCARD_CALL_SPEC *SCardBeginTransactionPtr)(SCARDHANDLE hCard);
typedef LONG (SCARD_CALL_SPEC *SCardEndTransactionPtr)(SCARDHANDLE hCard, DWORD dwDisposition);
typedef LONG (SCARD_CALL_SPEC *SCardStatusPtr)(SCARDHANDLE hCard, LPTSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, BYTE* pbAtr, LPDWORD pcbAtrLen);
- typedef LONG (SCARD_CALL_SPEC *SCardGetStatusChangePtr)(SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE rgReaderStates, DWORD cReaders);
+ typedef LONG (SCARD_CALL_SPEC *SCardGetStatusChangePtr)(SCARDCONTEXT hContext, DWORD dwTimeout, SCARD_READERSTATE* rgReaderStates, DWORD cReaders);
typedef LONG (SCARD_CALL_SPEC *SCardControlPtr)(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, DWORD cbSendLength, LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned);
typedef LONG (SCARD_CALL_SPEC *SCardTransmitPtr)(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, const BYTE* pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, BYTE* pbRecvBuffer, LPDWORD pcbRecvLength);
typedef LONG (SCARD_CALL_SPEC *SCardListReaderGroupsPtr)(SCARDCONTEXT hContext, LPTSTR mszGroups, LPDWORD pcchGroups);
@@ -111,7 +108,7 @@ namespace VeraCrypt
static LONG SCardBeginTransaction(SCARDHANDLE hCard);
static LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);
static LONG SCardStatus(SCARDHANDLE hCard, LPTSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, BYTE* pbAtr, LPDWORD pcbAtrLen);
- static LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE rgReaderStates, DWORD cReaders);
+ static LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, SCARD_READERSTATE* rgReaderStates, DWORD cReaders);
static LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, DWORD cbSendLength, LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned);
static LONG SCardTransmit(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, const BYTE* pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, BYTE* pbRecvBuffer, LPDWORD pcbRecvLength);
static LONG SCardListReaderGroups(SCARDCONTEXT hContext, LPTSTR mszGroups, LPDWORD pcchGroups);
@@ -122,4 +119,4 @@ namespace VeraCrypt
};
};
-#endif // TC_HEADER_Common_SCardLoader \ No newline at end of file
+#endif // TC_HEADER_Common_SCardLoader
diff --git a/src/Common/SCardReader.cpp b/src/Common/SCardReader.cpp
index de269ce6..6c5f654a 100644
--- a/src/Common/SCardReader.cpp
+++ b/src/Common/SCardReader.cpp
@@ -17,7 +17,7 @@ namespace VeraCrypt
}
else
{
- m_scardLoader = NULL;
+ m_scardLoader.reset();
m_hSCReaderContext = 0;
}
m_hCard = hCard;
@@ -84,7 +84,7 @@ namespace VeraCrypt
void SCardReader::Clear(void)
{
m_szSCReaderName = L"";
- m_scardLoader = NULL;
+ m_scardLoader.reset();
m_hSCReaderContext = 0;
m_hCard = 0;
m_dwProtocol = 0;
diff --git a/src/Common/TLVParser.cpp b/src/Common/TLVParser.cpp
index 1e51739c..5ddf37e5 100644
--- a/src/Common/TLVParser.cpp
+++ b/src/Common/TLVParser.cpp
@@ -169,7 +169,7 @@ namespace VeraCrypt
shared_ptr<TLVNode> TLVParser::TLV_Find(shared_ptr<TLVNode> node, uint16 tag)
{
size_t i = 0;
- shared_ptr<TLVNode> tmpnode = NULL;
+ shared_ptr<TLVNode> tmpnode;
if (node->Tag == tag)
{
return node;
@@ -177,11 +177,11 @@ namespace VeraCrypt
for (i = 0; i < node->Subs->size(); i++)
{
tmpnode = TLV_Find(node->Subs->at(i),tag);
- if (tmpnode != NULL)
+ if (tmpnode)
{
return tmpnode;
}
}
- return NULL;
+ return shared_ptr<TLVNode>();
}
-} \ No newline at end of file
+}
diff --git a/src/Main/Forms/PreferencesDialog.cpp b/src/Main/Forms/PreferencesDialog.cpp
index c4d5140f..afc2871f 100644
--- a/src/Main/Forms/PreferencesDialog.cpp
+++ b/src/Main/Forms/PreferencesDialog.cpp
@@ -82,6 +82,51 @@ namespace VeraCrypt
LanguageListBox->Append("System default");
LanguageListBox->Append("English");
+ langEntries = {
+ {"system", L"System default"},
+ {"ar", L"العربية"},
+ {"be", L"Беларуская"},
+ {"bg", L"Български"},
+ {"ca", L"Català"},
+ {"co", L"Corsu"},
+ {"cs", L"Čeština"},
+ {"da", L"Dansk"},
+ {"de", L"Deutsch"},
+ {"el", L"Ελληνικά"},
+ {"en", L"English"},
+ {"es", L"Español"},
+ {"et", L"Eesti"},
+ {"eu", L"Euskara"},
+ {"fa", L"فارسي"},
+ {"fi", L"Suomi"},
+ {"fr", L"Français"},
+ {"he", L"עברית"},
+ {"hu", L"Magyar"},
+ {"id", L"Bahasa Indonesia"},
+ {"it", L"Italiano"},
+ {"ja", L"日本語"},
+ {"ka", L"ქართული"},
+ {"ko", L"한국어"},
+ {"lv", L"Latviešu"},
+ {"nl", L"Nederlands"},
+ {"nn", L"Norsk Nynorsk"},
+ {"pl", L"Polski"},
+ {"ro", L"Română"},
+ {"ru", L"Русский"},
+ {"pt-br", L"Português-Brasil"},
+ {"sk", L"Slovenčina"},
+ {"sl", L"Slovenščina"},
+ {"sv", L"Svenska"},
+ {"th", L"ภาษาไทย"},
+ {"tr", L"Türkçe"},
+ {"uk", L"Українська"},
+ {"uz", L"Ўзбекча"},
+ {"vi", L"Tiếng Việt"},
+ {"zh-cn", L"简体中文"},
+ {"zh-hk", L"繁體中文(香港)"},
+ {"zh-tw", L"繁體中文"}
+ };
+
if (wxDir::Exists(languagesFolder.GetName())) {
size_t langCount;
langCount = wxDir::GetAllFiles(languagesFolder.GetName(), &langArray, wxEmptyString, wxDIR_FILES);
@@ -435,11 +480,11 @@ namespace VeraCrypt
if (LanguageListBox->GetSelection() != wxNOT_FOUND) {
wxString langToFind = LanguageListBox->GetString(LanguageListBox->GetSelection());
- for (const auto &each: langEntries) {
- if (each.second == langToFind) {
- Preferences.Language = each.first;
+ for (map<wxString, std::wstring>::const_iterator each = langEntries.begin(); each != langEntries.end(); ++each) {
+ if (each->second == langToFind) {
+ Preferences.Language = each->first;
#ifdef DEBUG
- cout << "Lang set to: " << each.first << endl;
+ cout << "Lang set to: " << each->first << endl;
#endif
}
}
diff --git a/src/Main/Forms/PreferencesDialog.h b/src/Main/Forms/PreferencesDialog.h
index 50e8489e..5e7f7e71 100644
--- a/src/Main/Forms/PreferencesDialog.h
+++ b/src/Main/Forms/PreferencesDialog.h
@@ -60,50 +60,7 @@ namespace VeraCrypt
UserPreferences Preferences;
bool RestoreValidatorBell;
HotkeyList UnregisteredHotkeys;
- map<wxString, wstring> langEntries = {
- {"system", L"System default"},
- {"ar", L"العربية"},
- {"be", L"Беларуская"},
- {"bg", L"Български"},
- {"ca", L"Català"},
- {"co", L"Corsu"},
- {"cs", L"Čeština"},
- {"da", L"Dansk"},
- {"de", L"Deutsch"},
- {"el", L"Ελληνικά"},
- {"en", L"English"},
- {"es", L"Español"},
- {"et", L"Eesti"},
- {"eu", L"Euskara"},
- {"fa", L"فارسي"},
- {"fi", L"Suomi"},
- {"fr", L"Français"},
- {"he", L"עברית"},
- {"hu", L"Magyar"},
- {"id", L"Bahasa Indonesia"},
- {"it", L"Italiano"},
- {"ja", L"日本語"},
- {"ka", L"ქართული"},
- {"ko", L"한국어"},
- {"lv", L"Latviešu"},
- {"nl", L"Nederlands"},
- {"nn", L"Norsk Nynorsk"},
- {"pl", L"Polski"},
- {"ro", L"Română"},
- {"ru", L"Русский"},
- {"pt-br", L"Português-Brasil"},
- {"sk", L"Slovenčina"},
- {"sl", L"Slovenščina"},
- {"sv", L"Svenska"},
- {"th", L"ภาษาไทย"},
- {"tr", L"Türkçe"},
- {"uk", L"Українська"},
- {"uz", L"Ўзбекча"},
- {"vi", L"Tiếng Việt"},
- {"zh-cn", L"简体中文"},
- {"zh-hk", L"繁體中文(香港)"},
- {"zh-tw", L"繁體中文"}
- };
+ map<wxString, wstring> langEntries;
};
}
diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp
index 3f09e39f..311738ca 100644
--- a/src/Main/Forms/VolumeCreationWizard.cpp
+++ b/src/Main/Forms/VolumeCreationWizard.cpp
@@ -37,6 +37,19 @@
namespace VeraCrypt
{
+ class OpenOuterVolumeFunctor : public Functor
+ {
+ public:
+ OpenOuterVolumeFunctor (const DirectoryPath &outerVolumeMountPoint) : OuterVolumeMountPoint (outerVolumeMountPoint) { }
+
+ virtual void operator() ()
+ {
+ Gui->OpenExplorerWindow (OuterVolumeMountPoint);
+ }
+
+ DirectoryPath OuterVolumeMountPoint;
+ };
+
#ifdef TC_MACOSX
bool VolumeCreationWizard::ProcessEvent(wxEvent& event)
@@ -338,18 +351,6 @@ namespace VeraCrypt
return new InfoWizardPage (GetPageParent());
}
- struct OpenOuterVolumeFunctor : public Functor
- {
- OpenOuterVolumeFunctor (const DirectoryPath &outerVolumeMountPoint) : OuterVolumeMountPoint (outerVolumeMountPoint) { }
-
- virtual void operator() ()
- {
- Gui->OpenExplorerWindow (OuterVolumeMountPoint);
- }
-
- DirectoryPath OuterVolumeMountPoint;
- };
-
InfoWizardPage *page = new InfoWizardPage (GetPageParent(), LangString["LINUX_OPEN_OUTER_VOL"],
shared_ptr <Functor> (new OpenOuterVolumeFunctor (MountedOuterVolume->MountPoint)));
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp
index af2db217..0fd756a3 100644
--- a/src/Main/GraphicUserInterface.cpp
+++ b/src/Main/GraphicUserInterface.cpp
@@ -37,6 +37,33 @@
namespace VeraCrypt
{
+ class AdminPasswordRequestHandler : public GetStringFunctor
+ {
+ public:
+ virtual void operator() (string &passwordStr)
+ {
+
+ wxString sValue;
+ if (Gui->GetWaitDialog())
+ {
+ Gui->GetWaitDialog()->RequestAdminPassword(sValue);
+ if (sValue.IsEmpty())
+ throw UserAbort (SRC_POS);
+ }
+ else
+ {
+ wxPasswordEntryDialog dialog (Gui->GetActiveWindow(), LangString["LINUX_ADMIN_PW_QUERY"], LangString["LINUX_ADMIN_PW_QUERY_TITLE"]);
+ if (dialog.ShowModal() != wxID_OK)
+ throw UserAbort (SRC_POS);
+ sValue = dialog.GetValue();
+ }
+ wstring wPassword (sValue); // A copy of the password is created here by wxWidgets, which cannot be erased
+ finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); });
+
+ StringConverter::ToSingle (wPassword, passwordStr);
+ }
+ };
+
#ifdef TC_MACOSX
int GraphicUserInterface::g_customIdCmdV = 0;
int GraphicUserInterface::g_customIdCmdA = 0;
@@ -452,32 +479,6 @@ namespace VeraCrypt
shared_ptr <GetStringFunctor> GraphicUserInterface::GetAdminPasswordRequestHandler ()
{
- struct AdminPasswordRequestHandler : public GetStringFunctor
- {
- virtual void operator() (string &passwordStr)
- {
-
- wxString sValue;
- if (Gui->GetWaitDialog())
- {
- Gui->GetWaitDialog()->RequestAdminPassword(sValue);
- if (sValue.IsEmpty())
- throw UserAbort (SRC_POS);
- }
- else
- {
- wxPasswordEntryDialog dialog (Gui->GetActiveWindow(), LangString["LINUX_ADMIN_PW_QUERY"], LangString["LINUX_ADMIN_PW_QUERY_TITLE"]);
- if (dialog.ShowModal() != wxID_OK)
- throw UserAbort (SRC_POS);
- sValue = dialog.GetValue();
- }
- wstring wPassword (sValue); // A copy of the password is created here by wxWidgets, which cannot be erased
- finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); });
-
- StringConverter::ToSingle (wPassword, passwordStr);
- }
- };
-
return shared_ptr <GetStringFunctor> (new AdminPasswordRequestHandler);
}
diff --git a/src/Main/Main.make b/src/Main/Main.make
index a1c3519a..b77d4936 100755
--- a/src/Main/Main.make
+++ b/src/Main/Main.make
@@ -129,11 +129,19 @@ endif
ifeq "$(origin NOSSE2)" "command line"
INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH)_legacy.sh
+ifeq ($(and $(filter gui,$(INSTALLER_TYPE)),$(filter 2,$(GTK_VERSION))),1)
+INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-gtk2-gui-$(CPU_ARCH)-legacy
+else
INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)-legacy
+endif
else
INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH).sh
+ifeq ($(and $(filter gui,$(INSTALLER_TYPE)),$(filter 2,$(GTK_VERSION))),1)
+INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-gtk2-gui-$(CPU_ARCH)
+else
INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)
endif
+endif
endif
#-----------------------------------
@@ -152,7 +160,11 @@ PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_$(PLATFORM_ARCH).tar.gz
endif
INTERNAL_INSTALLER_NAME := veracrypt_install_f$(SYSTEMNAME)_$(INSTALLER_TYPE)_$(CPU_ARCH).sh
+ifeq ($(and $(filter gui,$(INSTALLER_TYPE)),$(filter 2,$(GTK_VERSION))),1)
+INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-gtk2-gui-$(CPU_ARCH)
+else
INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)
+endif
endif
#-----------------------------------
diff --git a/src/Main/StringFormatter.h b/src/Main/StringFormatter.h
index 97c39ae2..d7f64dd0 100644
--- a/src/Main/StringFormatter.h
+++ b/src/Main/StringFormatter.h
@@ -52,7 +52,10 @@ namespace VeraCrypt
StringFormatter (const wxString &format, StringFormatterArg arg0 = StringFormatterArg(), StringFormatterArg arg1 = StringFormatterArg(), StringFormatterArg arg2 = StringFormatterArg(), StringFormatterArg arg3 = StringFormatterArg(), StringFormatterArg arg4 = StringFormatterArg(), StringFormatterArg arg5 = StringFormatterArg(), StringFormatterArg arg6 = StringFormatterArg(), StringFormatterArg arg7 = StringFormatterArg(), StringFormatterArg arg8 = StringFormatterArg(), StringFormatterArg arg9 = StringFormatterArg());
virtual ~StringFormatter ();
- explicit operator wstring () const { return wstring (FormattedString); }
+#if (__cplusplus >= 201103L)
+ explicit
+#endif
+ operator wstring () const { return wstring (FormattedString); }
operator wxString () const { return FormattedString; }
operator StringFormatterArg () const { return FormattedString; }
diff --git a/src/Main/TextUserInterface.cpp b/src/Main/TextUserInterface.cpp
index 3346ee3e..46559dfa 100644
--- a/src/Main/TextUserInterface.cpp
+++ b/src/Main/TextUserInterface.cpp
@@ -30,6 +30,27 @@
namespace VeraCrypt
{
+ class AdminPasswordRequestHandler : public GetStringFunctor
+ {
+ public:
+ AdminPasswordRequestHandler (TextUserInterface *userInterface) : UI (userInterface) { }
+ virtual void operator() (string &passwordStr)
+ {
+ UI->ShowString (_("Enter your user password or administrator password: "));
+
+ TextUserInterface::SetTerminalEcho (false);
+ finally_do ({ TextUserInterface::SetTerminalEcho (true); });
+
+ wstring wPassword (UI->ReadInputStreamLine());
+ finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); });
+
+ UI->ShowString (L"\n");
+
+ StringConverter::ToSingle (wPassword, passwordStr);
+ }
+ TextUserInterface *UI;
+ };
+
TextUserInterface::TextUserInterface ()
{
#ifdef TC_UNIX
@@ -1095,26 +1116,6 @@ namespace VeraCrypt
shared_ptr <GetStringFunctor> TextUserInterface::GetAdminPasswordRequestHandler ()
{
- struct AdminPasswordRequestHandler : public GetStringFunctor
- {
- AdminPasswordRequestHandler (TextUserInterface *userInterface) : UI (userInterface) { }
- virtual void operator() (string &passwordStr)
- {
- UI->ShowString (_("Enter your user password or administrator password: "));
-
- TextUserInterface::SetTerminalEcho (false);
- finally_do ({ TextUserInterface::SetTerminalEcho (true); });
-
- wstring wPassword (UI->ReadInputStreamLine());
- finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); });
-
- UI->ShowString (L"\n");
-
- StringConverter::ToSingle (wPassword, passwordStr);
- }
- TextUserInterface *UI;
- };
-
return shared_ptr <GetStringFunctor> (new AdminPasswordRequestHandler (this));
}
diff --git a/src/Main/TextUserInterface.h b/src/Main/TextUserInterface.h
index becb1d59..44494f32 100644
--- a/src/Main/TextUserInterface.h
+++ b/src/Main/TextUserInterface.h
@@ -19,9 +19,11 @@
namespace VeraCrypt
{
+ class AdminPasswordRequestHandler;
class TextUserInterface : public UserInterface
{
public:
+ friend class AdminPasswordRequestHandler;
TextUserInterface ();
virtual ~TextUserInterface ();
diff --git a/src/Main/UserInterface.cpp b/src/Main/UserInterface.cpp
index 09b1fcdd..0f11ec0b 100644
--- a/src/Main/UserInterface.cpp
+++ b/src/Main/UserInterface.cpp
@@ -32,6 +32,15 @@
namespace VeraCrypt
{
+ class AdminPasswordRequestHandler : public GetStringFunctor
+ {
+ public:
+ virtual void operator() (string &str)
+ {
+ throw ElevationFailed (SRC_POS, "sudo", 1, "");
+ }
+ };
+
UserInterface::UserInterface ()
{
}
@@ -558,14 +567,6 @@ namespace VeraCrypt
}
else
{
- struct AdminPasswordRequestHandler : public GetStringFunctor
- {
- virtual void operator() (string &str)
- {
- throw ElevationFailed (SRC_POS, "sudo", 1, "");
- }
- };
-
Core->SetAdminPasswordCallback (shared_ptr <GetStringFunctor> (new AdminPasswordRequestHandler));
}
diff --git a/src/Makefile b/src/Makefile
index e6bdd44d..65d9a4ef 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -23,7 +23,6 @@
# SSSE3: Enable SSSE3 support in compiler
# SSE41: Enable SSE4.1 support in compiler
# NOSSE2: Disable SEE2 support in compiler
-# WITHGTK3: Build wxWidgets against GTK3
# WOLFCRYPT: Build with wolfCrypt as crypto provider (see Crypto/wolfCrypt.md)
# WITHFUSET: Build with FUSE-T support on macOS instead of MacFUSE
@@ -106,16 +105,6 @@ ifeq "$(origin WXSTATIC)" "command line"
endif
endif
-ifeq "$(origin INDICATOR)" "command line"
- ifneq (,$(findstring gtk3,$(shell $(WX_CONFIG) --selected-config)))
- INDICATOR_LIBRARY=ayatana-appindicator3-0.1
- else
- INDICATOR_LIBRARY=ayatana-appindicator-0.1
- endif
- export AYATANA_LIBS += $(shell $(PKG_CONFIG) --libs $(INDICATOR_LIBRARY))
- C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags $(INDICATOR_LIBRARY)) -DHAVE_INDICATORS
-endif
-
#------ Release configuration ------
ifeq "$(TC_BUILD_CONFIG)" "Release"
@@ -159,6 +148,7 @@ export ENABLE_WOLFCRYPT ?= 0
export GCC_GTEQ_440 := 0
export GCC_GTEQ_430 := 0
+export GTK_VERSION := 0
ARCH ?= $(shell uname -m)
@@ -211,7 +201,7 @@ ifeq "$(shell uname -s)" "Linux"
C_CXX_FLAGS += -DTC_UNIX -DTC_LINUX
# PCSC
- C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite)
+ C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite)
# Extract the major and minor version numbers of GCC in a combined format for easy comparison
GCC_VERSION := $(shell $(CC) -dumpversion | awk -F. '{printf "%d%02d", $$1, $$2}')
@@ -288,13 +278,6 @@ ifeq "$(shell uname -s)" "Linux"
WXCONFIG_CFLAGS += -mno-sse2
WXCONFIG_CXXFLAGS += -mno-sse2
endif
-
- ifeq "$(origin WITHGTK3)" "command line"
- WX_CONFIGURE_FLAGS += --with-gtk=3
- else
- WX_CONFIGURE_FLAGS += --with-gtk=2
- endif
-
endif
#------ Mac OS X configuration ------
@@ -426,7 +409,7 @@ ifeq "$(shell uname -s)" "FreeBSD"
C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_FREEBSD
# PCSC
- C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite)
+ C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite)
CC := cc
CXX := c++
@@ -487,7 +470,7 @@ ifeq "$(shell uname -s)" "OpenBSD"
C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_OPENBSD
# PCSC
- C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite)
+ C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite)
CC := cc
CXX := c++
@@ -514,10 +497,29 @@ ifeq "$(shell uname -s)" "SunOS"
WX_CONFIGURE_FLAGS += --with-gtk
# PCSC
- C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite)
+ C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite)
endif
+ifneq (,$(filter Linux FreeBSD OpenBSD,$(PLATFORM)))
+ # Determine GTK version
+ GTK_VERSION := $(shell $(PKG_CONFIG) --modversion gtk+-3.0 2>/dev/null | grep -o '^3' || echo 2)
+ ifeq ($(GTK_VERSION),3)
+ WX_CONFIGURE_FLAGS += --with-gtk=3
+ else
+ WX_CONFIGURE_FLAGS += --with-gtk=2
+ endif
+
+ ifeq "$(origin INDICATOR)" "command line"
+ ifeq ($(GTK_VERSION),3)
+ INDICATOR_LIBRARY=ayatana-appindicator3-0.1
+ else
+ INDICATOR_LIBRARY=ayatana-appindicator-0.1
+ endif
+ export AYATANA_LIBS += $(shell $(PKG_CONFIG) --libs $(INDICATOR_LIBRARY))
+ C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags $(INDICATOR_LIBRARY)) -DHAVE_INDICATORS
+ endif
+endif
#------ Common configuration ------
@@ -547,7 +549,7 @@ WX_CONFIGURE_FLAGS += --disable-protocol --disable-protocols --disable-url --dis
ifneq (,$(filter Linux FreeBSD,$(PLATFORM)))
WX_CONFIGURE_FLAGS += --disable-tooltips
-ifneq "$(origin WITHGTK3)" "command line"
+ifneq ($(GTK_VERSION),3)
WX_CONFIGURE_FLAGS += --disable-graphics_ctx
endif
else
diff --git a/src/Readme.txt b/src/Readme.txt
index cab7db83..9e6c794f 100644
--- a/src/Readme.txt
+++ b/src/Readme.txt
@@ -232,7 +232,7 @@ Copyright Information
---------------------
This software as a whole:
-Copyright (c) 2013-2024 IDRIX. All rights reserved.
+Copyright (c) 2013-2024 IDRIX. All rights reserved.
Portions of this software:
Copyright (c) 2013-2024 IDRIX. All rights reserved.