VeraCrypt
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2024-07-06 13:56:29 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2024-07-06 13:56:29 +0200
commitd8369c266f23fd7054a3a1e3d071cb5fadc27ecd (patch)
tree8843f8e2937eae8c918373110399d7c147bf507d
parent519b787914ebfc5cf31c2eab384b5f075a47138e (diff)
downloadVeraCrypt-d8369c266f23fd7054a3a1e3d071cb5fadc27ecd.tar.gz
VeraCrypt-d8369c266f23fd7054a3a1e3d071cb5fadc27ecd.zip
Linux: optimize Github workflow by caching wxBuildConsole and wxBuildGUI folders
We also modify build script to detect the presence of wxBuildConsole and wxBuildGUI folders and reuse them
-rw-r--r--.github/workflows/build-linux.yml52
-rwxr-xr-xsrc/Build/build_cmake_deb.sh7
-rw-r--r--src/Build/build_cmake_opensuse.sh32
-rw-r--r--src/Build/build_cmake_rpm.sh28
-rwxr-xr-xsrc/Build/build_veracrypt_freebsd.sh25
-rwxr-xr-xsrc/Build/build_veracrypt_linux.sh26
-rwxr-xr-xsrc/Build/build_veracrypt_linux_no_sse2.sh26
-rwxr-xr-xsrc/Build/build_veracrypt_macosx.sh14
-rw-r--r--src/COMReg/Release/CL.read.1.tlogbin0 -> 85022 bytes
-rw-r--r--src/COMReg/Release/CL.write.1.tlogbin0 -> 1752 bytes
-rw-r--r--src/COMReg/Release/COMReg.lastbuildstate2
-rw-r--r--src/COMReg/Release/COMReg.log39
-rw-r--r--src/COMReg/Release/COMReg.objbin0 -> 75342 bytes
-rw-r--r--src/COMReg/Release/COMReg.resbin0 -> 373372 bytes
-rw-r--r--src/COMReg/Release/COMReg.write.1.tlog0
-rw-r--r--src/COMReg/Release/Crc.objbin0 -> 49369 bytes
-rw-r--r--src/COMReg/Release/Dlgcode.objbin0 -> 1054928 bytes
-rw-r--r--src/COMReg/Release/SelfExtract.objbin0 -> 198058 bytes
-rw-r--r--src/COMReg/Release/VeraCryptCOMRegBase.Build.CppClean.log16
-rw-r--r--src/COMReg/Release/VeraCryptCOMRegBase.exebin0 -> 512512 bytes
-rw-r--r--src/COMReg/Release/VeraCryptCOMRegBase.exe.intermediate.manifest10
-rw-r--r--src/COMReg/Release/cl.command.1.tlogbin0 -> 3858 bytes
-rw-r--r--src/COMReg/Release/link-cvtres.read.1.tlog1
-rw-r--r--src/COMReg/Release/link-cvtres.write.1.tlog1
-rw-r--r--src/COMReg/Release/link.command.1.tlogbin0 -> 2312 bytes
-rw-r--r--src/COMReg/Release/link.read.1.tlogbin0 -> 5160 bytes
-rw-r--r--src/COMReg/Release/link.write.1.tlogbin0 -> 1036 bytes
-rw-r--r--src/COMReg/Release/mt.command.1.tlogbin0 -> 462 bytes
-rw-r--r--src/COMReg/Release/mt.read.1.tlogbin0 -> 708 bytes
-rw-r--r--src/COMReg/Release/mt.write.1.tlogbin0 -> 336 bytes
-rw-r--r--src/COMReg/Release/rc.command.1.tlogbin0 -> 488 bytes
-rw-r--r--src/COMReg/Release/rc.read.1.tlogbin0 -> 2598 bytes
-rw-r--r--src/COMReg/Release/rc.write.1.tlogbin0 -> 222 bytes
-rw-r--r--src/COMReg/Release/vc100.pdbbin0 -> 430080 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt COMReg.exebin0 -> 20392448 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt Format-arm64.exebin0 -> 3558912 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt Format-x64.exebin0 -> 6208512 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt Format.exebin0 -> 7697408 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt Portable.exebin0 -> 20204544 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt Setup.exebin0 -> 20392448 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt-arm64.exebin0 -> 3536896 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt-x64.exebin0 -> 6188032 bytes
-rw-r--r--src/Release/Setup Files/VeraCrypt.exebin0 -> 7643648 bytes
-rw-r--r--src/Release/Setup Files/VeraCryptCOMRegBase.exebin0 -> 512512 bytes
-rw-r--r--src/Release/Setup Files/VeraCryptExpander-arm64.exebin0 -> 3004416 bytes
-rw-r--r--src/Release/Setup Files/VeraCryptExpander-x64.exebin0 -> 5664256 bytes
-rw-r--r--src/Release/Setup Files/VeraCryptExpander.exebin0 -> 7226880 bytes
-rw-r--r--src/Release/Setup Files/VeraCryptSetup.dllbin0 -> 20168192 bytes
-rw-r--r--src/VeraCrypt.sdfbin0 -> 91443200 bytes
-rw-r--r--src/VeraCrypt.suobin0 -> 24576 bytes
-rw-r--r--src/ipch/crypto-57c110f3/crypto-be6a8ba7.ipchbin0 -> 37224448 bytes
-rw-r--r--src/ipch/mount-e667f7/veracrypt-87304586.ipchbin0 -> 78053376 bytes
-rw-r--r--src/ipch/mount-e667f7/veracrypt-b8a55284.ipchbin0 -> 78053376 bytes
53 files changed, 211 insertions, 68 deletions
diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml
index 4145835a..dddeb87b 100644
--- a/.github/workflows/build-linux.yml
+++ b/.github/workflows/build-linux.yml
@@ -57,20 +57,30 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- - name: Cache wxWidgets
+ - name: Generate cache key
+ id: cache-key
+ run: |
+ echo "cache_key=$(echo ${{ env.WXWIDGETS_VERSION }}-$(sha256sum src/Makefile | awk '{print $1}'))" >> $GITHUB_OUTPUT
+
+ - name: Cache wxBuildConsole
+ uses: actions/cache@v3
+ id: cache-wxbuildconsole
+ with:
+ path: /tmp/wxBuildConsole
+ key: wxBuildConsole-${{ steps.cache-key.outputs.cache_key }}
+
+ - name: Cache wxBuildGUI
uses: actions/cache@v3
- id: cache-wxwidgets
+ id: cache-wxbuildgui
with:
- path: /tmp/wxWidgets-${{ env.WXWIDGETS_VERSION }}
- key: wxWidgets-${{ env.WXWIDGETS_VERSION }}-${{ hashFiles('src/Build/build_cmake_deb.sh', 'src/Makefile') }}
- restore-keys: |
- wxWidgets-${{ env.WXWIDGETS_VERSION }}-
+ path: /tmp/wxBuildGUI
+ key: wxBuildGUI-${{ steps.cache-key.outputs.cache_key }}
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y wget tar libpcsclite-dev libfuse-dev yasm libgtk-3-dev libwxgtk3.0-gtk3-dev libayatana-appindicator3-dev cmake debhelper
- - name: Download and extract wxWidgets to /tmp
- if: steps.cache-wxwidgets.outputs.cache-hit != 'true'
+ - name: Download and extract wxWidgets to /tmp if build folders are missing
+ if: steps.cache-wxbuildconsole.outputs.cache-hit != 'true' || steps.cache-wxbuildgui.outputs.cache-hit != 'true'
run: |
wget https://github.com/wxWidgets/wxWidgets/releases/download/v${{ env.WXWIDGETS_VERSION }}/wxWidgets-${{ env.WXWIDGETS_VERSION }}.tar.bz2 -O /tmp/wxWidgets-${{ env.WXWIDGETS_VERSION }}.tar.bz2
mkdir -p /tmp/wxWidgets-${{ env.WXWIDGETS_VERSION }}
@@ -165,4 +175,28 @@ jobs:
exit 1
fi
sudo veracrypt -d
- sudo apt remove -y veracrypt
+ sudo apt remove -y veracrypt-console
+
+ - name: Cleanup old caches
+ uses: actions/github-script@v6
+ if: always()
+ with:
+ script: |
+ const caches = await github.rest.actions.getActionsCacheList({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ })
+ for (const cache of caches.data.actions_caches) {
+ if (cache.key.startsWith('wxBuildConsole-') || cache.key.startsWith('wxBuildGUI-')) {
+ if (cache.key !== `wxBuildConsole-${{ steps.cache-key.outputs.cache_key }}` &&
+ cache.key !== `wxBuildGUI-${{ steps.cache-key.outputs.cache_key }}`) {
+ console.log(`Deleting cache with key: ${cache.key}`)
+ await github.rest.actions.deleteActionsCacheById({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ cache_id: cache.id,
+ })
+ }
+ }
+ }
+
diff --git a/src/Build/build_cmake_deb.sh b/src/Build/build_cmake_deb.sh
index 797b6d77..5aca3589 100755
--- a/src/Build/build_cmake_deb.sh
+++ b/src/Build/build_cmake_deb.sh
@@ -53,7 +53,12 @@ build_and_install() {
wxstatic_value=""
if [ "$wxstatic" = "WXSTATIC" ]; then
wxstatic_value="WXSTATIC=1"
- make $wxstatic_value $nogui wxbuild || exit 1
+ # Check if wx-config exists in WX_BUILD_DIR
+ if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+ else
+ make $wxstatic_value $nogui wxbuild || exit 1
+ fi
fi
indicator_value=""
diff --git a/src/Build/build_cmake_opensuse.sh b/src/Build/build_cmake_opensuse.sh
index 32c5a6cc..923238ad 100644
--- a/src/Build/build_cmake_opensuse.sh
+++ b/src/Build/build_cmake_opensuse.sh
@@ -41,18 +41,18 @@ 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 native GTK version
-make WXSTATIC=1 wxbuild || exit 1
-ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 wxbuild || exit 1
+ ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64
+fi
+
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?"
@@ -62,18 +62,18 @@ 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 native GTK version
-make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
-ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
+ ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64
+fi
+
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
diff --git a/src/Build/build_cmake_rpm.sh b/src/Build/build_cmake_rpm.sh
index 247c1e5e..f9f4bd5b 100644
--- a/src/Build/build_cmake_rpm.sh
+++ b/src/Build/build_cmake_rpm.sh
@@ -41,17 +41,17 @@ 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 native GTK version
-make WXSTATIC=1 wxbuild || exit 1
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 wxbuild || exit 1
+fi
+
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?"
@@ -61,17 +61,17 @@ 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 native GTK version
-make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
+fi
+
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
diff --git a/src/Build/build_veracrypt_freebsd.sh b/src/Build/build_veracrypt_freebsd.sh
index 00fbdd0a..d3acf92d 100755
--- a/src/Build/build_veracrypt_freebsd.sh
+++ b/src/Build/build_veracrypt_freebsd.sh
@@ -44,17 +44,28 @@ 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
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ gmake WXSTATIC=1 wxbuild || exit 1
+fi
-# Uncomment below and comment line above to reuse existing wxWidgets build
-#gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package
+gmake WXSTATIC=1 clean || exit 1
+gmake WXSTATIC=1 || exit 1
+gmake WXSTATIC=1 package || exit 1
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
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ gmake WXSTATIC=1 NOGUI=1 wxbuild || exit 1
+fi
+gmake WXSTATIC=1 NOGUI=1 clean || exit 1
+gmake WXSTATIC=1 NOGUI=1 || exit 1
+gmake WXSTATIC=1 NOGUI=1 package || exit 1
diff --git a/src/Build/build_veracrypt_linux.sh b/src/Build/build_veracrypt_linux.sh
index 7c226937..af00859c 100755
--- a/src/Build/build_veracrypt_linux.sh
+++ b/src/Build/build_veracrypt_linux.sh
@@ -43,17 +43,27 @@ echo "Building GUI version of VeraCrypt"
# this will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildGui
-make WXSTATIC=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
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 wxbuild || exit 1
+fi
+make WXSTATIC=1 clean || exit 1
+make WXSTATIC=1 || exit 1
+make WXSTATIC=1 package || exit 1
echo "Building console version of VeraCrypt"
# this will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
-make WXSTATIC=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
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
+fi
+make WXSTATIC=1 NOGUI=1 clean || exit 1
+make WXSTATIC=1 NOGUI=1 || exit 1
+make WXSTATIC=1 NOGUI=1 package || exit 1
diff --git a/src/Build/build_veracrypt_linux_no_sse2.sh b/src/Build/build_veracrypt_linux_no_sse2.sh
index 7162ecd4..e5e46252 100755
--- a/src/Build/build_veracrypt_linux_no_sse2.sh
+++ b/src/Build/build_veracrypt_linux_no_sse2.sh
@@ -43,17 +43,27 @@ echo "Building GUI version of VeraCrypt"
# this will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildGuiNoSSE2
-make WXSTATIC=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package
-
-# Uncomment below and comment line above to reuse existing wxWidgets build
-# make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 NOSSE2=1 wxbuild || exit 1
+fi
+make WXSTATIC=1 NOSSE2=1 clean || exit 1
+make WXSTATIC=1 NOSSE2=1 || exit 1
+make WXSTATIC=1 NOSSE2=1 package || exit 1
echo "Building console version of VeraCrypt"
# this will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildConsoleNoSSE2
-make WXSTATIC=1 NOGUI=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package
-
-# Uncomment below and comment line above to reuse existing wxWidgets build
-# make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=1 NOGUI=1 NOSSE2=1 wxbuild || exit 1
+fi
+make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean || exit 1
+make WXSTATIC=1 NOGUI=1 NOSSE2=1 || exit 1
+make WXSTATIC=1 NOGUI=1 NOSSE2=1 package || exit
diff --git a/src/Build/build_veracrypt_macosx.sh b/src/Build/build_veracrypt_macosx.sh
index 918a9ad1..0198bd37 100755
--- a/src/Build/build_veracrypt_macosx.sh
+++ b/src/Build/build_veracrypt_macosx.sh
@@ -82,8 +82,12 @@ echo "Using MacOSX SDK $VC_OSX_SDK with target set to $VC_OSX_TARGET"
cd $SOURCEPATH
echo "Building VeraCrypt"
-make WXSTATIC=FULL wxbuild && make WXSTATIC=FULL clean && make WXSTATIC=FULL && make WXSTATIC=FULL package
-
-# Uncomment below and comment line above to reuse existing wxWidgets build
-# make WXSTATIC=FULL clean && make WXSTATIC=FULL && make WXSTATIC=FULL package
-
+# Check if wx-config exists in WX_BUILD_DIR
+if [ -L "${WX_BUILD_DIR}/wx-config" ]; then
+ echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild."
+else
+ make WXSTATIC=FULL wxbuild || exit 1
+fi
+make WXSTATIC=FULL clean || exit 1
+make WXSTATIC=FULL || exit 1
+make WXSTATIC=FULL package || exit 1
diff --git a/src/COMReg/Release/CL.read.1.tlog b/src/COMReg/Release/CL.read.1.tlog
new file mode 100644
index 00000000..e728b1d4
--- /dev/null
+++ b/src/COMReg/Release/CL.read.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/CL.write.1.tlog b/src/COMReg/Release/CL.write.1.tlog
new file mode 100644
index 00000000..66cbff20
--- /dev/null
+++ b/src/COMReg/Release/CL.write.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/COMReg.lastbuildstate b/src/COMReg/Release/COMReg.lastbuildstate
new file mode 100644
index 00000000..cb1ffdb5
--- /dev/null
+++ b/src/COMReg/Release/COMReg.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100:false
+Release|Win32|C:\dev\prj\Github\VeraCrypt\src\|
diff --git a/src/COMReg/Release/COMReg.log b/src/COMReg/Release/COMReg.log
new file mode 100644
index 00000000..72121ac1
--- /dev/null
+++ b/src/COMReg/Release/COMReg.log
@@ -0,0 +1,39 @@
+Build started 6/12/2024 10:44:09 AM.
+ 1>Project "C:\dev\prj\Github\VeraCrypt\src\COMReg\COMReg.vcxproj" on node 2 (rebuild target(s)).
+ 1>_PrepareForClean:
+ Deleting file "Release\COMReg.lastbuildstate".
+ InitializeBuildStatus:
+ Touching "Release\COMReg.unsuccessfulbuild".
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I..\Setup /I..\Common /I..\Crypto /I..\ /I..\PKCS11 /I..\Common\zlib /I..\Common\libzip /I..\Common\lzma /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D VC_COMREG /D NDEBUG /D _WINDOWS /D HAVE_CONFIG_H /D ZIP_STATIC /D _UNICODE /D UNICODE /Gm- /EHsc /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt ..\Common\Crc.c ..\Setup\SelfExtract.c
+ Crc.c
+ SelfExtract.c
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I..\Setup /I..\Common /I..\Crypto /I..\ /I..\PKCS11 /I..\Common\zlib /I..\Common\libzip /I..\Common\lzma /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D VC_COMREG /D NDEBUG /D _WINDOWS /D HAVE_CONFIG_H /D ZIP_STATIC /D _UNICODE /D UNICODE /Gm- /EHsc /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ..\Common\Dlgcode.c COMReg.cpp
+ Dlgcode.c
+ COMReg.cpp
+ ResourceCompile:
+ C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /D _UNICODE /D UNICODE /l"0x0409" /nologo /fo"Release\COMReg.res" COMReg.rc
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"Release\VeraCryptCOMRegBase.exe" /INCREMENTAL:NO /NOLOGO ..\Common\Release\Zip.lib ..\Crypto\Release\crypto.lib ..\Common\Release\lzma.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\VeraCryptCOMRegBase.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:"C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\VeraCryptCOMRegBase.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"Release\VeraCryptCOMRegBase.lib" /MACHINE:X86 Release\COMReg.res
+ Release\Crc.obj
+ Release\Dlgcode.obj
+ Release\SelfExtract.obj
+ Release\COMReg.obj
+ C:\dev\prj\Github\VeraCrypt\src\Common\Release\Lzma.lib
+ Generating code
+ Finished generating code
+ COMReg.vcxproj -> C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\VeraCryptCOMRegBase.exe
+ Manifest:
+ C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"Release\VeraCryptCOMRegBase.exe;#1" /manifest Release\VeraCryptCOMRegBase.exe.intermediate.manifest
+ PostBuildEvent:
+ copy Release\VeraCryptCOMRegBase.exe "..\Release\Setup Files\VeraCryptCOMRegBase.exe"
+ :VCEnd
+ 1 file(s) copied.
+ FinalizeBuildStatus:
+ Deleting file "Release\COMReg.unsuccessfulbuild".
+ Touching "Release\COMReg.lastbuildstate".
+ 1>Done Building Project "C:\dev\prj\Github\VeraCrypt\src\COMReg\COMReg.vcxproj" (rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:02.70
diff --git a/src/COMReg/Release/COMReg.obj b/src/COMReg/Release/COMReg.obj
new file mode 100644
index 00000000..4bfdb19e
--- /dev/null
+++ b/src/COMReg/Release/COMReg.obj
Binary files differ
diff --git a/src/COMReg/Release/COMReg.res b/src/COMReg/Release/COMReg.res
new file mode 100644
index 00000000..49bb867c
--- /dev/null
+++ b/src/COMReg/Release/COMReg.res
Binary files differ
diff --git a/src/COMReg/Release/COMReg.write.1.tlog b/src/COMReg/Release/COMReg.write.1.tlog
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/COMReg/Release/COMReg.write.1.tlog
diff --git a/src/COMReg/Release/Crc.obj b/src/COMReg/Release/Crc.obj
new file mode 100644
index 00000000..5782236a
--- /dev/null
+++ b/src/COMReg/Release/Crc.obj
Binary files differ
diff --git a/src/COMReg/Release/Dlgcode.obj b/src/COMReg/Release/Dlgcode.obj
new file mode 100644
index 00000000..aac13468
--- /dev/null
+++ b/src/COMReg/Release/Dlgcode.obj
Binary files differ
diff --git a/src/COMReg/Release/SelfExtract.obj b/src/COMReg/Release/SelfExtract.obj
new file mode 100644
index 00000000..1522314a
--- /dev/null
+++ b/src/COMReg/Release/SelfExtract.obj
Binary files differ
diff --git a/src/COMReg/Release/VeraCryptCOMRegBase.Build.CppClean.log b/src/COMReg/Release/VeraCryptCOMRegBase.Build.CppClean.log
new file mode 100644
index 00000000..3cb4ad77
--- /dev/null
+++ b/src/COMReg/Release/VeraCryptCOMRegBase.Build.CppClean.log
@@ -0,0 +1,16 @@
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\cl.command.1.tlog
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\CL.read.1.tlog
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\CL.write.1.tlog
+C:\DEV\PRJ\GITHUB\VERACRYPT\SRC\COMREG\RELEASE\COMREG.OBJ
+C:\DEV\PRJ\GITHUB\VERACRYPT\SRC\COMREG\RELEASE\COMREG.RES
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\COMReg.write.1.tlog
+C:\DEV\PRJ\GITHUB\VERACRYPT\SRC\COMREG\RELEASE\CRC.OBJ
+C:\DEV\PRJ\GITHUB\VERACRYPT\SRC\COMREG\RELEASE\DLGCODE.OBJ
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\link.command.1.tlog
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\link.read.1.tlog
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\link.write.1.tlog
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\rc.command.1.tlog
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\rc.read.1.tlog
+C:\dev\prj\Github\VeraCrypt\src\COMReg\Release\rc.write.1.tlog
+C:\DEV\PRJ\GITHUB\VERACRYPT\SRC\COMREG\RELEASE\SELFEXTRACT.OBJ
+C:\DEV\PRJ\GITHUB\VERACRYPT\SRC\COMREG\RELEASE\VC100.PDB
diff --git a/src/COMReg/Release/VeraCryptCOMRegBase.exe b/src/COMReg/Release/VeraCryptCOMRegBase.exe
new file mode 100644
index 00000000..8ac0fec7
--- /dev/null
+++ b/src/COMReg/Release/VeraCryptCOMRegBase.exe
Binary files differ
diff --git a/src/COMReg/Release/VeraCryptCOMRegBase.exe.intermediate.manifest b/src/COMReg/Release/VeraCryptCOMRegBase.exe.intermediate.manifest
new file mode 100644
index 00000000..ecea6f7f
--- /dev/null
+++ b/src/COMReg/Release/VeraCryptCOMRegBase.exe.intermediate.manifest
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly>
diff --git a/src/COMReg/Release/cl.command.1.tlog b/src/COMReg/Release/cl.command.1.tlog
new file mode 100644
index 00000000..22da2c19
--- /dev/null
+++ b/src/COMReg/Release/cl.command.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/link-cvtres.read.1.tlog b/src/COMReg/Release/link-cvtres.read.1.tlog
new file mode 100644
index 00000000..46b134b1
--- /dev/null
+++ b/src/COMReg/Release/link-cvtres.read.1.tlog
@@ -0,0 +1 @@
+ÿþ \ No newline at end of file
diff --git a/src/COMReg/Release/link-cvtres.write.1.tlog b/src/COMReg/Release/link-cvtres.write.1.tlog
new file mode 100644
index 00000000..46b134b1
--- /dev/null
+++ b/src/COMReg/Release/link-cvtres.write.1.tlog
@@ -0,0 +1 @@
+ÿþ \ No newline at end of file
diff --git a/src/COMReg/Release/link.command.1.tlog b/src/COMReg/Release/link.command.1.tlog
new file mode 100644
index 00000000..d056a9da
--- /dev/null
+++ b/src/COMReg/Release/link.command.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/link.read.1.tlog b/src/COMReg/Release/link.read.1.tlog
new file mode 100644
index 00000000..d32e3623
--- /dev/null
+++ b/src/COMReg/Release/link.read.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/link.write.1.tlog b/src/COMReg/Release/link.write.1.tlog
new file mode 100644
index 00000000..c2f1dd09
--- /dev/null
+++ b/src/COMReg/Release/link.write.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/mt.command.1.tlog b/src/COMReg/Release/mt.command.1.tlog
new file mode 100644
index 00000000..386b5c1f
--- /dev/null
+++ b/src/COMReg/Release/mt.command.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/mt.read.1.tlog b/src/COMReg/Release/mt.read.1.tlog
new file mode 100644
index 00000000..d8974785
--- /dev/null
+++ b/src/COMReg/Release/mt.read.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/mt.write.1.tlog b/src/COMReg/Release/mt.write.1.tlog
new file mode 100644
index 00000000..4a846233
--- /dev/null
+++ b/src/COMReg/Release/mt.write.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/rc.command.1.tlog b/src/COMReg/Release/rc.command.1.tlog
new file mode 100644
index 00000000..63e77673
--- /dev/null
+++ b/src/COMReg/Release/rc.command.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/rc.read.1.tlog b/src/COMReg/Release/rc.read.1.tlog
new file mode 100644
index 00000000..0c8fcd0f
--- /dev/null
+++ b/src/COMReg/Release/rc.read.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/rc.write.1.tlog b/src/COMReg/Release/rc.write.1.tlog
new file mode 100644
index 00000000..4ead313c
--- /dev/null
+++ b/src/COMReg/Release/rc.write.1.tlog
Binary files differ
diff --git a/src/COMReg/Release/vc100.pdb b/src/COMReg/Release/vc100.pdb
new file mode 100644
index 00000000..376a16a4
--- /dev/null
+++ b/src/COMReg/Release/vc100.pdb
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt COMReg.exe b/src/Release/Setup Files/VeraCrypt COMReg.exe
new file mode 100644
index 00000000..07c0e955
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt COMReg.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt Format-arm64.exe b/src/Release/Setup Files/VeraCrypt Format-arm64.exe
new file mode 100644
index 00000000..5c8f736f
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt Format-arm64.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt Format-x64.exe b/src/Release/Setup Files/VeraCrypt Format-x64.exe
new file mode 100644
index 00000000..9e1630da
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt Format-x64.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt Format.exe b/src/Release/Setup Files/VeraCrypt Format.exe
new file mode 100644
index 00000000..657fe48b
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt Format.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt Portable.exe b/src/Release/Setup Files/VeraCrypt Portable.exe
new file mode 100644
index 00000000..6ebfbdda
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt Portable.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt Setup.exe b/src/Release/Setup Files/VeraCrypt Setup.exe
new file mode 100644
index 00000000..07c0e955
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt Setup.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt-arm64.exe b/src/Release/Setup Files/VeraCrypt-arm64.exe
new file mode 100644
index 00000000..bdd76241
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt-arm64.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt-x64.exe b/src/Release/Setup Files/VeraCrypt-x64.exe
new file mode 100644
index 00000000..3a77c353
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt-x64.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCrypt.exe b/src/Release/Setup Files/VeraCrypt.exe
new file mode 100644
index 00000000..cb1d750d
--- /dev/null
+++ b/src/Release/Setup Files/VeraCrypt.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCryptCOMRegBase.exe b/src/Release/Setup Files/VeraCryptCOMRegBase.exe
new file mode 100644
index 00000000..8ac0fec7
--- /dev/null
+++ b/src/Release/Setup Files/VeraCryptCOMRegBase.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCryptExpander-arm64.exe b/src/Release/Setup Files/VeraCryptExpander-arm64.exe
new file mode 100644
index 00000000..5f460b05
--- /dev/null
+++ b/src/Release/Setup Files/VeraCryptExpander-arm64.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCryptExpander-x64.exe b/src/Release/Setup Files/VeraCryptExpander-x64.exe
new file mode 100644
index 00000000..f96362f0
--- /dev/null
+++ b/src/Release/Setup Files/VeraCryptExpander-x64.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCryptExpander.exe b/src/Release/Setup Files/VeraCryptExpander.exe
new file mode 100644
index 00000000..d7c135e6
--- /dev/null
+++ b/src/Release/Setup Files/VeraCryptExpander.exe
Binary files differ
diff --git a/src/Release/Setup Files/VeraCryptSetup.dll b/src/Release/Setup Files/VeraCryptSetup.dll
new file mode 100644
index 00000000..9688daf7
--- /dev/null
+++ b/src/Release/Setup Files/VeraCryptSetup.dll
Binary files differ
diff --git a/src/VeraCrypt.sdf b/src/VeraCrypt.sdf
new file mode 100644
index 00000000..7fec6d99
--- /dev/null
+++ b/src/VeraCrypt.sdf
Binary files differ
diff --git a/src/VeraCrypt.suo b/src/VeraCrypt.suo
new file mode 100644
index 00000000..669e2bff
--- /dev/null
+++ b/src/VeraCrypt.suo
Binary files differ
diff --git a/src/ipch/crypto-57c110f3/crypto-be6a8ba7.ipch b/src/ipch/crypto-57c110f3/crypto-be6a8ba7.ipch
new file mode 100644
index 00000000..f15afd89
--- /dev/null
+++ b/src/ipch/crypto-57c110f3/crypto-be6a8ba7.ipch
Binary files differ
diff --git a/src/ipch/mount-e667f7/veracrypt-87304586.ipch b/src/ipch/mount-e667f7/veracrypt-87304586.ipch
new file mode 100644
index 00000000..c6f9c746
--- /dev/null
+++ b/src/ipch/mount-e667f7/veracrypt-87304586.ipch
Binary files differ
diff --git a/src/ipch/mount-e667f7/veracrypt-b8a55284.ipch b/src/ipch/mount-e667f7/veracrypt-b8a55284.ipch
new file mode 100644
index 00000000..dfca06db
--- /dev/null
+++ b/src/ipch/mount-e667f7/veracrypt-b8a55284.ipch
Binary files differ