gnucash-on-windows future: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Sun Sep 13 17:34:30 EDT 2026


Updated	 via  https://github.com/Gnucash/gnucash-on-windows/commit/2ec77941 (commit)
	 via  https://github.com/Gnucash/gnucash-on-windows/commit/36cdfe0e (commit)
	from  https://github.com/Gnucash/gnucash-on-windows/commit/61926319 (commit)



commit 2ec77941120973eb9cdd494aa5e93f4520f02725
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Sep 13 14:34:03 2026 -0700

    Explicitly tell inno setup to put the dbi drivers in lib/dbd
    
    Inno Setup v5 and later doesn't do so otherwise unlike Inno Setup 3

diff --git a/inno_setup/gnucash-mingw64.iss b/inno_setup/gnucash-mingw64.iss
index 3ba55b8..6cc62a3 100644
--- a/inno_setup/gnucash-mingw64.iss
+++ b/inno_setup/gnucash-mingw64.iss
@@ -208,7 +208,7 @@ Source: "@MINGW_DIR@\bin\zlib1.dll"; DestDir: "{app}\bin"; Components: main
 Source: "@MINGW_DIR@\bin\gspawn-win64-helper.exe"; DestDir: "{app}\bin"; Components: main
 Source: "@MINGW_DIR@\bin\gspawn-win64-helper-console.exe"; DestDir: "{app}\bin"; Components: main
 
-Source: "@MINGW_DIR@\lib\dbd\*.dll"; DestDir: "{app}\lib"; Components: main
+Source: "@MINGW_DIR@\lib\dbd\*.dll"; DestDir: "{app}\lib\dbd"; Components: main
 Source: "@MINGW_DIR@\lib\aqbanking\*"; DestDir: "{app}\lib\aqbanking"; Excludes: "*.dll.a"; Flags: recursesubdirs; Components: main
 Source: "@MINGW_DIR@\lib\gwenhywfar\*"; DestDir: "{app}\lib\gwenhywfar"; Excludes: "*.dll.a"; Flags: recursesubdirs; Components: main
 Source: "@MINGW_DIR@\lib\gdk-pixbuf-2.0\2.10.0\loaders\*.dll"; DestDir: "{app}\lib\gdk-pixbuf-2.0\2.10.0\loaders"; Components: main

commit 36cdfe0e5d94f544bc52694482e2d75736d3d059
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Sep 13 14:32:04 2026 -0700

    Finish converting bundle-mingw.ps1 for the future branch.

diff --git a/bundle-mingw64.ps1 b/bundle-mingw64.ps1
index 0e11edf..7822622 100644
--- a/bundle-mingw64.ps1
+++ b/bundle-mingw64.ps1
@@ -51,14 +51,15 @@ Optional. Boolean to indicate whether or not this is a git build. Default $true
 #>
 
 [CmdletBinding()]
-Param(4
-    [Parameter(Mandatory=$true)] [string]$mingw_prefix=c:\gcdev64\msys2\ucrt64,
-    [Parameter(Mandatory=$true)] [string]$gnc_build_dir=c:\gcdev64\gnucash-build
-    [Parameter(Mandatory=$true)] [string],$prefix=c:\gcdev64\inst
-    [Parameter(Mandatory=$true)] [bool]$git_build=$true
+Param(
+    [Parameter(Mandatory=$false)] [string]$mingw_prefix="c:\gcdev64\msys2\ucrt64",
+    [Parameter(Mandatory=$false)] [string]$gnc_build_dir="c:\gcdev64\gnucash-build",
+    [Parameter(Mandatory=$false)] [string]$prefix="c:\gcdev64\inst",
+    [Parameter(Mandatory=$false)] [bool]$git_build=$true
 )
 
 $script_dir = Split-Path $script:MyInvocation.MyCommand.Path
+$root_dir = Split-Path -Path $mingw_prefix
 
 $progressPreference = 'silentlyContinue'
 
@@ -79,25 +80,18 @@ function version_item([string]$tag, [string]$path) {
 
 function bash-command() {
     param ([string]$command = "")
-    if (!(test-path -path $root_dir\msys2\usr\bin\bash.exe)) {
+    if (!(test-path -path $root_dir\usr\bin\bash.exe)) {
 	write-host "Shell program not found, aborting."
 	exit
     }
     #write-host "Running bash command ""$command"""
-    Start-Process -FilePath "$root_dir\msys2\usr\bin\bash.exe" -ArgumentList "-c ""export PATH=/usr/bin; $command""" -NoNewWindow -Wait
+    Start-Process -FilePath "$root_dir\usr\bin\bash.exe" -ArgumentList "-c ""export PATH=/usr/bin; $command""" -NoNewWindow -Wait
 }
 
 function make-unixpath([string]$path) {
     $path -replace  "^([A-Z]):", '/$1' -replace "\\", '/'
 }
 
-if ($git_build) {
-  $gnucash = "gnucash-git"
-}
-else {
-  $gnucash = get-childitem -path $target_dir\build | where-object {$_.Name -match "gnucash-[0-9.]+"} |sort-object -Property {$_.CreationTime} | select-object -last 1
-}
-
 if ($PSVersionTable.PSVersion.Major -ge 3) {
     $PSDefaultParameterValues['*:Encoding'] = 'utf8'
     }
@@ -109,20 +103,22 @@ $minor_version = version_item -tag "PROJECT_VERSION_MINOR" -path $gnc_config_h
 $package_version = "$major_version.$minor_version"
 
 $date = get-date -format "yyyy-MM-dd"
-$setup_result =  "$prefix\gnucash-$package_version.setup.exe"
+$setup_result =  "gnucash-$package_version.setup.exe"
 $final_file = ""
 if ($git_build) {
-  $gnc_vcsinfo_h = "$target_dir\build\gnucash-git\libgnucash\core-utils\gnc-vcs-info.h"
+  $gnc_vcsinfo_h = "$gnc_build_dir\libgnucash\core-utils\gnc-vcs-info.h"
   $vcs_rev = version_item -tag "GNC_VCS_REV" -path $gnc_vcsinfo_h | %{$_ -replace """", ""}
-  $final_file = "$target_dir\gnucash-$package_version-$date-git-$vcs_rev.setup.exe"
+  $final_file = "gnucash-$package_version-$date-git-$vcs_rev.setup.exe"
   }
 else {
-  $final_file = "$target_dir\gnucash-$package_version.setup.exe"
+  $final_file = "gnucash-$package_version.setup.exe"
 }
 
+# Consolidate the GLib Schemas and compile them:
 $schema_dir = "share\glib-2.0\schemas"
 $target_schema_dir = "$prefix\$schema_dir"
 copy-item $mingw_prefix\$schema_dir\org.gtk.Settings.* $target_schema_dir
+copy-item $mingw_prefix\$schema_dir\org.gnome.desktop.enums.xml $target_schema_dir
 $target_schema_unix = make-unixpath -path $target_schema_dir
 $schema_compiler = make-unixpath -path "$mingw_prefix\bin\glib-compile-schemas"
 bash-command("$schema_compiler $target_schema_unix")
@@ -141,17 +137,12 @@ foreach ($msgcat in "gtk30.mo", "gtk32-properties.mo", "iso_4217.mo ", "aqbankin
 	}
     }
 }
-# We also need to consolidate the GSettings schemas and compile them.
-copy-item "$mingw_prefix\share\glib-2.0\schemas\*.gschema.xml" "$prefix\share\glib-2.0\schemas"
-bash-command("$mingw_prefix/bin/glib-compile-schemas" "$prefix/share/glib-2.0/schemas")
 
 # configure gnucash.iss
 
-$msys_prefix = (msys2 -c 'cygpath -w $MSYSTEM_PREFIX').trim()
-
 $content = Get-Content -Raw -Path inno_setup\gnucash-mingw64.iss
-$content = $content.replace("@MINGW_DIR@", "$msys_prefix")
-$content = $content.replace("@INST_DIR@", "$Env:RUNNER_TEMP\inst")
+$content = $content.replace("@MINGW_DIR@", "$mingw_prefix")
+$content = $content.replace("@INST_DIR@", "$prefix")
 $content = $content.replace("@PACKAGE_VERSION@", "$package_version")
 $content = $content.replace("@PACKAGE@", "gnucash")
 $content = $content.replace("@GNUCASH_MAJOR_VERSION@", "$major_version")
@@ -164,7 +155,7 @@ write-host "Running Inno Setup to create $final_file."
 if (test-path -path $setup_result) {
     remove-item -path $setup_result
 }
-& ${env:ProgramFiles(x86)}\inno\iscc /Q $target_dir\gnucash.iss
+& "${env:ProgramFiles}\Inno Setup 7\ISCC.exe" /Q gnucash.iss
 
 if ($git_build) {
   if ((test-path -path $setup_result) -and (test-path -path $final_file)) {



Summary of changes:
 bundle-mingw64.ps1             | 43 +++++++++++++++++-------------------------
 inno_setup/gnucash-mingw64.iss |  2 +-
 2 files changed, 18 insertions(+), 27 deletions(-)



More information about the gnucash-changes mailing list