diff --git a/windows/nonAIO/builder/build_GrampsWin32.py b/windows/nonAIO/builder/build_GrampsWin32.py index 0de85a753..2f3fc8fb1 100644 --- a/windows/nonAIO/builder/build_GrampsWin32.py +++ b/windows/nonAIO/builder/build_GrampsWin32.py @@ -82,7 +82,7 @@ class buildbase(GObject.GObject): self.repository_path = '.' #where the source comes from, either SVN root or a tarball self.bBuildInstaller = True self.tarbase3 = '.' - + def getbuild_src(self): return os.path.join(self.build_root, 'src') @@ -100,7 +100,7 @@ class buildbase(GObject.GObject): log.debug('========== getSVNRevision(%s)' % dir) cmd = 'svnversion -n %s' % dir log.debug( "Running: %s" % cmd ) - + proc = subprocess.Popen( cmd, shell = True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) (out, err) = proc.communicate() output = string.strip(out) @@ -123,9 +123,9 @@ class buildbase(GObject.GObject): log.debug('========== exportSVN(%s, %s)' % (svn_dir, destdir) ) # cmd = '"%s" export %s %s' % (SVN_exe ,svn_dir, destdir) cmd = [SVN_exe, 'export' ,svn_dir, destdir] #'"%s" export %s %s' % (SVN_exe ,svn_dir, destdir) - + log.info( "Running: %s" % cmd) - + proc = subprocess.Popen( cmd, shell = True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) (out, err) = proc.communicate() output = string.strip(out) @@ -171,13 +171,13 @@ class buildbase(GObject.GObject): elif sys.platform == 'linux2': #assumption makensis is installed and on the path cmd = '%s -V3 %s' % (MAKENSIS_exe, pth2nsis_script) - + log.info( "Running: %s" % cmd) # Need to define the following enviroment variables for NSIS script os.environ['GRAMPS_VER'] = self.gramps_version os.environ['GRAMPS_BUILD_DIR'] = os.path.abspath(self.build_src) os.environ['GRAMPS_OUT_DIR'] = os.path.abspath(self.out_dir) - + proc = subprocess.Popen( cmd, shell = True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) (out, err) = proc.communicate() output = string.strip(out) @@ -191,7 +191,7 @@ class buildbase(GObject.GObject): conf_lines = fin.readlines() fin.close() return self.getVersionFromLines(conf_lines) - + def getVersionFromLines(self, conf_lines): log.debug('========== getVersionFromLines()') for line in conf_lines: @@ -225,11 +225,11 @@ class buildbase(GObject.GObject): po_files = glob.glob(po_dir + "\*.po") # no longer using python msgfmt as it doesn't handle plurals (april 2010) # msgfmtCmd = path.normpath(path.join(sys.prefix, "Tools/i18n/msgfmt.py") ) - + # GetText Win 32 obtained from http://gnuwin32.sourceforge.net/packages/gettext.htm # ....\gettext\bin\msgfmt.exe needs to be on the path msgfmtCmd = 'msgfmt.exe' - #print 'msgfmtCmd = %s' % msgfmtCmd + #print('msgfmtCmd = %s' % msgfmtCmd) elif sys.platform == 'linux2': po_files = glob.glob(po_dir + "/*.po") msgfmtCmd = "%s/bin/msgfmt" % sys.prefix @@ -304,7 +304,7 @@ class buildbase(GObject.GObject): try: log.info('removing directory: %s' % self.build_root ) shutil.rmtree(self.build_root) - except MY_EXCEPTION, e: + except MY_EXCEPTION as e: log.error( e ) for file in ['gramps-%s.exe'%self.gramps_version ]: #, 'build.log']: @@ -313,7 +313,7 @@ class buildbase(GObject.GObject): try: log.info('removing file: %s' % fname ) os.remove(fname) - except MY_EXCEPTION, e: + except MY_EXCEPTION as e: log.error( e ) def getNSISVersionNumber(self): @@ -322,7 +322,7 @@ class buildbase(GObject.GObject): # v2.42 cmd = '"%s" -VERSION' % (MAKENSIS_exe) log.debug(cmd) - + proc = subprocess.Popen( cmd, shell = True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) (out, err) = proc.communicate() output = string.strip(out) @@ -333,15 +333,15 @@ class buildbase(GObject.GObject): minor =0 major =0 return (major, minor) - + #parse the output to get version number into tuple ver = output[1:].split('.') major = int(ver[0]) try: minor = int(ver[1]) - except ValueError, e: + except ValueError as e: m = ver[1] - minor = int(m[:2]) + minor = int(m[:2]) return (major, minor) def checkForBuildTools(self): @@ -356,12 +356,12 @@ class buildbase(GObject.GObject): makensisexe = path.join( nsispath, 'makensis.exe') if path.isfile( makensisexe ): MAKENSIS_exe = makensisexe - except WindowsError, e: + except WindowsError as e: log.warning('NSIS not found, in registory') log.warning('..Testing if makensis is on the path') MAKENSIS_exe = 'makensis' #cmd = os.path.join(nsis_dir, MAKENSIS_exe) - + cmd = '%s /VERSION' % MAKENSIS_exe proc = subprocess.Popen( cmd, shell = True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) (out, err) = proc.communicate() @@ -376,7 +376,7 @@ class buildbase(GObject.GObject): # Find msgfmt on system cmd = os.path.join(msg_dir, 'msgfmt.exe') - + proc = subprocess.Popen( cmd, shell = True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) (out, err) = proc.communicate() output = string.strip(out) @@ -386,7 +386,7 @@ class buildbase(GObject.GObject): log.error('msgfmt.exe not found on path') log.error(' try the -m DIR , --msgdir=DIR option to specify the directory or put it on the path') sys.exit(0) - + # Find SVN on system - optional, if building from tarball if not bTarball: try: @@ -394,11 +394,11 @@ class buildbase(GObject.GObject): svnpath = winreg.QueryValue(key, '') if path.isfile(svnpath): SVN_exe = svnpath - except WindowsError, e: + except WindowsError as e: log.warning('SVN not found, in registory') log.warning('... Hoping svn is on the path') SVN_exe = 'svn' - + elif sys.platform == 'linux2': #ASSUMPTION: these tools are on the path #TODO: check for svn on Linux @@ -407,7 +407,7 @@ class buildbase(GObject.GObject): #TODO: check for nsis on Linux log.info( 'TODO: Check for nsis' ) MAKENSIS_exe = 'makensis' - + # Check if we are running a compatible vesion of NSIS vers = self.getNSISVersionNumber() if vers < MIN_NSIS_VERSION: @@ -417,7 +417,7 @@ class buildbase(GObject.GObject): else: self.bBuildInstaller = True log.info( "NSIS version %d.%d" % vers ) - + def expandTarBall(self, tarball, expand_dir): # gramps-3.1.0.tar.gz log.info( 'expandTarBall(%s, %s)' % (tarball, expand_dir) ) @@ -429,15 +429,15 @@ class buildbase(GObject.GObject): extractDir = os.path.join(self.out_dir, self.tarbase3 ) try: os.rename( extractDir, self.build_root) - except WindowsError, e: + except WindowsError as e: log.error("FAILED: \n\t extractDir=%s \n\t build_root=%s" % (extractDir, self.build_root)) - raise WindowsError, e + raise WindowsError(e) else: log.error( "Sorry %s is not a tar file" % self.repository_path ) def getVersionFromTarBall(self, tarball): log.debug( 'getVersionFromTarBall(%s)' % (tarball)) - + if tarfile.is_tarfile(self.repository_path): tar = tarfile.open(self.repository_path) members = tar.getnames() @@ -449,11 +449,11 @@ class buildbase(GObject.GObject): vers = self.getVersionFromLines(lines) if 'TODO' in member: #need to get path this will extract too, grab it of one of the files self.tarbase3, rest = member.split('/', 1) - print '==ExtractPath', self.tarbase3 + print('==ExtractPath', self.tarbase3) tar.close() log.debug( 'Version (%s)' % (vers) ) return vers - + def copyPatchTreeToDest(self, src, dst): '''Patch a tarball build with alternate files as required. At this stage do not allow new directories to be made or @@ -474,15 +474,15 @@ class buildbase(GObject.GObject): self.copyPatchTreeToDest(srcname, dstname) else: log.error('UNDEFINED: %s -> %s' % (srcname, dstname)) - except (IOError, os.error), why: + except (IOError, os.error) as why: errors.append((srcname, dstname, str(why))) # catch the Error from the recursive copytree so that we can # continue with other files - except Error, err: + except Error as err: errors.extend(err.args[0]) if errors: raise Error(errors) - + def buildGRAMPS( base, out_dir, bTarball): bo = buildbase() @@ -490,7 +490,7 @@ def buildGRAMPS( base, out_dir, bTarball): bo.out_dir = out_dir bo.bTarball = bTarball bo.bBuildInstaller = bBuildInstaller - + if not bo.bTarball and not bo.isGrampsRoot(bo.repository_path): log.error( '$$$$ BAD Gramps Root specified $$$$') else: @@ -513,7 +513,7 @@ def buildGRAMPS( base, out_dir, bTarball): bo.exportSVN(os.path.join(base, 'example'), os.path.join(bo.build_root, 'examples') ) bo.generateConstPy( ) bo.copyExtraFilesToBuildDir(base) - + if bPatchBuild: bo.copyPatchTreeToDest( patch_dir, bo.build_root ) if bBuildAll: @@ -568,7 +568,7 @@ Options: for o, a in opts: if o in ("-h", "--help"): - print usage + print(usage) sys.exit(0) if o in ("-o", "--out"): @@ -576,20 +576,20 @@ Options: if o in ("--nsis_only"): bBuildAll = False if o in ('-t', "--tarball"): - print 'This is a tarball build' + print('This is a tarball build') bTarball = True if o in ("-m", "--msgdir"): if os.path.isdir( a ): msg_dir = a else: - raise getopt.GetoptError, '\nERROR: msgfmt dir does not exist' + raise getopt.GetoptError('\nERROR: msgfmt dir does not exist') if o in ("-p", "--patch"): if os.path.isdir( a ): patch_dir = a bPatchBuild = True else: - raise getopt.GetoptError, '\nERROR: Patch directory does not exist' - + raise getopt.GetoptError('\nERROR: Patch directory does not exist') + if args: #got args use first one as base dir repository_path = path.normpath(args[0]) else: # no base dir passed in, work out one from current working dir @@ -601,21 +601,21 @@ Options: # raise getopt.GetoptError, '\nERROR: No base directory specified' if len(args) > 1: - raise getopt.GetoptError, '\nERROR: Too many arguments' + raise getopt.GetoptError('\nERROR: Too many arguments') - except getopt.GetoptError, msg: - print msg - print '\n %s' % usage + except getopt.GetoptError as msg: + print(msg) + print('\n %s' % usage) sys.exit(2) if bTarball: if not tarfile.is_tarfile(repository_path): - print "Tarball %s not a valid Tarball" % repository_path + print("Tarball %s not a valid Tarball" % repository_path) sys.exit(1) - - else: + + else: if not os.path.isdir(repository_path): - print "WC root directory not found; %s " % repository_path + print("WC root directory not found; %s " % repository_path) sys.exit(1) if out_dir == None: @@ -624,13 +624,13 @@ Options: else: out_dir = path.normpath(os.path.join(repository_path, 'windows')) log.info("Setting outdir to %s", out_dir) - + s_args = '' for value in sys.argv[1:]: s_args = s_args + ' %s'%value - print "======= build_GrampsWin32.py %s ========" % s_args + print("======= build_GrampsWin32.py %s ========" % s_args) log.debug('Using %s to find python tools' % sys.prefix) log.info('Platform: %s' % sys.platform) #========================== diff --git a/windows/nonAIO/builder/check_gtk_install.py b/windows/nonAIO/builder/check_gtk_install.py index 05bb3d2fd..4bc199a43 100644 --- a/windows/nonAIO/builder/check_gtk_install.py +++ b/windows/nonAIO/builder/check_gtk_install.py @@ -48,15 +48,15 @@ explain_safe = ''' ********************************************************** def RunExeCommand( app, args ): cmd = app + ' ' + args - #print "Running: ", cmd + #print("Running: ", cmd) stdin, stdout, stderr = os.popen3( cmd ) output = string.strip(stdout.read()) - #print output + #print(output) err = stderr.read() if err: - print err + print(err) return output - + def CheckGtkInReg(): global gtkPathInRegistry, gtkVersionInRegistry, dllPathInRegistry, dllPathShort log.info( '\n==== Checking Registry for GTK =====' ) @@ -68,8 +68,8 @@ def CheckGtkInReg(): log.info( ' Version : %s'% gtkVersionInRegistry ) log.info( ' Path : %s'% gtkPathInRegistry ) log.info( ' DllPath : %s'% dllPathInRegistry ) - - except WindowsError, e: + + except WindowsError as e: log.info( '\n GTK registry key not found in registry' ) log.info( ''' ******************************************************************** * This might not be an error, but means I don't know the directory to @@ -78,7 +78,7 @@ def CheckGtkInReg(): log.info( '-' * 60 ) log.info( usage ) sys.exit(0) - + def WorkOutShortDosPath(): global dllPathShort log.info( '\n==== Use win32Api to query short path name for GTK =====' ) @@ -99,11 +99,11 @@ def FindLibsWithCtypes(): dllpathvalid = False cpath = find_library(dll) if cpath: - #print cpath + #print(cpath) if cpath == os.path.join(dllPathInRegistry, dll) \ or cpath == os.path.join(dllPathShort, dll): dllpathvalid = True - + if not dllpathvalid: pp = os.path.dirname(cpath) if pp not in other_paths: @@ -140,17 +140,17 @@ def ScanDependencyFileForErrors(fname): if dirname.startswith(os.path.join(sysroot, 'winsxs').lower()) \ or dirname.startswith(os.path.join(sys.prefix, 'lib\site-packages\gtk-2.0').lower()): OK = True - + for pth in acceptablePaths: if dirname == pth.lower(): OK = True - + if 'MSVCR90.DLL' in filename: if parts[0] == 'Error': runtimedlls[filename] = "Error dll not found" else: runtimedlls[filename] = parts[16] - + if OK == False: if parts[0] == 'Error': log.info( " %s \tError dll not found" %( filename)) @@ -163,7 +163,7 @@ def ScanDependencyFileForErrors(fname): log.info( '\n MS runtime Version %s loaded from' % runtimedlls[rtdll] ) log.info( " %s" %rtdll ) log.info( '') - + def CheckWithDependencyWalker(): log.info( '\n==== Checking with Dependency Walker ====' ) log.info( ' Please be patient takes some time' ) @@ -180,7 +180,7 @@ def CheckWithDependencyWalker(): #delete the output file before running command try: os.remove(fout) - except WindowsError, e: + except WindowsError as e: pass log.info( ' Testing file %s' % ftest ) out = RunExeCommand(exe, '/c /f1 /ot "%s" "%s"' % (fout, ftest) ) @@ -192,7 +192,7 @@ def CheckWithDependencyWalker(): log.info( ' Cannot check with dependency walker, not installed in local directory' ) log.info( ' get dependency walker from http://www.dependencywalker.com/' ) log.info( ' and unzip into this directory for it to work.' ) - + def CheckPathForOtherGtkInstalls(): log.info( '\n====Checking environment path for other gtk installations====' ) ePath = os.environ['path'] @@ -201,7 +201,7 @@ def CheckPathForOtherGtkInstalls(): other_paths = [] explain_level = 0 for i, d in enumerate(dirs): - #print '==%s==' %d + #print('==%s==' %d) if d == gtkPathInRegistry or d == dllPathInRegistry\ or d == dllPathShort: gtkpth_idx = i @@ -209,7 +209,7 @@ def CheckPathForOtherGtkInstalls(): for fname in testdlls: f = os.path.join(d, fname) if os.path.isfile( f ): - #print ' Found Erronous gtk DLL %s' % f + #print(' Found Erronous gtk DLL %s' % f) if d not in other_paths: other_paths.append(d) if i < gtkpth_idx: # path appears BEFORE runtime path @@ -228,7 +228,7 @@ def CheckPathForOtherGtkInstalls(): log.info( explain_safe ) if len(other_paths) == 0: log.info( ' No other gtk installatons found\n' ) - + # ==== report what python thinks it's using ===== MIN_PYTHON_VER = (2,5,1) UNTESTED_PYTHON_VER = (3,0,0) @@ -258,7 +258,7 @@ def PrintVersionResult(appl, minVersion, actualVersion, untestedVersion): else: result = '...FAILED' log.info( '%s version %s or above.....\tfound %s %s' % (appl, minStr , actStr, result) ) - + def Import_pyGtkIntoPython(): log.info( '\n==== Test import into python ====' ) #py_str = 'found %d.%d.%d' % sys.version_info[:3] @@ -267,22 +267,22 @@ def Import_pyGtkIntoPython(): # Test the GTK version try: import gtk - + PrintVersionResult(' GTK+ ', MIN_GTK_VER, Gtk.gtk_version, UNTESTED_GTK_VER ) - + #test the pyGTK version (which is in the gtk namespace) PrintVersionResult(' pyGTK ', MIN_PYGTK_VER, Gtk.pygtk_version, UNTESTED_PYGTK_VER ) - + except ImportError: PrintFailedImport(' GTK+ ', MIN_GTK_VER, NOT_FOUND_STR) PrintFailedImport(' pyGTK ', MIN_PYGTK_VER, 'Cannot test, ...GTK+ missing') - + #test the gobject version try: import gobject PrintVersionResult(' gobject', MIN_GOBJECT_VER, GObject.pygobject_version, UNTESTED_GOBJECT_VER) - + except ImportError: PrintFailedImport(' gobject', MIN_GOBJECT_VER, NOT_FOUND_STR) @@ -291,7 +291,7 @@ def Import_pyGtkIntoPython(): try: import cairo PrintVersionResult(' cairo ', MIN_CAIRO_VER, cairo.version_info, UNTESTED_CAIRO_VER ) - + except ImportError: PrintFailedImport(' cairo ', MIN_CAIRO_VER, NOT_FOUND_STR) @@ -301,7 +301,7 @@ def Import_pyGtkIntoPython(): try: import Gtk.glade log.info( ' Glade tesing import of libglade .......\tOK\n' ) - except ImportError, e: + except ImportError as e: log.info( ' Glade importError: %s\n' % e ) if __name__ == '__main__': @@ -311,7 +311,7 @@ Usage: Arguments: gtkPath Path to your GTK installation directory (not the bin dir) - + Options: None ''' %(os.path.basename(__file__) ) @@ -332,14 +332,14 @@ Options: sys.exit(0) if len(args) > 1: - raise getopt.GetoptError, '\nERROR: Too many arguments' + raise getopt.GetoptError('\nERROR: Too many arguments') for arg in args: if os.path.isdir(arg): gtkPath = arg else: - raise getopt.GetoptError, '\nERROR: Not a valid GTK path %s' % arg - - except getopt.GetoptError, msg: + raise getopt.GetoptError('\nERROR: Not a valid GTK path %s' % arg) + + except getopt.GetoptError as msg: log.info( msg ) log.info( '\n %s' % usage ) sys.exit(2) @@ -354,7 +354,7 @@ Options: OS type : %s''' % winver) else: os.info( winver ) - + if gtkPath: gtkPathInRegistry = gtkPath dllPathInRegistry = os.path.join(gtkPath, 'bin') @@ -367,6 +367,6 @@ Options: FindLibsWithCtypes() CheckPathForOtherGtkInstalls() Import_pyGtkIntoPython() - + CheckWithDependencyWalker() - + diff --git a/windows/nonAIO/builder/make_launcher.py b/windows/nonAIO/builder/make_launcher.py index 9203c9f74..bf4decaaf 100644 --- a/windows/nonAIO/builder/make_launcher.py +++ b/windows/nonAIO/builder/make_launcher.py @@ -86,28 +86,28 @@ def GetGtkPath(): with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\GTK\\2.0') as key: dllPathInRegistry = _winreg.QueryValueEx(key, 'DllPath')[0] # check a few key files exist at this location - gtkfiles = ['libgdk-win32-2.0-0.dll', 'libglib-2.0-0.dll', 'libgobject-2.0-0.dll', 'libcairo-2.dll'] + gtkfiles = ['libgdk-win32-2.0-0.dll', 'libglib-2.0-0.dll', 'libgobject-2.0-0.dll', 'libcairo-2.dll'] for file in gtkfiles: if not os.path.isfile(os.path.join(dllPathInRegistry, file)): dllPathInRegistry = None # one of the files not present, so assume path is wrong break - except WindowsError, e: + except WindowsError as e: dllPathInRegistry = None log.debug(' DLLPATH=%s'%dllPathInRegistry) return dllPathInRegistry def GetGrampsPath(): GrampsPathInRegistry = None - try: + try: with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\GRAMPS') as key: GrampsPathInRegistry = _winreg.QueryValue(key, '') # check a few key files exist at this location - except WindowsError, e: + except WindowsError as e: GrampsPathInRegistry = None - + log.debug(' GRAMPSPATH=%s'%GrampsPathInRegistry) return GrampsPathInRegistry - + def GetLanguageFromLocale(): lang = ' ' try: @@ -124,18 +124,18 @@ def GetLanguageFromLocale(): def writeLauncher(language, langcode, runtimepath, grampspath): lines = [] lines.append('''@rem Setting the working language -@rem ============================ +@rem ============================ @rem GRAMPS looks during the start-up-phase for an environment variable (called LANG) @rem to switch to a special language. It's better to use a ".CMD" or ".BAT" file to @rem control this environment variable instead a permanent setting in the windows registry, @rem to have the possibility to go back to the GRAMPS standard language (English) in the @rem case you want to report about a problem or a bug. -''') +''') lines.append('\n@rem Set GRAMPS environment settings to %s \n' % language) lines.append('SET LANG=$LANG$ \nSET LANGUAGE=$LANG$\n'.replace("$LANG$", langcode) ) - + lines.append('''\n\n@rem Setting the configuration path -@rem ============================== +@rem ============================== @rem During the boot process of GRAMPS there is a check for an environment variable @rem called GRAMPSHOME. Without this environment variable GRAMPS uses the default @rem windows path as the location to save all configuration files: @@ -158,7 +158,7 @@ def writeLauncher(language, langcode, runtimepath, grampspath): lines.append(path) lines.append('''\n\n@rem Start GRAMPS application @rem ========================= -@rem Start GRAMPS with pythonw.exe (Python interpreter that runs without a command line console) +@rem Start GRAMPS with pythonw.exe (Python interpreter that runs without a command line console) ''') lines.append('\n@rem start Gramps') lines.append('\n"%s" "%s"\n' % (os.path.join(sys.prefix, 'pythonw.exe') , os.path.join(grampspath, 'gramps.py' ) )) @@ -166,7 +166,7 @@ def writeLauncher(language, langcode, runtimepath, grampspath): fout.writelines(lines) fout.close() for line in lines: - print line + print(line) gtkpath = GetGtkPath() grampspath = GetGrampsPath() @@ -174,10 +174,10 @@ lang = GetLanguageFromLocale() if lang: try: lang_text = langLookup[lang.split('_', 1)[0]] - except KeyError, e: + except KeyError as e: try: lang_text = langLookup[lang] - except KeyError, e: + except KeyError as e: lang_text = "Unknown" - - writeLauncher(lang_text, "%s.utf-8"%lang, gtkpath, grampspath) + + writeLauncher(lang_text, "%s.utf-8"%lang, gtkpath, grampspath) diff --git a/windows/nonAIO/builder/test_dependencies.py b/windows/nonAIO/builder/test_dependencies.py index 8df6b7c9d..2657e31c4 100644 --- a/windows/nonAIO/builder/test_dependencies.py +++ b/windows/nonAIO/builder/test_dependencies.py @@ -44,7 +44,7 @@ try: gobjectver_str = 'found %d.%d.%d' % GObject.pygobject_version except :# any failure to 'get' the version gobjectver_str = 'unknown version' - + except ImportError: gobjectver_str = 'not found' @@ -55,12 +55,12 @@ try: cairover_str = 'found %d.%d.%d' % cairo.version_info except :# any failure to 'get' the version cairover_str = 'unknown version' - + except ImportError: cairover_str = 'not found' - -print 'python:%s;'%py_str -print 'gtk++:%s;'%gtkver_str -print 'pygtk:%s;'%pygtkver_str -print 'gobject:%s;'%gobjectver_str -print 'cairo:%s;'%cairover_str \ No newline at end of file + +print('python:%s;'%py_str) +print('gtk++:%s;'%gtkver_str) +print('pygtk:%s;'%pygtkver_str) +print('gobject:%s;'%gobjectver_str) +print('cairo:%s;'%cairover_str) \ No newline at end of file diff --git a/windows/nonAIO/check_gtk_install.py b/windows/nonAIO/check_gtk_install.py index 226a7cdb0..bbcea5e39 100644 --- a/windows/nonAIO/check_gtk_install.py +++ b/windows/nonAIO/check_gtk_install.py @@ -34,83 +34,83 @@ explain_exposed = ''' ******************************************************* * to the operating system as they are in the environment * path variable BEFORE the runtime directory. * You should reorder the path variable to put your GTK - * runtime path before these other installations on the path''' + * runtime path before these other installations on the path''' explain_safe = ''' *************************************************************** * While there are other installations of GTK DLL's on the path, * it should be safe as they are on the path AFTER the runtime - * directory. ''' + * directory. ''' def RunExeCommand( app, args ): cmd = app + ' ' + args - #print "Running: ", cmd + #print("Running: ", cmd) stdin, stdout, stderr = os.popen3( cmd ) output = string.strip(stdout.read()) - #print output + #print(output) err = stderr.read() if err: - print err + print(err) return output - + def CheckGtkInReg(): global gtkPathInRegistry, gtkVersionInRegistry, dllPathInRegistry, dllPathShort - print '\n==== Checking Registry for GTK =====' + print('\n==== Checking Registry for GTK =====') try: with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\GTK\\2.0') as key: gtkVersionInRegistry = _winreg.QueryValueEx(key, 'Version')[0] gtkPathInRegistry = _winreg.QueryValueEx(key, 'Path')[0] dllPathInRegistry = _winreg.QueryValueEx(key, 'DllPath')[0] - print ' Version :', gtkVersionInRegistry - print ' Path :', gtkPathInRegistry - print ' DllPath :', dllPathInRegistry - - except WindowsError, e: - print '\n GTK registry key not found in registry' - print ''' ******************************************************************** + print(' Version :', gtkVersionInRegistry) + print(' Path :', gtkPathInRegistry) + print(' DllPath :', dllPathInRegistry) + + except WindowsError as e: + print('\n GTK registry key not found in registry') + print(''' ******************************************************************** * This might not be an error, but means I don't know the directory to - * your preferred GTK installation. - * - try passing in your GTK installation path.\n''' - print '-' * 60 - print usage + * your preferred GTK installation. + * - try passing in your GTK installation path.\n''') + print('-' * 60) + print(usage) sys.exit(0) - + def WorkOutShortDosPath(): global dllPathShort - print '\n==== Use win32Api to query short path name for GTK =====' + print('\n==== Use win32Api to query short path name for GTK =====') try: import win32api dllPathShort = win32api.GetShortPathName(dllPathInRegistry) - print ' DllPath8.3:', dllPathShort + print(' DllPath8.3:', dllPathShort) except ImportError: - print ' **Cant query short path name, Win32Api not installed' - print ' install from http://python.net/crew/mhammond/win32/' - print ' if you want this function to work' + print(' **Cant query short path name, Win32Api not installed') + print(' install from http://python.net/crew/mhammond/win32/') + print(' if you want this function to work') -def FindLibsWithCtypes(): - # use ctypes to check where windows finds it's DLL's - print '\n==== Use ctypes to find dlls ====' +def FindLibsWithCtypes(): + # use ctypes to check where windows finds it's DLL's + print('\n==== Use ctypes to find dlls ====') other_paths = [] for dll in testdlls: dllpathvalid = False cpath = find_library(dll) if cpath: - #print cpath + #print(cpath) if cpath == os.path.join(dllPathInRegistry, dll) \ or cpath == os.path.join(dllPathShort, dll): dllpathvalid = True - + if not dllpathvalid: pp = os.path.dirname(cpath) if pp not in other_paths: other_paths.append(pp) else: - print " ERROR:... ctypes failed to find %s" % dll + print(" ERROR:... ctypes failed to find %s" % dll) if other_paths: for pth in other_paths: - print " ERROR: ctypes loaded some gtk dll's from %s" % pth + print(" ERROR: ctypes loaded some gtk dll's from %s" % pth) else: - print " OK ... ctypes found dll's in %s" % os.path.dirname(cpath) - + print(" OK ... ctypes found dll's in %s" % os.path.dirname(cpath)) + def ScanDependencyFileForErrors(fname): fin = open(fname, 'r') lines = fin.readlines() @@ -135,36 +135,36 @@ def ScanDependencyFileForErrors(fname): if dirname.startswith(os.path.join(sysroot, 'winsxs').lower()) \ or dirname.startswith(os.path.join(sys.prefix, 'lib\site-packages\gtk-2.0').lower()): OK = True - + for pth in acceptablePaths: if dirname == pth.lower(): OK = True - + if 'MSVCR90.DLL' in filename: if parts[0] == 'Error': runtimedlls[filename] = "Error dll not found" else: runtimedlls[filename] = parts[16] - + if OK == False: if parts[0] == 'Error': - print " %s \tError dll not found" %( filename) + print(" %s \tError dll not found" %( filename)) else: - print " ERROR: %s \tVersion %s" %( filename, parts[16]) + print(" ERROR: %s \tVersion %s" %( filename, parts[16])) for rtdll in runtimedlls: if runtimedlls[rtdll].startswith("Error"): - print '\n ERROR: MS runtime %s not found'%rtdll + print('\n ERROR: MS runtime %s not found'%rtdll) else: - print '\n MS runtime Version %s loaded from' % runtimedlls[rtdll] - print " %s" %rtdll - print - + print('\n MS runtime Version %s loaded from' % runtimedlls[rtdll]) + print(" %s" %rtdll) + print() + def CheckWithDependencyWalker(): - print '\n==== Checking with Dependency Walker ====' - print ' Please be patient takes some time' + print('\n==== Checking with Dependency Walker ====') + print(' Please be patient takes some time') exe = os.path.join(scriptpath, 'depends.exe') fout = os.path.join(scriptpath, 'depres.txt') - f2check = [ + f2check = [ os.path.join(sys.prefix, 'Lib/site-packages/gtk-2.0/gtk/_Gtk.pyd' ), os.path.join(sys.prefix, 'Lib/site-packages/gtk-2.0/gobject/_GObject.pyd' ), os.path.join(sys.prefix, 'Lib/site-packages/gtk-2.0/pangocairo.pyd' ), @@ -175,28 +175,28 @@ def CheckWithDependencyWalker(): #delete the output file before running command try: os.remove(fout) - except WindowsError, e: + except WindowsError as e: pass - print ' Testing file %s' % ftest + print(' Testing file %s' % ftest) out = RunExeCommand(exe, '/c /f1 /ot "%s" "%s"' % (fout, ftest) ) if os.path.isfile(fout): ScanDependencyFileForErrors(fout) else: - print " ERROR: file %d does not exist", ftest + print(" ERROR: file %d does not exist", ftest) else: - print ' Cannot check with dependency walker, not installed in local directory' - print ' get dependency walker from http://www.dependencywalker.com/' - print ' and unzip into this directory for it to work.' - -def CheckPathForOtherGtkInstalls(): - print '\n====Checking environment path for other gtk installations====' + print(' Cannot check with dependency walker, not installed in local directory') + print(' get dependency walker from http://www.dependencywalker.com/') + print(' and unzip into this directory for it to work.') + +def CheckPathForOtherGtkInstalls(): + print('\n====Checking environment path for other gtk installations====') ePath = os.environ['path'] dirs = ePath.split(';') gtkpth_idx = 9999 other_paths = [] explain_level = 0 for i, d in enumerate(dirs): - #print '==%s==' %d + #print('==%s==' %d) if d == gtkPathInRegistry or d == dllPathInRegistry\ or d == dllPathShort: gtkpth_idx = i @@ -204,26 +204,26 @@ def CheckPathForOtherGtkInstalls(): for fname in testdlls: f = os.path.join(d, fname) if os.path.isfile( f ): - #print ' Found Erronous gtk DLL %s' % f + #print(' Found Erronous gtk DLL %s' % f) if d not in other_paths: other_paths.append(d) if i < gtkpth_idx: # path appears BEFORE runtime path - print ' ERROR: %s should not appear before runtime path' % d + print(' ERROR: %s should not appear before runtime path' % d) explain_level = 2 else: - print ' FOUND: %s, Probably OK as appears AFTER runtime path' % d + print(' FOUND: %s, Probably OK as appears AFTER runtime path' % d) if explain_level <= 1: explain_level = 1 if gtkpth_idx == 9999: - print '\n ERROR: Runtime directory not on enviroment path' - print " ** Runtime needs to be on path to load DLL's from\n" + print('\n ERROR: Runtime directory not on enviroment path') + print(" ** Runtime needs to be on path to load DLL's from\n") if explain_level == 2: - print explain_exposed + print(explain_exposed) elif explain_level == 1: - print explain_safe + print(explain_safe) if len(other_paths) == 0: - print ' No other gtk installatons found\n' - + print(' No other gtk installatons found\n') + # ==== report what python thinks it's using ===== MIN_PYTHON_VER = (2,5,1) UNTESTED_PYTHON_VER = (3,0,0) @@ -241,45 +241,45 @@ MIN_CAIRO_VER = (1,2,6) UNTESTED_CAIRO_VER = (1,4,13) def PrintFailedImport(appl, minVersion, result): - print appl, - print 'version %d.%d.%d or above.....\t' % minVersion , - print result + print(appl,) + print('version %d.%d.%d or above.....\t' % minVersion ,) + print(result) def PrintVersionResult(appl, minVersion, actualVersion, untestedVersion): - print appl, - print 'version %d.%d.%d or above.....\t' % minVersion , - print 'found %d.%d.%d' % actualVersion , + print(appl,) + print('version %d.%d.%d or above.....\t' % minVersion ,) + print('found %d.%d.%d' % actualVersion ,) if minVersion <= actualVersion < untestedVersion: - print '...OK' + print('...OK') elif actualVersion >= untestedVersion: - print '...UNTESTED VERSION' + print('...UNTESTED VERSION') else: - print '...FAILED' - + print('...FAILED') + def Import_pyGtkIntoPython(): - print '\n==== Test import into python ====' + print('\n==== Test import into python ====') #py_str = 'found %d.%d.%d' % sys.version_info[:3] PrintVersionResult(' Python ', MIN_PYTHON_VER, sys.version_info[:3], UNTESTED_PYTHON_VER) # Test the GTK version try: import gtk - + PrintVersionResult(' GTK+ ', MIN_GTK_VER, Gtk.gtk_version, UNTESTED_GTK_VER ) - + #test the pyGTK version (which is in the gtk namespace) PrintVersionResult(' pyGTK ', MIN_PYGTK_VER, Gtk.pygtk_version, UNTESTED_PYGTK_VER ) - + except ImportError: PrintFailedImport(' GTK+ ', MIN_GTK_VER, NOT_FOUND_STR) PrintFailedImport(' pyGTK ', MIN_PYGTK_VER, 'Cannot test, ...GTK+ missing') - + #test the gobject version try: import gobject PrintVersionResult(' gobject', MIN_GOBJECT_VER, GObject.pygobject_version, UNTESTED_GOBJECT_VER) - + except ImportError: PrintFailedImport(' gobject', MIN_GOBJECT_VER, NOT_FOUND_STR) @@ -288,18 +288,18 @@ def Import_pyGtkIntoPython(): try: import cairo PrintVersionResult(' cairo ', MIN_CAIRO_VER, cairo.version_info, UNTESTED_CAIRO_VER ) - + except ImportError: PrintFailedImport(' cairo ', MIN_CAIRO_VER, NOT_FOUND_STR) #test for glade - print '\n==== See if libglade installed ====' + print('\n==== See if libglade installed ====') try: import Gtk.glade - print ' Glade tesing import of libglade .......\tOK\n' - except ImportError, e: - print ' Glade importError: %s\n' % e + print(' Glade tesing import of libglade .......\tOK\n') + except ImportError as e: + print(' Glade importError: %s\n' % e) if __name__ == '__main__': usage = '''Check for common problems in GTK/pyGTK installation. @@ -308,7 +308,7 @@ Usage: Arguments: gtkPath Path to your GTK installation directory (not the bin dir) - + Options: None ''' %(os.path.basename(__file__) ) @@ -325,38 +325,38 @@ Options: for o, a in opts: if o in ("-h", "--help"): - print usage + print(usage) sys.exit(0) if len(args) > 1: - raise getopt.GetoptError, '\nERROR: Too many arguments' + raise getopt.GetoptError('\nERROR: Too many arguments') for arg in args: if os.path.isdir(arg): gtkPath = arg else: - raise getopt.GetoptError, '\nERROR: Not a valid GTK path %s' % arg - - except getopt.GetoptError, msg: - print msg - print '\n %s' % usage + raise getopt.GetoptError('\nERROR: Not a valid GTK path %s' % arg) + + except getopt.GetoptError as msg: + print(msg) + print('\n %s' % usage) sys.exit(2) import platform winver = platform.win32_ver() if len(winver) == 4: - print '''\n==== platform.win32_ver() reports ==== + print('''\n==== platform.win32_ver() reports ==== Operating System: %s Version : %s Service Pack : %s - OS type : %s''' % winver + OS type : %s''' % winver) else: - print winver - + print(winver) + if gtkPath: gtkPathInRegistry = gtkPath dllPathInRegistry = os.path.join(gtkPath, 'bin') - print ' Using %s as GTK install path' % gtkPathInRegistry - print ' Using %s as GTK dll path' % dllPathInRegistry + print(' Using %s as GTK install path' % gtkPathInRegistry) + print(' Using %s as GTK dll path' % dllPathInRegistry) else: CheckGtkInReg() @@ -364,6 +364,6 @@ Options: FindLibsWithCtypes() CheckPathForOtherGtkInstalls() Import_pyGtkIntoPython() - + CheckWithDependencyWalker() - +