From 2963229569670f4fb12cc7482690a4a8b3a8e0e1 Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Tue, 21 Apr 2026 10:24:12 +0300 Subject: [PATCH] Update libraries * OpenSSL 3.5.6 * OpenLDAP 2.6.13 * Qt 6.11.1/6.10.3 (macOS) Signed-off-by: Raul Metsma --- .github/workflows/build.yml | 31 +++++++++++++++++-------------- CMakeLists.txt | 5 ++++- COPYING | 25 ------------------------- README.md | 4 ++-- RELEASE-NOTES.md | 6 ++++++ client/CMakeLists.txt | 10 ++++++++-- client/Diagnostics_win.cpp | 2 +- client/dialogs/FileDialog.cpp | 2 +- client/libcdoc | 2 +- client/translations/en.ts | 16 ++++++---------- client/translations/et.ts | 16 ++++++---------- client/translations/ru.ts | 16 ++++++---------- client/widgets/ContainerPage.cpp | 14 -------------- prepare_osx_build_environment.sh | 8 ++++---- qdigidoc4.wxs | 2 +- 15 files changed, 63 insertions(+), 96 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d68e124c6..42fc481c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ jobs: name: Build on macOS runs-on: macos-latest env: - MACOSX_DEPLOYMENT_TARGET: 13.3 + MACOSX_DEPLOYMENT_TARGET: 14.0 LIBS_PATH: ${{ github.workspace }}/cache steps: - &Checkout @@ -41,12 +41,12 @@ jobs: key: vcpkg-macOS-${{ hashFiles('prepare_osx_build_environment.sh') }} - name: Build libraries run: | - mkdir -p ${LIBS_PATH}/Qt-6.10.2-OpenSSL + mkdir -p ${LIBS_PATH}/Qt-6.11.1-OpenSSL ./prepare_osx_build_environment.sh -p ${LIBS_PATH} - name: Install Qt uses: jurplel/install-qt-action@v4 with: - version: 6.10.2 + version: 6.10.3 arch: clang_64 cache: true - name: Build @@ -147,7 +147,7 @@ jobs: path: build/qdigidoc4*.rpm windows: name: Build on Windows - runs-on: ${{ matrix.platform == 'arm64' && 'windows-11-arm' || 'windows-2025' }} + runs-on: windows-2022 strategy: matrix: vcver: [143] @@ -167,7 +167,8 @@ jobs: - name: Install artifact run: | Rename-Item "libdigidocpp*.msi" libdigidocpp.msi - msiexec /qn /i libdigidocpp.msi + $r = Start-Process msiexec -ArgumentList '/a', 'libdigidocpp.msi', '/qn', "TARGETDIR=$env:GITHUB_WORKSPACE\libs", '/l*v', 'install.log' -Wait -PassThru + if ($r.ExitCode -ne 0) { Get-Content install.log; exit $r.ExitCode } - name: Cache vcpkg uses: actions/cache@v5 with: @@ -176,24 +177,26 @@ jobs: - name: Install Qt uses: jurplel/install-qt-action@v4 with: - version: 6.10.2 - arch: ${{ matrix.platform == 'arm64' && 'win64_msvc2022_arm64' || 'win64_msvc2022_64' }} + version: 6.11.1 + arch: ${{ matrix.platform == 'arm64' && 'win64_msvc2022_arm64_cross_compiled' || 'win64_msvc2022_64' }} cache: true - - name: Setup dev env - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: ${{ matrix.platform }} + aqtsource: git+https://github.com/miurahr/aqtinstall.git - name: Install WiX run: | dotnet tool install -g wix --version 6.0.2 wix extension -g add WixToolset.UI.wixext/6.0.2 - name: Build + shell: cmd env: VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite run: | - cmake "-GNinja" -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo ` - -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake ` - -DVCPKG_MANIFEST_DIR=${{ github.workspace }}/client/libcdoc + for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -find VC\Auxiliary\Build\vcvarsall.bat`) do call "%%i" ${{ matrix.platform == 'arm64' && 'amd64_arm64' || 'amd64' }} + set QT_HOST_PATH=%QT_HOST_PATH:\=/% + cmake -GNinja -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo ^ + -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake ^ + -DVCPKG_MANIFEST_DIR=${{ github.workspace }}/client/libcdoc ^ + -Dlibdigidocpp_ROOT=${{ github.workspace }}/libs/PFiles64 ^ + ${{ matrix.platform == 'arm64' && '-DQT_HOST_PATH=%QT_HOST_PATH%' || '' }} cmake --build build --target msi cmake --build build --target msishellext cmake --build build --target appx diff --git a/CMakeLists.txt b/CMakeLists.txt index b7c425aff..b943bbb43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.22) if(NOT EXISTS ${CMAKE_SOURCE_DIR}/common/CMakeLists.txt) message(FATAL_ERROR "common submodule directory empty, did you 'git clone --recursive'?") endif() -project(qdigidoc4 VERSION 4.10.0 +project(qdigidoc4 VERSION 4.11.0 DESCRIPTION "DigiDoc4 application for digital signing and encryption" HOMEPAGE_URL https://github.com/open-eid/DigiDoc4-Client ) @@ -33,6 +33,9 @@ set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED YES) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION YES) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG NO) +set(CMAKE_DISABLE_FIND_PACKAGE_Boost ON) +set(CMAKE_DISABLE_FIND_PACKAGE_Doxygen ON) +set(CMAKE_DISABLE_FIND_PACKAGE_SWIG ON) set(CPACK_PACKAGE_VERSION ${VERSION}) set(CPACK_GENERATOR RPM) set(CPACK_PACKAGE_CONTACT "RIA ") diff --git a/COPYING b/COPYING index 415d5c33c..cfe0d3216 100644 --- a/COPYING +++ b/COPYING @@ -264,28 +264,3 @@ client/fonts WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - -_______________________________________________________________________________ -schema - -MIT License - -Copyright (c) 2023 Open Electronic Identity - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 946bee841..f7fd729de 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ 3. Configure cmake -B build -S . \ - -DCMAKE_PREFIX_PATH=~/cmake_builds/Qt-6.10.2-OpenSSL + -DCMAKE_PREFIX_PATH=~/cmake_builds/Qt-6.11.1-OpenSSL \ -DOPENSSL_ROOT_DIR=~/cmake_build/OpenSSL \ -DLDAP_ROOT=~/cmake_build/OpenLDAP \ -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" @@ -95,7 +95,7 @@ 3. Configure cmake -G"NMAKE Makefiles" -B build -S . ` - -DCMAKE_PREFIX_PATH=C:\Qt\6.10.2\msvc2022_x64 ` + -DCMAKE_PREFIX_PATH=C:\Qt\6.11.1\msvc2022_64 ` -DLibDigiDocpp_ROOT="C:\Program Files (x86)\libdigidocpp" ` -DVCPKG_MANIFEST_DIR=client/libcdoc diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 0018f5a61..9794bc3a5 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,9 @@ +DigiDoc4 version [4.10.0](https://github.com/open-eid/DigiDoc4-Client/releases/tag/v4.10.0) release notes +-------------------------------------- +- Code, Text and translation improvements and updates + +[Full Changelog](https://github.com/open-eid/DigiDoc4-Client/compare/v4.9.0...v4.10.0) + DigiDoc4 version [4.9.0](https://github.com/open-eid/DigiDoc4-Client/releases/tag/v4.9.0) release notes -------------------------------------- - Code, Text and translation improvements and updates diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 1304b3213..36491f0b4 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -41,7 +41,8 @@ add_executable(${PROJECT_NAME} WIN32 MACOSX_BUNDLE DateTime.cpp DateTime.h Diagnostics.cpp - $,Diagnostics_win.cpp,Diagnostics_unix.cpp> + Diagnostics_win.cpp + Diagnostics_unix.cpp Diagnostics.h DiagnosticsTask.cpp DiagnosticsTask.h @@ -78,6 +79,11 @@ add_executable(${PROJECT_NAME} WIN32 MACOSX_BUNDLE TokenData.h Utils.h ) +if(WIN32) + set_source_files_properties(Diagnostics_unix.cpp PROPERTIES HEADER_FILE_ONLY TRUE) +else() + set_source_files_properties(Diagnostics_win.cpp PROPERTIES HEADER_FILE_ONLY TRUE) +endif() qt_add_translations(${PROJECT_NAME} TS_FILES translations/en.ts translations/et.ts @@ -250,7 +256,7 @@ elseif(WIN32) COMMAND ${CMAKE_COMMAND} -E copy $ appx COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/libcrypto-3${OPENSSL_SUFFIX}.dll appx COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/libssl-3${OPENSSL_SUFFIX}.dll appx - COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/zlib$<$:d>1.dll appx + COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/z$<$:d>.dll appx COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/libxml2.dll appx COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/libxmlsec1.dll appx COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/libxmlsec1-openssl.dll appx diff --git a/client/Diagnostics_win.cpp b/client/Diagnostics_win.cpp index 0f3931b82..7b619761e 100644 --- a/client/Diagnostics_win.cpp +++ b/client/Diagnostics_win.cpp @@ -151,7 +151,7 @@ void Diagnostics::run() static const QStringList dlls{ "digidocpp", "qdigidoc4.exe", "EsteidShellExtension", "id-updater.exe", "web-eid.exe", "EstIDMinidriver", "EstIDMinidriver64", "EestiMinidriver", "EestiMinidriver64", "estgsv4md", "estgsv4md64", - "zlib1", "libxml2", "libxmlsec1", "libxmlsec1-openssl", + "zlib1", "z", "libxml2", "libxmlsec1", "libxmlsec1-openssl", "msvcp140", "msvcp140_1", "msvcp140_2", "vcruntime140", "vcruntime140_1"}; for(const QString &lib: dlls) { diff --git a/client/dialogs/FileDialog.cpp b/client/dialogs/FileDialog.cpp index ddb891b46..65c04facd 100644 --- a/client/dialogs/FileDialog.cpp +++ b/client/dialogs/FileDialog.cpp @@ -61,7 +61,7 @@ QString FileDialog::createNewFileName(const QString &file, bool signature, QWidg #ifndef Q_OS_MACOS // macOS App Sandbox restricts the rights of the application to write to the filesystem outside of // app sandbox; user must explicitly give permission to write data to the specific folders. - if(!QFile::exists(fileName)) + if(!QFile::exists(fileName) && fileIsWritable(fileName)) return fileName; #endif fileName = FileDialog::getSaveFileName(parent, tr("Create %1").arg(type), fileName, diff --git a/client/libcdoc b/client/libcdoc index 82ea85643..dd45dbf2d 160000 --- a/client/libcdoc +++ b/client/libcdoc @@ -1 +1 @@ -Subproject commit 82ea856432cb39a47276c04475ae4c57a6a96e32 +Subproject commit dd45dbf2dccc47cebdb1fc271cc203eff4c2a1f6 diff --git a/client/translations/en.ts b/client/translations/en.ts index 7eac05c4f..db28da8f2 100644 --- a/client/translations/en.ts +++ b/client/translations/en.ts @@ -541,10 +541,6 @@ Continue signing Continue signing - - Cannot alter container %1. Save different location? - Cannot alter container %1. Save to different location? - Encrypting Encrypting @@ -697,27 +693,27 @@ Unknown - error %1 - Unknown - error %1 + Unknown - error %1 User - User + User Administrator - Administrator + Administrator User rights: - User rights: + User rights: Not found - Not found + Not found Certificate Propagation service status: - Certificate Propagation service status: + Certificate Propagation service status: is set manually diff --git a/client/translations/et.ts b/client/translations/et.ts index 2673f2739..1e9b3e11d 100644 --- a/client/translations/et.ts +++ b/client/translations/et.ts @@ -541,10 +541,6 @@ Continue signing Jätka allkirjastamisega - - Cannot alter container %1. Save different location? - Ümbriku %1 salvestamine ebaõnnestus. Salvestada teise asukohta? - Encrypting Krüpteerin @@ -697,27 +693,27 @@ Unknown - error %1 - Teadmata - viga %1 + Teadmata - viga %1 User - Kasutaja + Kasutaja Administrator - Administraator + Administraator User rights: - Kasutajaõigused: + Kasutajaõigused: Not found - Ei leitud + Ei leitud Certificate Propagation service status: - Certificate Propagation teenuse staatus: + Certificate Propagation teenuse staatus: is set manually diff --git a/client/translations/ru.ts b/client/translations/ru.ts index fcc7c0cd5..6be15ca91 100644 --- a/client/translations/ru.ts +++ b/client/translations/ru.ts @@ -541,10 +541,6 @@ Continue signing Подписать - - Cannot alter container %1. Save different location? - Сохранение контейнера %1 не удалось. Сохранить в другой каталог? - Encrypting Зашифровывание @@ -697,27 +693,27 @@ Unknown - error %1 - Неизвестная - ошибка %1 + Неизвестная - ошибка %1 User - Пользователь + Пользователь Administrator - Администратор + Администратор User rights: - Права пользователя: + Права пользователя: Not found - Не найдено + Не найдено Certificate Propagation service status: - Статус Certificate Propagation сервиса: + Статус Certificate Propagation сервиса: is set manually diff --git a/client/widgets/ContainerPage.cpp b/client/widgets/ContainerPage.cpp index e2c7aeb3a..289eb2a6d 100644 --- a/client/widgets/ContainerPage.cpp +++ b/client/widgets/ContainerPage.cpp @@ -240,20 +240,6 @@ void ContainerPage::deleteConfirm(C *c, int index) void ContainerPage::encrypt(CryptoDoc *container, bool longTerm) { - if(!FileDialog::fileIsWritable(container->fileName())) - { - auto *dlg = WarningDialog::create(this) - ->withTitle(CryptoDoc::tr("Failed to encrypt document")) - ->withText(tr("Cannot alter container %1. Save different location?").arg(FileDialog::normalized(container->fileName()))) - ->addButton(WarningDialog::YES, QMessageBox::Yes); - if(dlg->exec() != QMessageBox::Yes) - return; - QString to = FileDialog::getSaveFileName(this, FileDialog::tr("Save file"), container->fileName()); - if(to.isNull() || !container->move(to)) - return; - setHeader(to); - } - if(!longTerm) { WaitDialogHolder waitDialog(this, tr("Encrypting")); if(!container->encrypt(container->fileName(), {}, {})) diff --git a/prepare_osx_build_environment.sh b/prepare_osx_build_environment.sh index b869639e4..be1aa89ec 100755 --- a/prepare_osx_build_environment.sh +++ b/prepare_osx_build_environment.sh @@ -4,12 +4,12 @@ set -e ######### Versions of libraries/frameworks to be compiled -QT_VER="6.10.2" -OPENSSL_VER="3.5.5" -OPENLDAP_VER="2.6.12" +QT_VER="6.10.3" +OPENSSL_VER="3.5.6" +OPENLDAP_VER="2.6.13" REBUILD=false BUILD_PATH=~/cmake_builds -: ${MACOSX_DEPLOYMENT_TARGET:="13.0"} +: ${MACOSX_DEPLOYMENT_TARGET:="14.0"} export MACOSX_DEPLOYMENT_TARGET while [[ $# -gt 0 ]] diff --git a/qdigidoc4.wxs b/qdigidoc4.wxs index b002f491f..61ffb0716 100644 --- a/qdigidoc4.wxs +++ b/qdigidoc4.wxs @@ -68,7 +68,7 @@ - +