[GNC-dev] Windows Build VM

Manfred Usselmann manfred at usselmann.de
Thu Nov 9 19:21:40 EST 2023


Am 2023-11-09 22:46, schrieb John Ralls:
>> On Nov 9, 2023, at 1:38 PM, Manfred Usselmann <manfred at usselmann.de> 
>> wrote:
>> Am 2023-11-07 04:53, schrieb john:
>>>> On Nov 6, 2023, at 16:12, Manfred Usselmann <manfred at usselmann.de> 
>>>> wrote:
>>>> Am 2023-11-06 19:31, schrieb john:
>>>>> On Nov 6, 2023, at 05:11, Manfred Usselmann <manfred at usselmann.de> 
>>>>> wrote:
>>>>> Am 2023-10-01 17:47, schrieb john:
>>>>>>> On Oct 1, 2023, at 06:00, Derek Atkins <derek at ihtfp.com> wrote:
>>>>>>> On Sun, October 1, 2023 12:00 am, flywire wrote:
>>>>>>>> https://lists.gnucash.org/pipermail/gnucash-user/2023-April/106619.html
>>>>>>>> John wrote:
>>>>>>>>> we don't have a Windows CI action, the nightly builds are done 
>>>>>>>>> with the
>>>>>>>>> https://github.com/gnucash/GnuCash-on-windows powershell 
>>>>>>>>> scripts on a
>>>>>>>>> Windows VM in Derek's basement.
>>>>> The nightly builds are those on 
>>>>> https://code.gnucash.org/builds/win32/stable/, right?
>>>>> Would it be possible to additonally provide a version there which 
>>>>> includes the Python bindings?
>>>> No, there's no way to make that work with an installed package.
>>>>> Since there already exists a working build environment, I would 
>>>>> hope that it's not too much work?
>>>> That depends on what you want to use for your Python. If you can use 
>>>> the MSYS2 environment from Powershell (some MSYS2 things work 
>>>> directly in Powershell, others need a Bash shell) then you can 
>>>> simply add -DWITH_PYTHON=ON to the CMakeArgs in jhbuild and build 
>>>> it. Don't run the installer, just add 
>>>> c:\gcdev64\gnucash\stable\inst\lib\python3.11\site-packages to 
>>>> PYTHONPATH and run your scripts.
>>>> If the MSYS2 python doesn't work for you then you'll need to fiddle 
>>>> with paths and such so that CMake finds the python libraries that 
>>>> you want it to. You must make sure that everything Python is linked 
>>>> to the same Python installation.
>>>> 
>>>> Thanks, this sounds promising.
>>>> 
>>>> Results so far:
>>>> 
>>>> - I had to set-executionpolicy Unrestricted.
>>>> 
>>>> - I had to add libgcrypt to setup-mngw54.ps1
>>>> 
>>>> - How do I add -DWITH_PYTHON=ON to jhbuildrc?
>>>>  append_autogenargs("gnucash", "-DWITH_PYTHON=ON")  ?
>>> 
>>> That will work.
>>> 
>> 
>> Good, thanks.
>> 
>>> 
>>>> 
>>>> - configure OpenSP fails:
>>>> 
>>>> checking build system type... Invalid configuration 
>>>> `x86_64-w64-mingw64': system `mingw64' not recognized
>>>> configure: error: /bin/sh 
>>>> /C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/src/OpenSP-1.5.2/config.sub 
>>>> x86_64-w64-mingw64 failed
>>>> *** Error during phase configure of OpenSP: ########## Error running 
>>>> /bin/bash -c "pushd 
>>>> /C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/src/OpenSP-1.5.2 
>>>> && ./autoinit.sh && popd && 
>>>> /C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/src/OpenSP-1.5.2/configure 
>>>> --prefix /C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst 
>>>>  --disable-Werror --disable-static --enable-shared 
>>>> --disable-doc-build --disable-nls --build=x86_64-w64-mingw64" *** 
>>>> [1/14]
>>> 
>>> That probably requires regenerating configure, which may or may not 
>>> be as simple as running autoinit.sh.
>> Autoinit is already called for OpenSP in gnucash.modules. I'm afraid 
>> this is a bit over my head. :-(
> 
> Then do a mingw32 build like the distribution. We know that works.

Ok, this looks better but ends with

I: Deleting .la file: 
'/C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/_jhbuild/root-libofx/C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/libofx.la'
I: Moving temporary DESTDIR 
'/C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/_jhbuild/root-libofx' 
into build prefix
Traceback (most recent call last):
   File "/usr/bin/jhbuild", line 23, in <module>
     jhbuild.main.main(sys.argv[1:])
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/main.py", 
line 118, in main
     rc = jhbuild.commands.run(command, config, args, help=lambda: 
print_help(parser))
          
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/commands/__init__.py", 
line 186, in run
     return cmd.execute(config, args, help)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/commands/__init__.py", 
line 53, in execute
     return self.run(config, options, args, help)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/commands/base.py", 
line 263, in run
     return build.build()
            ^^^^^^^^^^^^^
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/frontends/buildscript.py", 
line 171, in build
     error, altphases = module.run_phase(self, phase)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/modtypes/__init__.py", 
line 422, in run_phase
     method(buildscript)
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/modtypes/autotools.py", 
line 320, in do_install
     self.process_install(buildscript, self.get_revision())
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/modtypes/__init__.py", 
line 389, in process_install
     buildscript.moduleset.packagedb.add(self.name, revision or '',
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/utils/packagedb.py", 
line 176, in add
     pkg.write()
   File 
"/C/users/mu/Entwicklung/GnuCash/gcdev64/src/jhbuild.git/jhbuild/utils/packagedb.py", 
line 79, in write
     writer.fp.write('\n'.join(self.manifest).encode('utf-8', 
'backslashreplace') + b'\n')
                     ^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: can only join an iterable

Regards,
Manfred


More information about the gnucash-devel mailing list