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