Skip to content

Commit 3919dc8

Browse files
authored
Merge branch 'main' into WE2-1045
2 parents 52b4408 + 1cab9e2 commit 3919dc8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+730
-608
lines changed

.github/workflows/cmake-linux-codeql.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,27 @@ jobs:
1919
- uses: actions/checkout@v4
2020
with:
2121
submodules: recursive
22+
persist-credentials: false
2223

23-
- uses: github/codeql-action/init@v3
24+
- uses: github/codeql-action/init@v4
2425
with:
2526
languages: cpp
2627
queries: +security-and-quality
2728

28-
- uses: github/codeql-action/autobuild@v3
29+
- uses: github/codeql-action/autobuild@v4
2930

30-
- uses: github/codeql-action/analyze@v3
31+
- uses: github/codeql-action/analyze@v4
3132
with:
3233
upload: False
3334
output: sarif-results
3435

35-
- uses: advanced-security/filter-sarif@develop
36+
- uses: advanced-security/filter-sarif@v1
3637
with:
3738
patterns: |
3839
-**/*autogen*/**
3940
input: sarif-results/cpp.sarif
4041
output: sarif-results/cpp.sarif
4142

42-
- uses: github/codeql-action/upload-sarif@v3
43+
- uses: github/codeql-action/upload-sarif@v4
4344
with:
4445
sarif_file: sarif-results/cpp.sarif

.github/workflows/cmake-linux-coverity.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
- uses: actions/checkout@v4
2727
with:
2828
submodules: recursive
29+
persist-credentials: false
2930

3031
- name: Configure CMake
3132
run: cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B build -S .

.github/workflows/cmake-linux-fedora.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
container: fedora:${{ matrix.container }}
1515
strategy:
1616
matrix:
17-
container: [38, 39, 40]
17+
container: [42, 43]
1818

1919
steps:
2020
- name: Install Deps
@@ -23,14 +23,15 @@ jobs:
2323
- uses: actions/checkout@v4
2424
with:
2525
submodules: recursive
26+
persist-credentials: false
2627

2728
- name: Configure CMake
2829
run: cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_SYSCONFDIR=/etc -B build -S .
2930

3031
- name: Build
3132
run: cmake --build build --config $BUILD_TYPE --target package
3233

33-
- uses: actions/upload-artifact@v4
34+
- uses: actions/upload-artifact@v5
3435
with:
3536
name: web-eid-app-fedora-build-fedora${{matrix.container}}-${{github.run_number}}
3637
path: build/*rpm

.github/workflows/cmake-linux-ubuntu.yml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,21 @@ env:
1313

1414
jobs:
1515
build:
16-
runs-on: ubuntu-latest
16+
runs-on: ubuntu-24.04${{ matrix.arch == 'arm64' && '-arm' || '' }}
1717
container: ubuntu:${{matrix.container}}
1818
strategy:
1919
matrix:
20-
container: ['20.04', '22.04', '24.04']
20+
container: ['22.04', '24.04', '25.04', '25.10']
21+
arch: ['amd64', 'arm64']
2122

2223
steps:
2324
- name: Install dependencies
24-
if: matrix.container == '20.04'
25-
run: apt update -qq && apt install --no-install-recommends -y git lsb-release fakeroot build-essential devscripts debhelper lintian pkg-config cmake libpcsclite-dev libssl-dev libgtest-dev libqt5svg5-dev qttools5-dev-tools qttools5-dev
26-
27-
- name: Install dependencies
28-
if: matrix.container != '20.04'
29-
run: apt update -qq && apt install --no-install-recommends -y git lsb-release fakeroot build-essential devscripts debhelper lintian pkg-config cmake libpcsclite-dev libssl-dev libgtest-dev libgl-dev libqt6svg6-dev qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools libqt6core5compat6-dev
25+
run: apt update -qq && apt install --no-install-recommends -y git lsb-release fakeroot build-essential devscripts debhelper lintian pkg-config cmake libpcsclite-dev libssl-dev libgtest-dev libgl-dev libqt6svg6-dev qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools
3026

3127
- uses: actions/checkout@v4
3228
with:
3329
submodules: recursive
30+
persist-credentials: false
3431

3532
- name: Configure CMake
3633
run: cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B build -S .
@@ -44,7 +41,7 @@ jobs:
4441
- name: Test package
4542
run: lintian build/*.deb
4643

47-
- uses: actions/upload-artifact@v4
44+
- uses: actions/upload-artifact@v5
4845
with:
49-
name: web-eid-app-ubuntu-build-ubuntu${{matrix.container}}-${{github.run_number}}
46+
name: web-eid-app-ubuntu-build-ubuntu${{matrix.container}}-${{ matrix.arch }}-${{github.run_number}}
5047
path: build/*.*deb

.github/workflows/cmake-macos.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,18 @@ env:
1010
GTest_ROOT: ${{ github.workspace }}/gtest-binary
1111
QT_QPA_PLATFORM: offscreen
1212
CMAKE_BUILD_PARALLEL_LEVEL: 3
13-
MACOSX_DEPLOYMENT_TARGET: 12.0
13+
MACOSX_DEPLOYMENT_TARGET: 13.0
1414

1515
jobs:
1616
build:
1717
runs-on: macos-latest
1818

1919
steps:
2020
- name: Checkout code
21-
uses: actions/checkout@v4
21+
uses: actions/checkout@v5
2222
with:
2323
submodules: recursive
24+
persist-credentials: false
2425

2526
- name: Cache
2627
uses: actions/cache@v4
@@ -39,16 +40,16 @@ jobs:
3940
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
4041
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
4142
-DCMAKE_INSTALL_PREFIX=${GTest_ROOT} \
42-
-DCMAKE_CXX_STANDARD=17
43+
-DCMAKE_CXX_STANDARD=20
4344
cmake --build gtest-build --target install
4445
4546
- name: Build OpenSSL
4647
if: steps.cache.outputs.cache-hit != 'true'
4748
run: |
48-
git clone --depth=1 https://github.com/openssl/openssl.git -b openssl-3.0
49+
git clone --depth=1 https://github.com/openssl/openssl.git -b openssl-3.5
4950
cd openssl
5051
for ARCH in x86_64 arm64; do
51-
./Configure darwin64-${ARCH} --prefix=${OPENSSL_ROOT_DIR} no-shared no-module no-tests enable-ec_nistp_64_gcc_128
52+
./Configure darwin64-${ARCH} --prefix=${OPENSSL_ROOT_DIR} no-apps no-shared no-module no-tests enable-ec_nistp_64_gcc_128
5253
MAKEFLAGS=-j1 make -s install_sw
5354
mv ${OPENSSL_ROOT_DIR}{,.${ARCH}}
5455
make distclean
@@ -64,7 +65,7 @@ jobs:
6465
- name: Install Qt
6566
uses: jurplel/install-qt-action@v4
6667
with:
67-
version: 6.7.2
68+
version: 6.10.0
6869
arch: clang_64
6970

7071
- name: Configure
@@ -80,7 +81,7 @@ jobs:
8081
# run: ctest -V -C ${BUILD_TYPE} --test-dir ${BUILD_DIR}
8182

8283
- name: Upload artifacts
83-
uses: actions/upload-artifact@v4
84+
uses: actions/upload-artifact@v5
8485
with:
8586
name: web-eid-app-macos-build-${{github.run_number}}
8687
path: |

.github/workflows/cmake-windows.yml

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,55 +6,63 @@ env:
66
BUILD_TYPE: RelWithDebInfo
77
BUILD_NUMBER: ${{github.run_number}}
88
CMAKE_BUILD_PARALLEL_LEVEL: 4
9+
VCPKG_INSTALLED_DIR: ${{ github.workspace }}/build/vcpkg_installed
10+
# Use libelectronic-id vcpkg manifest for dependencies
11+
VCPKG_MANIFEST_DIR: ./lib/libelectronic-id/.github
912

1013
jobs:
1114
build:
12-
runs-on: ${{ matrix.image }}
15+
runs-on: windows-2025
1316
strategy:
1417
matrix:
15-
vcver: [142, 143]
16-
include:
17-
- vcver: 142
18-
image: windows-2019
19-
- vcver: 143
20-
image: windows-2022
18+
arch: [x64, arm64]
2119

2220
steps:
2321
- name: Checkout code
24-
uses: actions/checkout@v4
22+
uses: actions/checkout@v5
2523
with:
2624
submodules: recursive
25+
persist-credentials: false
26+
27+
- name: Cache vcpkg
28+
uses: actions/cache@v4
29+
with:
30+
path: ${{ github.workspace }}/vcpkg_cache
31+
key: vcpkg-${{ matrix.arch }}-${{ hashFiles(format('{0}/vcpkg.json', env.VCPKG_MANIFEST_DIR)) }}
2732

2833
- name: Prepare vcpkg and libraries
29-
uses: lukka/run-vcpkg@v7
34+
uses: lukka/run-vcpkg@v11
3035
with:
31-
vcpkgArguments: gtest openssl
32-
vcpkgTriplet: x64-windows
33-
vcpkgGitCommitId: 1f619be01b436b796dab797dd1e1721c5676f8ac
36+
vcpkgJsonGlob: ${{ env.VCPKG_MANIFEST_DIR }}/vcpkg.json
37+
runVcpkgInstall: true
38+
env:
39+
VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite
40+
VCPKG_DEFAULT_TRIPLET: ${{ matrix.arch }}-windows
3441

3542
- name: Install Qt
3643
uses: jurplel/install-qt-action@v4
3744
with:
38-
version: 6.7.2
39-
arch: win64_msvc2019_64
45+
version: 6.9.3
46+
arch: ${{ matrix.arch == 'arm64' && 'win64_msvc2022_arm64_cross_compiled' || 'win64_msvc2022_64' }}
4047

4148
- name: Setup MS Visual C++ dev env
4249
uses: ilammy/msvc-dev-cmd@v1
4350
with:
44-
arch: x64
51+
arch: ${{ matrix.arch == 'arm64' && 'amd64_arm64' || 'amd64' }}
4552

4653
- name: Install WiX
4754
run: |
48-
dotnet tool install --global wix --version 5.0.1
49-
wix extension -g add WixToolset.UI.wixext/5.0.1
50-
wix extension -g add WixToolset.Util.wixext/5.0.1
51-
wix extension -g add WixToolset.BootstrapperApplications.wixext/5.0.1
55+
dotnet tool install --global wix --version 6.0.2
56+
wix extension -g add WixToolset.UI.wixext/6.0.2
57+
wix extension -g add WixToolset.Util.wixext/6.0.2
58+
wix extension -g add WixToolset.BootstrapperApplications.wixext/6.0.2
5259
5360
- name: Configure
5461
run: |
5562
cmake "-GNinja" -S . -B build `
5663
"-DCMAKE_TOOLCHAIN_FILE=${env:RUNVCPKG_VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" `
57-
"-DCMAKE_BUILD_TYPE=${env:BUILD_TYPE}"
64+
"-DCMAKE_BUILD_TYPE=${env:BUILD_TYPE}" `
65+
"-DVCPKG_MANIFEST_DIR=${{ env.VCPKG_MANIFEST_DIR }}"
5866
5967
- name: Build
6068
run: |
@@ -63,12 +71,13 @@ jobs:
6371
cmake --build build --config ${env:BUILD_TYPE} --target bundle
6472
6573
- name: Test
74+
if: ${{ matrix.arch == 'x64' }}
6675
run: ctest -V -C ${env:BUILD_TYPE} --test-dir build
6776

6877
- name: Upload artifacts
69-
uses: actions/upload-artifact@v4
78+
uses: actions/upload-artifact@v5
7079
with:
71-
name: web-eid-app-windows-build-VC${{matrix.vcver}}-${{github.run_number}}
80+
name: web-eid-app-windows-build-${{matrix.arch}}-${{github.run_number}}
7281
path: |
7382
build/src/app/*.msi
7483
build/src/app/*.exe

CMakeLists.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.16)
1+
cmake_minimum_required(VERSION 3.22)
22

33
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/lib/libelectronic-id/README.md")
44
message(FATAL_ERROR "libelectronic-id submodule directory empty, did you 'git clone --recursive'?")
@@ -11,7 +11,10 @@ elseif($ENV{CI_PIPELINE_IID})
1111
else()
1212
set(BUILD_NUMBER 0)
1313
endif()
14-
project(web-eid VERSION 2.6.0.${BUILD_NUMBER})
14+
project(web-eid VERSION 2.9.0.${BUILD_NUMBER}
15+
DESCRIPTION "Web eID browser extension helper application"
16+
HOMEPAGE_URL https://github.com/web-eid/web-eid-app
17+
)
1518

1619
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
1720
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION_TWEAK})
@@ -32,10 +35,7 @@ set(SIGNCERT "" CACHE STRING "Common name of certificate to used sign binaries,
3235
set(CROSSSIGNCERT "" CACHE STRING "Common name of certificate to used cross sign binaries, empty skips signing (Windows)")
3336
set(SAFARI_PROVISIONPROFILE "" CACHE STRING "Provision profile to include in application (macOS)")
3437

35-
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
36-
find_package(Qt${QT_VERSION_MAJOR} 5.12.0 REQUIRED COMPONENTS Core Widgets Network Test LinguistTools Svg)
37-
get_target_property(qtCore_install_prefix Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)
38-
get_filename_component(qtCore_install_prefix ${qtCore_install_prefix} DIRECTORY)
38+
find_package(Qt6 6.2.0 REQUIRED COMPONENTS Core Widgets Network Test LinguistTools SvgWidgets)
3939

4040
add_subdirectory(lib/libelectronic-id)
4141

README.md

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -280,13 +280,13 @@ sudo apt install \
280280

281281
### Windows
282282

283-
- Download Visual Studio 2019 community installer from https://visualstudio.microsoft.com/ and install _Desktop C++ Development_
283+
- Download Visual Studio 2022 community installer from https://visualstudio.microsoft.com/ and install _Desktop C++ Development_
284284
- Install WIX toolset
285285

286-
dotnet tool install --global wix --version 5.0.0
287-
wix extension -g add WixToolset.UI.wixext/5.0.0
288-
wix extension -g add WixToolset.Util.wixext/5.0.0
289-
wix extension -g add WixToolset.Bal.wixext/5.0.0
286+
dotnet tool install --global wix --version 6.0.2
287+
wix extension -g add WixToolset.UI.wixext/6.0.2
288+
wix extension -g add WixToolset.Util.wixext/6.0.2
289+
wix extension -g add WixToolset.Bal.wixext/6.0.2
290290

291291
- Download and install Git for Windows from https://git-scm.com/download/win
292292
- Download and install CMake from https://cmake.org/download/
@@ -297,12 +297,8 @@ sudo apt install \
297297
.\bootstrap-vcpkg.bat
298298
.\vcpkg integrate install
299299

300-
- Install _Google Test_ and _OpenSSL_ with _vcpkg_:
301-
302-
.\vcpkg install --recurse --triplet x64-windows --clean-after-build gtest openssl
303-
304300
- Install _Qt_ with the official [_Qt Online Installer_](https://www.qt.io/download-qt-installer),
305-
choose _Custom installation > Qt 6.6.3 > MSVC 2019 64-bit_.
301+
choose _Custom installation > Qt 6.10.0 > MSVC 2022 64-bit_.
306302

307303
### macOS
308304

@@ -317,7 +313,7 @@ sudo apt install \
317313
- Create symlink to _OpenSSL_ location and setup environment variables required
318314
by _CMake_:
319315

320-
export OPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1
316+
export OPENSSL_ROOT_DIR=/usr/local/opt/openssl@3.0
321317
export QT_DIR=/usr/local/opt/qt6/lib/cmake/Qt6
322318

323319
## Building and testing
@@ -334,7 +330,7 @@ Use _Powershell_ to run the following commands to build the project.
334330

335331
- Set the _Qt_ installation directory variable:
336332

337-
$QT_ROOT = "C:\Qt\6.2.4\msvc2019_64"
333+
$QT_ROOT = "C:\Qt\6.10.0\msvc2022_64"
338334

339335
- Set the _vcpkg_ installation directory variable:
340336

@@ -346,11 +342,11 @@ Use _Powershell_ to run the following commands to build the project.
346342

347343
- Run _CMake_:
348344

349-
Optionally, WIX Toolset v3 is required for the installer, and the WIX environment variable should be set for the installed target.
350-
351-
cmake "-DCMAKE_PREFIX_PATH=${QT_ROOT}" `
345+
cmake -A x64 -B build -S .
346+
"-DCMAKE_PREFIX_PATH=${QT_ROOT}" `
352347
"-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" `
353-
"-DCMAKE_BUILD_TYPE=${BUILD_TYPE}" -A x64 -B build -S .
348+
"-DCMAKE_BUILD_TYPE=${BUILD_TYPE}" `
349+
"-DVCPKG_MANIFEST_DIR=lib/libelectronic-id/.github"
354350

355351
- Run the build and installer build:
356352

@@ -367,9 +363,9 @@ Optionally, WIX Toolset v3 is required for the installer, and the WIX environmen
367363

368364
## Adding and updating translations
369365

370-
You can use the free [Qt Linguist application](https://doc.qt.io/qt-5/qtlinguist-index.html)
366+
You can use the free [Qt Linguist application](https://doc.qt.io/qt-6/qtlinguist-index.html)
371367
to add and edit translations.
372368

373369
Run the following command to update Qt Linguist TS files:
374370

375-
lupdate src/ -ts ./src/ui/translations/*.ts
371+
cmake --build build --config ${BUILD_TYPE} --target update_translations

build.ps1

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
param(
22
[string]$cmake = "C:\Program Files\CMake\bin\cmake.exe",
33
[string]$vcpkgroot = "C:\vcpkg",
4-
[string]$qtdir = "C:\Qt\6.5.2\msvc2019_64"
4+
[string]$qtdir = "C:\Qt\6.10.0\msvc2022_64",
5+
[string]$buildtype = "RelWithDebInfo",
6+
[string]$arch = "x64"
57
)
68

7-
& $cmake -A x64 "-DCMAKE_TOOLCHAIN_FILE=$vcpkgroot\scripts\buildsystems\vcpkg.cmake" "-DQt6_DIR=$qtdir" -S . -B build
8-
& $cmake --build build
9+
& $cmake -S . -B build\windows -A $arch -DCMAKE_BUILD_TYPE=$buildtype "-DCMAKE_PREFIX_PATH=$qtdir" "-DCMAKE_TOOLCHAIN_FILE=$vcpkgroot\scripts\buildsystems\vcpkg.cmake" "-DVCPKG_MANIFEST_DIR=lib/libelectronic-id/.github"
10+
& $cmake --build build\windows --config $buildtype

0 commit comments

Comments
 (0)