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
>
>
>
From 3c9734af02be23a002abe0d4ce733855efb3cb39 Mon Sep 17 00:00:00 2001
From: Bob <14ubo...@gmail.com>
Date: Sat, 26 Dec 2020 11:50:04 +0000
Subject: [PATCH] mychanges

---
 jhbuild/utils/subprocess_win32.py |  4 ++++
 jhbuild/utils/systeminstall.py    | 18 +++++++++++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/jhbuild/utils/subprocess_win32.py b/jhbuild/utils/subprocess_win32.py
index 12888d0..ca1c1da 100644
--- a/jhbuild/utils/subprocess_win32.py
+++ b/jhbuild/utils/subprocess_win32.py
@@ -88,6 +88,10 @@ def cmdline2list(cmd_string):
 
 list2cmdline = real_subprocess.list2cmdline
 
+check_output = real_subprocess.check_output
+
+call = real_subprocess.call
+
 class Popen(real_subprocess.Popen):
     __emulate_close_fds = False
 
diff --git a/jhbuild/utils/systeminstall.py b/jhbuild/utils/systeminstall.py
index 610be80..4206c20 100644
--- a/jhbuild/utils/systeminstall.py
+++ b/jhbuild/utils/systeminstall.py
@@ -104,6 +104,8 @@ def get_uninstalled_filenames(uninstalled):
     return uninstalled_filenames
 
 def systemdependencies_met(module_name, sysdeps, config):
+    print(module_name)
+#    print(sysdeps)
     '''Returns True of the system dependencies are met for module_name'''
     def get_c_include_search_paths(config):
         '''returns a list of C include paths (-I) from the environment and the
@@ -116,7 +118,7 @@ def systemdependencies_met(module_name, sysdeps, config):
             if os.name == 'nt':
                 # shlex.split doesn't handle sep '\' on Windows
                 import string
-                shell_split = string.split
+                shell_split = str.split
             else:
                 shell_split = shlex.split
             try:
@@ -125,8 +127,10 @@ def systemdependencies_met(module_name, sysdeps, config):
                     if arg.strip() in ['-I', '-isystem']:
                         # extract paths handling quotes and multiple paths
                         paths += shell_split(next(itr))[0].split(os.pathsep)
+#                        print(paths)
                     elif arg.startswith('-I'):
                         paths += shell_split(arg[2:])[0].split(os.pathsep)
+#                        print(paths)
             except StopIteration:
                 pass
             return paths
@@ -151,10 +155,13 @@ def systemdependencies_met(module_name, sysdeps, config):
         paths += os.environ.get('C_INCLUDE_PATH', '').split(':')
         paths += os.environ.get('CPLUS_INCLUDE_PATH', '').split(':')
         paths = list(set(paths)) # remove duplicates
+        print("Last is: ", paths)
         return paths
 
     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]:
@@ -165,6 +172,12 @@ def systemdependencies_met(module_name, sysdeps, config):
                 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:
@@ -175,6 +188,9 @@ def systemdependencies_met(module_name, sysdeps, 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
-- 
2.10.1.windows.1

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

Reply via email to