I finally got back to this this week. There's a simple patch, which I've pushed 
to gnucash-on-windows.git/patches/jhbuild.patch, to get jhbuild to lose the 
leading / from pkgconf's version of pkg-config --list-all. That fixes the major 
problem of nothing being able to find its dependencies with pkg-config, and 
with that fixed everything seems to work normally again.

Except that MSYS2 did a major update recently and bumped the ICU version, and 
that breaks mingw-w64-webkitgtk. I've got a new one building, with luck it will 
be done tomorrow.

Regards,
John Ralls

> On Dec 27, 2020, at 4:25 PM, John Ralls <jra...@ceridwen.us> wrote:
> 
> Bob,
> 
> I poked at this for a few hours today. I found that the only thing that needs 
> adjusting is to remove or comment out line 66 ($env:MSYSTEM = 'MINGW32') in 
> buildserver/build_package.ps1.
> 
> I also found an error in jhbuild, this patch fixes it:
> diff --git a/jhbuild/utils/packagedb.py b/jhbuild/utils/packagedb.py
> index b938c27c..b9d6d135 100644
> --- a/jhbuild/utils/packagedb.py
> +++ b/jhbuild/utils/packagedb.py
> @@ -76,7 +76,7 @@ class PackageEntry:
>         # write manifest
>         fileutils.mkdir_with_parents(os.path.join(self.dirname, 'manifests'))
>         writer = fileutils.SafeWriter(os.path.join(self.dirname, 'manifests', 
> self.package))
> -        writer.fp.write('\n'.join(self.manifest).encode('utf-8', 
> 'backslashreplace') + b'\n')
> +        writer.fp.write('\n'.join(self._manifest).encode('utf-8', 
> 'backslashreplace') + b'\n')
>         writer.commit()
> 
>     def remove(self):
> 
> And things seem to be building OK now.
> 
> Regards,
> John Ralls
> 
> 
> 
>> On Dec 26, 2020, at 4:01 AM, Robert Fewell <14ubo...@gmail.com> wrote:
>> 
>> John,
>> Yes I did amend jhbuildrc.
>> 
>> Had another poke at it, I ran the setup-mingw64.ps1 file again using all 
>> defaults to completion.
>> pkg-config gives said out put.
>> Down graded cmake to version 3.18.4-1
>> Installed mingw pkg-config which uninstalled pkgconf.
>> 
>> Changed to gnucash-on-windows.git and tried jhbuild command
>> got error importing jhbuild - needed to change path.insert to be of form 
>> c:\\gcdev64\src\jhbuild.git'
>> 
>> Changing that then gave the subprocess error
>> I then made all the changes in mypatch file which seemed to work but I then 
>> got the following directory structure c\gcdev64\downloads and gnucash....
>> 
>> So I changed  jhbuildrc to the following
>> _basedir = "c:\gcdev64"
>> _download_dir ="c:\gcdev64\downloads"
>> 
>> And now OpenSP was downloaded and started to configure and build I think and 
>> then errored.
>> 
>> That's as far I can go.
>> 
>> Regards,
>> Bob
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> On Sat, 26 Dec 2020 at 03:38, John Ralls <jra...@ceridwen.us> wrote:
>> 
>> 
>>> On Dec 24, 2020, at 7:51 AM, Robert Fewell <14ubo...@gmail.com> wrote:
>>> 
>>> John,
>>> 
>>> I think this is down to paths / filenames, I can fix all the missing 
>>> dependencies by doing this...
>>> 
>>> 
>>>    c_include_search_paths = None
>>>    for dep_type, value, altdeps in sysdeps:
>>>        print("dep_type: ", dep_type)
>>>        print("value is: ", value)
>>>        dep_met = True
>>>        if dep_type.lower() == 'path':
>>>            if os.path.split(value)[0]:
>>>                if not os.path.isfile(value) and not os.access(value, 
>>> os.X_OK):
>>>                    dep_met = False
>>>            else:
>>>                pathdirs = set(os.environ.get('PATH', '').split(os.pathsep))
>>>                pathdirs.update(['/sbin', '/usr/sbin'])
>>>                for path in pathdirs:
>>>                    filename = os.path.join(path, value)
>>>                    filename = filename.replace("/c/", "/")
>>>                    print("path filename is: ", filename)
>>>                    if os.path.isfile(filename) and os.access(filename, 
>>> os.X_OK):
>>>                        break
>>>                    filename = filename + ".exe"
>>>                    print("path filename is: ", filename)
>>>                    if os.path.isfile(filename) and os.access(filename, 
>>> os.X_OK):
>>>                        break
>>>                else:
>>>                    dep_met = False
>>>        elif dep_type.lower() == 'c_include':
>>>            if c_include_search_paths is None:
>>>                c_include_search_paths = get_c_include_search_paths(config)
>>>            found = False
>>>            for path in c_include_search_paths:
>>>                filename = os.path.join(path, value)
>>>                print("filename is: ", filename)
>>>                filename = filename.replace("/c/", "/")
>>>                print("filename is: ", filename)
>>>                if os.path.isfile(filename):
>>>                    found = True
>>>                    break
>>>            if not found:
>>>                dep_met = False
>>> 
>>> Not very portable but may give you an idea for correct fix.
>>> 
>>> Now I get ....
>>> Traceback (most recent call last):
>>>  File "C:/gcdev64/msys2/usr/bin/jhbuild", line 23, in <module>
>>>    jhbuild.main.main(sys.argv[1:])
>>>  File "c:\gcdev64\src\jhbuild.git/jhbuild/main.py", line 120, in main
>>>    rc = jhbuild.commands.run(command, config, args, help=lambda: 
>>> print_help(parser))
>>>  File "c:\gcdev64\src\jhbuild.git/jhbuild/commands/__init__.py", line 188, 
>>> in run
>>>    return cmd.execute(config, args, help)
>>>  File "c:\gcdev64\src\jhbuild.git/jhbuild/commands/__init__.py", line 56, 
>>> in execute
>>>    return self.run(config, options, args, help)
>>>  File "c:\gcdev64\src\jhbuild.git/jhbuild/commands/base.py", line 262, in 
>>> run
>>>    build = jhbuild.frontends.get_buildscript(config, module_list, 
>>> module_set=module_set)
>>>  File "c:\gcdev64\src\jhbuild.git/jhbuild/frontends/__init__.py", line 27, 
>>> in get_buildscript
>>>    return BuildScript(config, module_list, module_set=module_set)
>>>  File "c:\gcdev64\src\jhbuild.git/jhbuild/frontends/terminal.py", line 111, 
>>> in __init__
>>>    buildscript.BuildScript.__init__(self, config, module_list, 
>>> module_set=module_set)
>>>  File "c:\gcdev64\src\jhbuild.git/jhbuild/frontends/buildscript.py", line 
>>> 78, in __init__
>>>    subprocess.call(chrt_args + ['true'], stdout=devnull, stderr=devnull) == 
>>> 0):
>>> AttributeError: module 'jhbuild.utils.subprocess_win32' has no attribute 
>>> 'call'
>> 
>> Bob,
>> 
>> Did you add that python fragment to jhbuildrc?
>> 
>> I tested two things yesterday: Installing a fresh build environment and 
>> running pacman -Syuu on my current one. In the latter I found that the 
>> replacement of pkg-config with pkgconf was a dependency of cmake 3.19 so I 
>> set an ignore on cmake in pacman.conf before allowing the upgrade to 
>> proceed. I also pulled the latest jhbuild. That one works fine.
>> 
>> I'm trying figure out what's making subprocess_win32 to break subprocess on 
>> the new install while it works OK on the old one. The python packages are 
>> the same and I've made sure that both jhbuild repos are at the current HEAD. 
>> I rolled back cmake to 3.18 and reinstalled pkg-config replacing pkgconf. 
>> 
>> Regards,
>> John Ralls
>> 
>> 
>> <0001-mychanges.patch>
> 
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel@gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to