Skip to content

Commit 49a5fe5

Browse files
committed
Merge branch 'master' into api-dsc-cleanup
2 parents 0408110 + 29bca14 commit 49a5fe5

File tree

447 files changed

+28256
-12140
lines changed

Some content is hidden

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

447 files changed

+28256
-12140
lines changed

.github/actions/create-release/action.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# TODO: Replace asfernandes/action-gh-release@master by softprops/action-gh-release@v1
2-
# once https://github.com/softprops/action-gh-release/pull/343 is merged.
3-
41
name: Create release
52
description: Create release
63

@@ -44,7 +41,7 @@ runs:
4441

4542
- name: Release
4643
id: release_try1
47-
uses: asfernandes/action-gh-release@master
44+
uses: softprops/action-gh-release@master
4845
if: steps.release-info.outputs.artifacts-tag
4946
continue-on-error: true
5047
with:
@@ -65,7 +62,7 @@ runs:
6562
files: ${{ inputs.uploadFiles }}
6663

6764
- name: Release (retry)
68-
uses: asfernandes/action-gh-release@master
65+
uses: softprops/action-gh-release@master
6966
if: |
7067
steps.release-info.outputs.artifacts-tag &&
7168
steps.release_try1.outcome == 'failure'

.github/workflows/main.yml

Lines changed: 91 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,13 @@ jobs:
156156
if: github.ref_type != 'tag'
157157
runs-on: ${{ matrix.os }}
158158
env:
159-
VS_VERSION: ${{ (matrix.os == 'windows-2019' && '2019' || (matrix.os == 'windows-2022' && '2022' || '')) }}
159+
VS_VERSION: 2022
160160

161161
strategy:
162162
fail-fast: false
163163
matrix:
164164
os:
165-
- windows-2022
166-
- windows-2019
165+
- windows-2025
167166
platform: [x64, x86]
168167

169168
steps:
@@ -186,7 +185,7 @@ jobs:
186185
shell: cmd
187186
env:
188187
PLATFORM: ${{ matrix.platform }}
189-
VS_SCRIPT: ${{ matrix.os == 'windows-2022' && 'C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat' || 'C:\Program Files (x86)\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat' }}
188+
VS_SCRIPT: C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat
190189
run: |
191190
set SEVENZIP=C:\Program Files\7-Zip
192191
set INNO6_SETUP_PATH=C:\Program Files (x86)\Inno Setup 6
@@ -211,6 +210,78 @@ jobs:
211210
name: firebird-windows-vs-${{ env.VS_VERSION }}-${{ matrix.platform }}-installer
212211
path: builds/install_images/*-windows-${{ matrix.platform }}.exe
213212

213+
# Windows ARM container is not yet available, so official build is done directly in Windows 11 runner
214+
build-windows-arm64:
215+
#if: github.ref_type != 'tag'
216+
runs-on: windows-11-arm
217+
env:
218+
VS_VERSION: 2022
219+
220+
steps:
221+
- name: Checkout
222+
uses: actions/checkout@v4
223+
with:
224+
fetch-depth: 10
225+
226+
- name: Adjust snapshot build number
227+
uses: ./.github/actions/adjust-snapshot-buildno
228+
229+
- name: Prepare
230+
shell: cmd
231+
run: |
232+
for /r %%i in (*.bat) do unix2dos "%%i"
233+
REM choco uninstall --no-progress --yes innosetup
234+
choco install --no-progress --yes innosetup --version=6.4.0
235+
236+
- name: Build
237+
shell: cmd
238+
env:
239+
VS_SCRIPT: C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat
240+
run: |
241+
set SEVENZIP=C:\Program Files\7-Zip
242+
set INNO6_SETUP_PATH=C:\Program Files (x86)\Inno Setup 6
243+
set FB_VS_ARCH=arm64
244+
set FB_PROCESSOR_ARCHITECTURE=ARM64
245+
call "%VS_SCRIPT%" -arch=%FB_VS_ARCH%
246+
cd builds\win32
247+
call run_all.bat PDB
248+
call run_tests.bat
249+
250+
- name: Upload zip
251+
uses: actions/upload-artifact@v4
252+
with:
253+
name: firebird-windows-arm64-zip
254+
path: builds/install_images/Firebird-*-windows-arm64.zip
255+
256+
- name: Upload zip (withDebugSymbols)
257+
uses: actions/upload-artifact@v4
258+
with:
259+
name: firebird-windows-arm64-withDebugSymbols-zip
260+
path: builds/install_images/Firebird-*-windows-arm64-withDebugSymbols.zip
261+
262+
- name: Upload installer
263+
uses: actions/upload-artifact@v4
264+
with:
265+
name: firebird-windows-arm64-installer
266+
path: builds/install_images/*-windows-arm64.exe
267+
268+
- name: Upload installer (withDebugSymbols)
269+
uses: actions/upload-artifact@v4
270+
with:
271+
name: firebird-windows-arm64-withDebugSymbols-installer
272+
path: builds/install_images/*-windows-arm64-withDebugSymbols.exe
273+
274+
- name: Create release
275+
uses: ./.github/actions/create-release
276+
with:
277+
token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
278+
deletePatterns: |
279+
Firebird-*-windows-arm64*.exe
280+
Firebird-*-windows-arm64*.zip
281+
uploadFiles: |
282+
builds/install_images/Firebird-*-windows-arm64*.exe
283+
builds/install_images/Firebird-*-windows-arm64*.zip
284+
214285
build-windows-docker:
215286
runs-on: windows-2022
216287

@@ -290,8 +361,6 @@ jobs:
290361
build-macos:
291362
name: build-macos-${{ matrix.arch }}
292363
runs-on: ${{ (matrix.arch == 'arm64' && 'macos-14') || 'macos-13' }}
293-
env:
294-
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
295364

296365
strategy:
297366
fail-fast: false
@@ -312,14 +381,16 @@ jobs:
312381

313382
- name: Prepare - Install tools
314383
run: |
315-
brew install automake autoconf-archive cmake libtool ninja
384+
brew install --quiet automake autoconf-archive libtool ninja
316385
317-
- name: Export GitHub Actions cache environment variables
318-
uses: actions/github-script@v7
386+
- name: Restore vcpkg cache
387+
uses: actions/cache/restore@v4
388+
id: restore-vcpkg-cache
319389
with:
320-
script: |
321-
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
322-
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
390+
path: ~/.cache/vcpkg/archives
391+
key: vcpkg-cache-${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('vcpkg-custom/**', 'vcpkg.json', 'vcpkg-configuration.json') }}
392+
restore-keys: |
393+
vcpkg-cache-${{ runner.os }}-${{ matrix.arch }}-
323394
324395
- name: Build
325396
run: |
@@ -347,6 +418,14 @@ jobs:
347418
mkdir gen/artifacts
348419
mv gen/Release/*.pkg gen/artifacts
349420
421+
- name: Save vcpkg cache
422+
uses: actions/cache/save@v4
423+
# Saves if the key changed (hashes on vcpkg/**, vcpkg.json, vcpkg-configuration.json)
424+
if: steps.restore-vcpkg-cache.outputs.cache-hit != 'true'
425+
with:
426+
path: ~/.cache/vcpkg/archives
427+
key: ${{ steps.restore-vcpkg-cache.outputs.cache-primary-key }}
428+
350429
- name: Upload installer
351430
uses: actions/upload-artifact@v4
352431
with:

.github/workflows/tzdata-update.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: tzdata-update
22

33
on:
4+
workflow_dispatch:
45
schedule:
56
- cron: '0 11 * * *'
67

@@ -22,12 +23,14 @@ jobs:
2223
with:
2324
ref: ${{ matrix.branch }}
2425

25-
- name: Checkout ICU
26-
run: GIT_CLONE_PROTECTION_ACTIVE=false git clone --depth 1 https://github.com/unicode-org/icu-data.git -b main /tmp/icu-checkout
26+
- name: Download ICU
27+
run: |
28+
wget --no-verbose -O /tmp/icu.zip https://github.com/unicode-org/icu-data/archive/refs/heads/main.zip
29+
unzip -d /tmp /tmp/icu.zip
2730
2831
- name: Check and update
2932
run: |
30-
VERSION=`ls /tmp/icu-checkout/tzdata/icunew/ -r1a |head -1`
33+
VERSION=`ls /tmp/icu-data-main/tzdata/icunew/ -r1a |head -1`
3134
echo Last version: $VERSION
3235
3336
if [ "$VERSION" == "`cat extern/icu/tzdata/version.txt`" ]

builds/docker/windows/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ SHELL ["cmd", "/S", "/C"]
1010
# - Open (extract) the downloaded file, for example using 7-Zip.
1111
# - Open file vs_setup_bootstrapper.json and extract the installChannelUri to VS_INSTALL_CHANNEL_URI.
1212

13-
# 17.7.4
14-
ARG VS_INSTALL_CHANNEL_URI=https://aka.ms/vs/17/release/134599118_118780349/channel
13+
# 17.13.6
14+
ARG VS_INSTALL_CHANNEL_URI=https://aka.ms/vs/17/release/656692964_-684260800/channel
1515

1616
ADD https://aka.ms/vs/17/release/vs_buildtools.exe C:/temp/vs_BuildTools.exe
1717

builds/install/arch-specific/hpux/super/postInstall.sh.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ writeNewPassword() {
137137
if [ $NewPasswd = "masterkey" ]
138138
then
139139
echo "# for install on `hostname` at time `date`" >> $DBAPasswordFile
140-
echo "# You should change this password at the earliest oportunity" >> $DBAPasswordFile
140+
echo "# You should change this password at the earliest opportunity" >> $DBAPasswordFile
141141
else
142142
echo "# generated on `hostname` at time `date`" >> $DBAPasswordFile
143143
fi

builds/install/arch-specific/win32/BuildExecutableInstall.bat

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,11 @@ set FBBUILD_INSTALL_IMAGES=%FB_ROOT_PATH%\builds\install_images
176176
@if "%FB_TARGET_PLATFORM%"=="x64" (
177177
set FBBUILD_FILE_ID=%PRODUCT_VER_STRING%-%FBBUILD_PACKAGE_NUMBER%%FBBUILD_FILENAME_SUFFIX%-windows-x64
178178
) else (
179-
set FBBUILD_FILE_ID=%PRODUCT_VER_STRING%-%FBBUILD_PACKAGE_NUMBER%%FBBUILD_FILENAME_SUFFIX%-windows-x86
179+
@if "%FB_TARGET_PLATFORM%"=="arm64" (
180+
set FBBUILD_FILE_ID=%PRODUCT_VER_STRING%-%FBBUILD_PACKAGE_NUMBER%%FBBUILD_FILENAME_SUFFIX%-windows-arm64
181+
) else (
182+
set FBBUILD_FILE_ID=%PRODUCT_VER_STRING%-%FBBUILD_PACKAGE_NUMBER%%FBBUILD_FILENAME_SUFFIX%-windows-x86
183+
)
180184
)
181185

182186
@setlocal
@@ -489,7 +493,11 @@ for %%v in (IPLicense.txt IDPLicense.txt ) do (
489493
::
490494
::=================================================
491495
@echo.
492-
@call %ISCC_COMMAND% %FB_ROOT_PATH%\builds\install\arch-specific\win32\FirebirdInstall.iss
496+
if "%FB_TARGET_PLATFORM%"=="arm64" (
497+
@call %ISCC_COMMAND% /DPlatformTarget=arm64 %FB_ROOT_PATH%\builds\install\arch-specific\win32\FirebirdInstall.iss
498+
) else (
499+
@call %ISCC_COMMAND% %FB_ROOT_PATH%\builds\install\arch-specific\win32\FirebirdInstall.iss
500+
)
493501
@echo.
494502

495503
::End of ISX_PACK

builds/install/arch-specific/win32/FirebirdInstall.iss

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,13 +212,18 @@
212212
;Assume native platform
213213
#if IsWin64
214214
#define PlatformTarget "x64"
215+
;---- IsArm64 is not available in preprocessor, so /DPlatformTarget=arm64 should be passed in the command line
216+
;#elif IsArm64
217+
;#define PlatformTarget "arm64"
215218
#else
216219
#define PlatformTarget "win32"
217220
#endif
218221
#endif
219222

220223
#if PlatformTarget == "x64"
221224
#define ReleasePlatformTarget "x64"
225+
#elif PlatformTarget == "arm64"
226+
#define ReleasePlatformTarget "arm64"
222227
#else
223228
#define ReleasePlatformTarget "x86"
224229
#endif
@@ -309,7 +314,12 @@ WizardResizable=yes
309314
WizardImageFile={#ScriptsDir}\firebird_install_logo1.bmp
310315
WizardSmallImageFile={#ScriptsDir}\firebird_install_logo1.bmp
311316

317+
#if PlatformTarget == "arm64"
318+
DefaultDirName={code:ChooseInstallDir|{commonpf64}\Firebird\Firebird_{#AppVer}}
319+
#else
312320
DefaultDirName={code:ChooseInstallDir|{commonpf}\Firebird\Firebird_{#AppVer}}
321+
#endif
322+
313323
DefaultGroupName=Firebird {#GroupnameVer} ({#PlatformTarget})
314324

315325
UninstallDisplayIcon={code:ChooseUninstallIcon|{#UninstallBinary}}
@@ -327,6 +337,9 @@ SetupMutex={#MyAppName}
327337
#if PlatformTarget == "x64"
328338
ArchitecturesAllowed=x64
329339
ArchitecturesInstallIn64BitMode=x64
340+
#elif PlatformTarget == "arm64"
341+
ArchitecturesAllowed=arm64
342+
ArchitecturesInstallIn64BitMode=arm64
330343
#endif
331344

332345
;This feature is incomplete, as more thought is required.
@@ -398,9 +411,12 @@ Name: CopyFbClientAsGds32Task; Description: {cm:CopyFbClientAsGds32Task}; Compon
398411
[Run]
399412
; due to the changes required to support MSVC15 support for earlier versions is now broken.
400413
#if Int(msvc_runtime_major_version,14) >= 14
414+
#if PlatformTarget != "arm64"
401415
Filename: msiexec.exe; Parameters: "/qn /norestart /i ""{tmp}\vccrt{#msvc_runtime_library_version}_Win32.msi"" /L*v ""{tmp}\vccrt{#msvc_runtime_library_version}_Win32.log"" "; StatusMsg: "Installing MSVC 32-bit runtime libraries to system directory"; Check: HasWI30; Components: ClientComponent;
402-
#if PlatformTarget == "x64"
416+
#elif PlatformTarget == "x64"
403417
Filename: msiexec.exe; Parameters: "/qn /norestart /i ""{tmp}\vccrt{#msvc_runtime_library_version}_x64.msi"" /L*v ""{tmp}\vccrt{#msvc_runtime_library_version}_x64.log"" "; StatusMsg: "Installing MSVC 64-bit runtime libraries to system directory"; Check: HasWI30; Components: ClientComponent;
418+
#elif PlatformTarget == "arm64"
419+
; Filename: msiexec.exe; Parameters: "/qn /norestart /i ""{tmp}\vccrt{#msvc_runtime_library_version}_arm64.msi"" /L*v ""{tmp}\vccrt{#msvc_runtime_library_version}_arm64.log"" "; StatusMsg: "Installing MSVC ARM64 runtime libraries to system directory"; Check: HasWI30; Components: ClientComponent;
404420
#endif
405421
#endif
406422

@@ -547,8 +563,10 @@ Source: {#WOW64Dir}\msvcp{#msvc_runtime_file_version}.dll; DestDir: {app}\WOW64;
547563
;In addition, O/S must have Windows Installer 3.0.
548564
Source: {#FilesDir}\system32\vccrt{#msvc_runtime_library_version}_x64.msi; DestDir: {tmp}; Check: HasWI30; MinVersion: {#MinVer}; Components: ClientComponent;
549565
Source: {#WOW64Dir}\system32\vccrt{#msvc_runtime_library_version}_Win32.msi; DestDir: {tmp}; Check: HasWI30; MinVersion: {#MinVer}; Components: ClientComponent;
550-
#else
566+
#elif PlatformTarget == "Win32"
551567
Source: {#FilesDir}\system32\vccrt{#msvc_runtime_library_version}_Win32.msi; DestDir: {tmp}; Check: HasWI30; MinVersion: {#MinVer}; Components: ClientComponent;
568+
#elif PlatformTarget == "arm64"
569+
; Source: {#FilesDir}\system32\vccrt{#msvc_runtime_library_version}_arm64.msi; DestDir: {tmp}; Check: HasWI30; MinVersion: {#MinVer}; Components: ClientComponent;
552570
#endif
553571
#endif
554572

builds/install/misc/firebird.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -700,7 +700,7 @@
700700
# active connections. If you do not like its default 2-hour keepalive timeout,
701701
# then adjust your server OS settings appropriately. On UNIX-like OS's,
702702
# modify contents of /proc/sys/net/ipv4/tcp_keepalive_*. On Windows,
703-
# follow instrutions of this article:
703+
# follow instructions of this article:
704704
# https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking/tcpip-and-nbt-configuration-parameters
705705
#
706706
# Per-connection configurable.

0 commit comments

Comments
 (0)