parameters: (binary, dep)
return_statement: return False
docstring: fix 'dep' dependency of 'binary'. 'dep' is a qt library
docstring_summary: fix 'dep' dependency of 'binary'. 'dep' is a qt library
docstring_tokens: fix dep dependency of binary . dep is a qt library
function: def fix_dependency(binary, dep):
      """
      fix 'dep' dependency of 'binary'. 'dep' is a qt library
      """
      if is_qt_lib(dep):
          qtname, dep_abspath, dep_rpath = normalize_qtlib_name(dep)
      elif is_qt_plugin(dep):
          qtname, dep_abspath, dep_rpath = normalize_qtplugin_name(dep)
      elif is_brew_lib(dep):
          qtname, dep_abspath, dep_rpath = normalize_brew_name(dep)
      else:
          return True
  
      dep_ok = True
      # check that rpath of 'dep' inside binary has been correctly set
      # (ie: relative to exepath using '@executable_path' syntax)
      if dep != dep_rpath:
          # dep rpath is not ok
          GlobalConfig.logger.info('changing rpath \'{0}\' in binary {1}'.format(dep, binary))
  
          # call install_name_tool -change on binary
          popen_args = ['install_name_tool', '-change', dep, dep_rpath, binary]
          proc_out = run_and_get_output(popen_args)
          if proc_out.retcode != 0:
              GlobalConfig.logger.error(proc_out.stderr)
              dep_ok = False
          else:
              # call install_name_tool -id on binary
              popen_args = ['install_name_tool', '-id', dep_rpath, binary]
              proc_out = run_and_get_output(popen_args)
              if proc_out.retcode != 0:
                  GlobalConfig.logger.error(proc_out.stderr)
                  dep_ok = False
  
      # now ensure that 'dep' exists at the specified path, relative to bundle
      if dep_ok and not os.path.exists(dep_abspath):
  
          # ensure destination directory exists
          GlobalConfig.logger.info('ensuring directory \'{0}\' exists: {0}'.
                                   format(os.path.dirname(dep_abspath)))
          popen_args = ['mkdir', '-p', os.path.dirname(dep_abspath)]
          proc_out = run_and_get_output(popen_args)
          if proc_out.retcode != 0:
              GlobalConfig.logger.info(proc_out.stderr)
              dep_ok = False
          else:
              # copy missing dependency into bundle
              qtnamesrc = os.path.join(GlobalConfig.qtpath, 'lib', '{0}.framework'.
                                       format(qtname), qtname)
              GlobalConfig.logger.info('copying missing dependency in bundle: {0}'.
                                       format(qtname))
              popen_args = ['cp', qtnamesrc, dep_abspath]
              proc_out = run_and_get_output(popen_args)
              if proc_out.retcode != 0:
                  GlobalConfig.logger.info(proc_out.stderr)
                  dep_ok = False
              else:
                  # ensure permissions are correct if we ever have to change its rpath
                  GlobalConfig.logger.info('ensuring 755 perm to {0}'.format(dep_abspath))
                  popen_args = ['chmod', '755', dep_abspath]
                  proc_out = run_and_get_output(popen_args)
                  if proc_out.retcode != 0:
                      GlobalConfig.logger.info(proc_out.stderr)
                      dep_ok = False
      else:
          GlobalConfig.logger.debug('{0} is at correct location in bundle'.format(qtname))
  
      if dep_ok:
          return fix_binary(dep_abspath)
      return False
function_tokens: def fix_dependency ( binary , dep ) : if is_qt_lib ( dep ) : qtname , dep_abspath , dep_rpath = normalize_qtlib_name ( dep ) elif is_qt_plugin ( dep ) : qtname , dep_abspath , dep_rpath = normalize_qtplugin_name ( dep ) elif is_brew_lib ( dep ) : qtname , dep_abspath , dep_rpath = normalize_brew_name ( dep ) else : return True dep_ok = True # check that rpath of 'dep' inside binary has been correctly set # (ie: relative to exepath using '@executable_path' syntax) if dep != dep_rpath : # dep rpath is not ok GlobalConfig . logger . info ( 'changing rpath \'{0}\' in binary {1}' . format ( dep , binary ) ) # call install_name_tool -change on binary popen_args = [ 'install_name_tool' , '-change' , dep , dep_rpath , binary ] proc_out = run_and_get_output ( popen_args ) if proc_out . retcode != 0 : GlobalConfig . logger . error ( proc_out . stderr ) dep_ok = False else : # call install_name_tool -id on binary popen_args = [ 'install_name_tool' , '-id' , dep_rpath , binary ] proc_out = run_and_get_output ( popen_args ) if proc_out . retcode != 0 : GlobalConfig . logger . error ( proc_out . stderr ) dep_ok = False # now ensure that 'dep' exists at the specified path, relative to bundle if dep_ok and not os . path . exists ( dep_abspath ) : # ensure destination directory exists GlobalConfig . logger . info ( 'ensuring directory \'{0}\' exists: {0}' . format ( os . path . dirname ( dep_abspath ) ) ) popen_args = [ 'mkdir' , '-p' , os . path . dirname ( dep_abspath ) ] proc_out = run_and_get_output ( popen_args ) if proc_out . retcode != 0 : GlobalConfig . logger . info ( proc_out . stderr ) dep_ok = False else : # copy missing dependency into bundle qtnamesrc = os . path . join ( GlobalConfig . qtpath , 'lib' , '{0}.framework' . format ( qtname ) , qtname ) GlobalConfig . logger . info ( 'copying missing dependency in bundle: {0}' . format ( qtname ) ) popen_args = [ 'cp' , qtnamesrc , dep_abspath ] proc_out = run_and_get_output ( popen_args ) if proc_out . retcode != 0 : GlobalConfig . logger . info ( proc_out . stderr ) dep_ok = False else : # ensure permissions are correct if we ever have to change its rpath GlobalConfig . logger . info ( 'ensuring 755 perm to {0}' . format ( dep_abspath ) ) popen_args = [ 'chmod' , '755' , dep_abspath ] proc_out = run_and_get_output ( popen_args ) if proc_out . retcode != 0 : GlobalConfig . logger . info ( proc_out . stderr ) dep_ok = False else : GlobalConfig . logger . debug ( '{0} is at correct location in bundle' . format ( qtname ) ) if dep_ok : return fix_binary ( dep_abspath ) return False