[csw-devel] SF.net SVN: gar:[7763] csw/mgar/gar/v2-checkpkg/bin/checkpkg.d

wahwah at users.sourceforge.net wahwah at users.sourceforge.net
Mon Dec 28 00:27:31 CET 2009


Revision: 7763
          http://gar.svn.sourceforge.net/gar/?rev=7763&view=rev
Author:   wahwah
Date:     2009-12-27 23:27:30 +0000 (Sun, 27 Dec 2009)

Log Message:
-----------
mGAR v2-checkpkg: More unit tests, dep guessing by name (for -devel packages)

Modified Paths:
--------------
    csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg-libs.py
    csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg.py
    csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test.py

Added Paths:
-----------
    csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test_data_CSWmysql51devel.py

Modified: csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg-libs.py
===================================================================
--- csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg-libs.py	2009-12-27 23:04:42 UTC (rev 7762)
+++ csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg-libs.py	2009-12-27 23:27:30 UTC (rev 7763)
@@ -3,6 +3,10 @@
 # $Id$
 #
 # A check for dependencies between shared libraries.
+#
+# This is currently more of a prototype than a mature program, but it has some
+# unit tests and it appears to be working.  The main problem is that it's not
+# divided into smaller testable sections.
 
 import checkpkg
 import os
@@ -39,17 +43,12 @@
     binaries_base = [os.path.split(x)[1] for x in pkg_binary_paths]
     binaries_by_pkgname[checker.pkgname] = binaries_base
     binaries.extend(pkg_binary_paths)
-    for f in checker.GetAllFilenames():
-    	pkg_by_any_filename[f] = checker.pkgname
+    for filename in checker.GetAllFilenames():
+      pkg_by_any_filename[filename] = checker.pkgname
   # Making the binaries unique
   binaries = set(binaries)
   ws_re = re.compile(r"\s+")
 
-  # TODO: map from binaries_by_pkgname to sonames_by_pkgname
-  #
-  # Essentially, we must look at libfoo.so.1.2.3 and map it to libfoo.so.1,
-  # whatever soname it has
-
   # man ld.so.1 for more info on this hack
   env = copy.copy(os.environ)
   env["LD_NOAUXFLTR"] = "1"
@@ -124,7 +123,7 @@
       # TODO: Expand $ISALIST to whatever the 'isalist' command outputs for
       # better matching.
       for runpath in runpath_by_needed_soname[soname]:
-      	soname_runpath_data = pkgmap.GetPkgmapLineByBasename(soname)
+        soname_runpath_data = pkgmap.GetPkgmapLineByBasename(soname)
         if runpath in soname_runpath_data:
           lines_by_soname[soname] = soname_runpath_data[runpath]
           break
@@ -140,6 +139,7 @@
     pkgs_by_filename[soname] = pkgname
 
   # A shared object dependency/provisioning report, plus checking.
+  # TODO: Rewrite this using cheetah
   if needed_sonames:
     print "Analysis of sonames needed by the package set:"
     for soname in needed_sonames:
@@ -157,12 +157,6 @@
                                      % (soname, binaries_by_soname[soname])))
     print
 
-  # Data needed for this section:
-  # - pkgname
-  # - declared dependencies
-  # - binaries_by_pkgname
-  # - needed_sonames_by_binary
-  # - pkgs_by_filename
   dependent_pkgs = {}
   for checker in checkers:
     orphan_sonames = set()
@@ -178,20 +172,22 @@
         filenames_by_soname,
         pkg_by_any_filename)
 
-    save_testing_data = True
-    if save_testing_data:
-      test_fd = open("/var/tmp/checkpkg-dep-testing-data-%s.py" % pkgname, "w")
+    if options.debug:
+      data_file_name = "/var/tmp/checkpkg-dep-testing-data-%s.py" % pkgname
+      logging.warn("Saving test data to %s." % repr(data_file_name))
+      test_fd = open(data_file_name, "w")
       sanitized_pkgname = pkgname.replace("-", "_")
       print >>test_fd, "# Testing data for %s" % pkgname
-      print >>test_fd, "DATA_PKGNAME =" % sanitized_pkgname, repr(pkgname)
-      print >>test_fd, "DATA_DECLARED_DEPENDENCIES =" % sanitized_pkgname, repr(declared_dependencies)
-      print >>test_fd, "DATA_BINARIES_BY_PKGNAME =" % sanitized_pkgname, repr(binaries_by_pkgname)
-      print >>test_fd, "DATA_NEEDED_SONAMES_BY_BINARY =" % sanitized_pkgname, repr(needed_sonames_by_binary)
-      print >>test_fd, "DATA_PKGS_BY_FILENAME =" % sanitized_pkgname, repr(pkgs_by_filename)
-      print >>test_fd, "DATA_FILENAMES_BY_SONAME =" % sanitized_pkgname, repr(filenames_by_soname)
-      print >>test_fd, "DATA_PKG_BY_ANY_FILENAME =" % sanitized_pkgname, repr(pkg_by_any_filename)
+      print >>test_fd, "DATA_PKGNAME =", repr(pkgname)
+      print >>test_fd, "DATA_DECLARED_DEPENDENCIES =", repr(declared_dependencies)
+      print >>test_fd, "DATA_BINARIES_BY_PKGNAME =", repr(binaries_by_pkgname)
+      print >>test_fd, "DATA_NEEDED_SONAMES_BY_BINARY =", repr(needed_sonames_by_binary)
+      print >>test_fd, "DATA_PKGS_BY_FILENAME =", repr(pkgs_by_filename)
+      print >>test_fd, "DATA_FILENAMES_BY_SONAME =", repr(filenames_by_soname)
+      print >>test_fd, "DATA_PKG_BY_ANY_FILENAME =", repr(pkg_by_any_filename)
       test_fd.close()
 
+    # TODO: Rewrite this using cheetah templates.
     if missing_deps:
       print "SUGGESTION: you may want to add some or all of the following as depends:"
       print "   (Feel free to ignore SUNW or SPRO packages)"
@@ -207,6 +203,7 @@
         errors.append(checkpkg.Error("The following soname does't belong to "
                                      "any package: %s" % soname))
         print "! ", soname
+    print
 
   if errors:
     for error in errors:
@@ -218,3 +215,5 @@
 
 if __name__ == '__main__':
   main()
+
+# vim:set sw=2 ts=2 sts=2 expandtab:

Modified: csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg.py
===================================================================
--- csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg.py	2009-12-27 23:04:42 UTC (rev 7762)
+++ csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg.py	2009-12-27 23:27:30 UTC (rev 7763)
@@ -18,6 +18,7 @@
 # Don't report these as unnecessary.
 TYPICAL_DEPENDENCIES = set(["CSWcommon", "CSWcswclassutils", "CSWisaexec"])
 
+
 class Error(Exception):
   pass
 
@@ -85,7 +86,7 @@
     self.CheckPkgpathExists()
     file_basenames = []
     for root, dirs, files in os.walk(self.pkgpath):
-    	file_basenames.extend(files)
+      file_basenames.extend(files)
     return file_basenames
 
   def GetDependencies(self):
@@ -99,7 +100,6 @@
     return depends
 
 
-
 class SystemPkgmap(object):
   """A class to hold and manipulate the /var/sadm/install/contents file."""
   
@@ -191,6 +191,46 @@
   return so_dependencies, self_provided, orphan_sonames
 
 
+def GuessDepsByFilename(pkgname, pkg_by_any_filename):
+  """Guesses dependencies based on filename regexes."""
+  guessed_deps = set()
+  patterns = (
+      (r".*\.py", u"CSWpython"),
+      (r".*\.pl", u"CSWperl"),
+      (r".*\.rb", u"CSWruby"),
+  )
+  for pattern, dep_pkgname in patterns:
+    # If any file name matches, add the dep, go to the next pattern/pkg
+    # combination.
+    pattern_re = re.compile("^%s$" % pattern)
+    for filename in pkg_by_any_filename:
+      if (re.match(pattern_re, filename)
+            and
+          pkgname == pkg_by_any_filename[filename]):
+        guessed_deps.add(dep_pkgname)
+        break
+  return guessed_deps
+
+
+def GuessDepsByPkgname(pkgname, pkg_by_any_filename):
+  # More guessed dependencies: If one package is a substring of another, it
+  # might be a hint. For example, CSWmysql51test should depend on CSWmysql51.
+  # However, the rt (runtime) packages should not want to depend on the main
+  # package.
+  guessed_deps = set()
+  all_other_pkgs = set(pkg_by_any_filename.values())
+  for other_pkg in all_other_pkgs:
+    other_pkg = unicode(other_pkg)
+    if pkgname == other_pkg:
+      continue
+    if pkgname.startswith(other_pkg):
+      endings = ["devel", "test", "bench", "dev"]
+      for ending in endings:
+        if pkgname.endswith(ending):
+          guessed_deps.add(other_pkg)
+  return guessed_deps
+
+
 def AnalyzeDependencies(pkgname,
                         declared_dependencies,
                         binaries_by_pkgname,
@@ -198,34 +238,45 @@
                         pkgs_by_soname,
                         filenames_by_soname,
                         pkg_by_any_filename):
-    """
-    missing_deps, surplus_deps, orphan_sonames = checkpkg.AnalyzeDependencies(...)
-    """
-    so_dependencies, self_provided, orphan_sonames = SharedObjectDependencies(
-        pkgname,
-        binaries_by_pkgname,
-        needed_sonames_by_binary,
-        pkgs_by_soname,
-        filenames_by_soname,
-        pkg_by_any_filename)
-    guessed_deps = set()
-    patterns = (
-        (r".*\.py", u"CSWpython"),
-        (r".*\.pl", u"CSWperl"),
-        (r".*\.rb", u"CSWruby"),
-    )
-    for pattern, dep_pkgname in patterns:
-      # If any file name matches, add the dep, go to the next pattern/pkg
-      # combination.
-      tmp_re = re.compile("^%s$" % pattern)
-      for f in pkg_by_any_filename:
-        if re.match(tmp_re, f):
-          if pkgname == pkg_by_any_filename[f]:
-            guessed_deps.add(dep_pkgname)
-            break
-    auto_dependencies = so_dependencies.union(guessed_deps)
-    declared_dependencies_set = set(declared_dependencies)
-    missing_deps = auto_dependencies.difference(declared_dependencies_set)
-    surplus_deps = declared_dependencies_set.difference(auto_dependencies)
-    surplus_deps = surplus_deps.difference(TYPICAL_DEPENDENCIES)
-    return missing_deps, surplus_deps, orphan_sonames
+  """Gathers and merges dependency results from other functions.
+
+  declared_dependencies: Dependencies that the package in question claims to
+                         have.
+
+  binaries_by_pkgname: A dictionary mapping pkgnames (CSWfoo) to binary names
+                       (without paths)
+
+  needed_sonames_by_binary: A dictionary mapping binary file name to
+                            a dictionary containing: "needed sonames",
+                            "soname", "rpath". Based on examining the binary
+                            files within the packages.
+
+  pkgs_by_soname: A dictionary mapping sonames to pkgnames, based on the
+                  contents of the system wide pkgmap
+                  (/var/sadm/install/contents)
+
+  filenames_by_soname: A dictionary mapping shared library sonames to filenames,
+                       based on files within packages
+
+  pkg_by_any_filename: Mapping from file names to packages names, based on the
+                       contents of the packages under examination.
+  """
+  declared_dependencies_set = set(declared_dependencies)
+
+  so_dependencies, self_provided, orphan_sonames = SharedObjectDependencies(
+      pkgname,
+      binaries_by_pkgname,
+      needed_sonames_by_binary,
+      pkgs_by_soname,
+      filenames_by_soname,
+      pkg_by_any_filename)
+  auto_dependencies = reduce(lambda x, y: x.union(y),
+      [
+        so_dependencies,
+        GuessDepsByFilename(pkgname, pkg_by_any_filename),
+        GuessDepsByPkgname(pkgname, pkg_by_any_filename),
+      ])
+  missing_deps = auto_dependencies.difference(declared_dependencies_set)
+  surplus_deps = declared_dependencies_set.difference(auto_dependencies)
+  surplus_deps = surplus_deps.difference(TYPICAL_DEPENDENCIES)
+  return missing_deps, surplus_deps, orphan_sonames

Modified: csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test.py
===================================================================
--- csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test.py	2009-12-27 23:04:42 UTC (rev 7762)
+++ csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test.py	2009-12-27 23:27:30 UTC (rev 7763)
@@ -6,6 +6,7 @@
 import checkpkg_test_data_CSWmysql51rt as d1
 import checkpkg_test_data_CSWmysql51client as d2
 import checkpkg_test_data_CSWmysql51 as d3
+import checkpkg_test_data_CSWmysql51devel as d4
 
 class DependenciesUnitTest_1(unittest.TestCase):
 
@@ -21,15 +22,14 @@
     )
 
   def testSurplusDeps(self):
-    # set(['CSWmysql51rt', 'CSWosslrt', 'CSWncurses', 'CSWzlib'])
     self.assertEquals(set([]), self.surplus_deps)
 
   def testOrphanSonames(self):
     self.assertEquals(set([]), self.orphan_sonames)
 
   def testMissingDeps(self):
-    # expected = set([u'SUNWlmsx', u'SUNWlibCx', u'CSWosslrt', u'SUNWcsl', u'SUNWcslx'])
-    self.assertEquals(set([u'SUNWlibC', u'SUNWcsl', u'SUNWlibms']), self.missing_deps)
+    expected = set([u'SUNWcsl', u'SUNWlibms', u'SUNWlibC'])
+    self.assertEquals(expected, self.missing_deps)
 
 
 class DependenciesUnitTest_2(unittest.TestCase):
@@ -52,7 +52,8 @@
     self.assertEquals(set([]), self.orphan_sonames)
 
   def testMissingDeps(self):
-    self.assertEquals(set([u'SUNWlibC', u'SUNWcsl', u'SUNWlibms']), self.missing_deps)
+    expected = set([u'SUNWlibC', u'SUNWcsl', u'SUNWlibms'])
+    self.assertEquals(expected, self.missing_deps)
 
 
 class DependenciesUnitTest_3(unittest.TestCase):
@@ -79,5 +80,91 @@
     self.assertEquals(expected, self.missing_deps)
 
 
+class DependenciesUnitTest_4(unittest.TestCase):
+
+  def setUp(self):
+    self.missing_deps, self.surplus_deps, self.orphan_sonames = checkpkg.AnalyzeDependencies(
+        d4.DATA_PKGNAME,
+        d4.DATA_DECLARED_DEPENDENCIES,
+        d4.DATA_BINARIES_BY_PKGNAME,
+        d4.DATA_NEEDED_SONAMES_BY_BINARY,
+        d4.DATA_PKGS_BY_FILENAME,
+        d4.DATA_FILENAMES_BY_SONAME,
+        d4.DATA_PKG_BY_ANY_FILENAME,
+    )
+
+  def testSurplusDeps(self):
+    self.assertEquals(set([]), self.surplus_deps)
+
+  def testOrphanSonames(self):
+    self.assertEquals(set([]), self.orphan_sonames)
+
+  def testMissingDeps(self):
+    expected = set([])
+    self.assertEquals(expected, self.missing_deps)
+
+
+class GuessDepsUnitTest(unittest.TestCase):
+
+  def testGuessDepsByFilename1(self):
+    expected = set([u"CSWpython"])
+    pkgname = u"CSWfoo"
+    pkg_by_filename = {
+        "/opt/csw/bin/bar": u"CSWfoo",
+        "/opt/csw/lib/python/site-packages/foo.py": u"CSWfoo",
+    }
+    self.assertEqual(expected,
+                     checkpkg.GuessDepsByFilename(pkgname, pkg_by_filename))
+
+  def testGuessDepsByFilename2(self):
+    expected = set([])
+    pkgname = u"CSWfoo"
+    pkg_by_filename = {
+        "/opt/csw/bin/bar": u"CSWfoo",
+        "/opt/csw/lib/python/site-packages/foo.py": u"CSWbar",
+    }
+    self.assertEqual(expected,
+                     checkpkg.GuessDepsByFilename(pkgname, pkg_by_filename))
+
+  def testGuessDepsByPkgname1(self):
+    expected = set([u"CSWfoo"])
+    pkgname = u"CSWfoo-devel"
+    pkg_by_filename = {
+        "/opt/csw/bin/bar": u"CSWfoo",
+        "/opt/csw/bin/barfoo": u"CSWfoobar",
+        "/opt/csw/lib/python/site-packages/foo.py": u"CSWfoo",
+    }
+    self.assertEqual(expected,
+                     checkpkg.GuessDepsByPkgname(pkgname, pkg_by_filename))
+
+  def testGuessDepsByPkgname2(self):
+    expected = set([])
+    pkgname = u"CSWzfoo-devel"
+    pkg_by_filename = {
+        "/opt/csw/bin/bar": u"CSWfoo",
+        "/opt/csw/bin/barfoo": u"CSWfoobar",
+        "/opt/csw/lib/python/site-packages/foo.py": u"CSWfoo",
+    }
+    self.assertEqual(expected,
+                     checkpkg.GuessDepsByPkgname(pkgname, pkg_by_filename))
+
+  def testGuessDepsByPkgname3(self):
+    self.assertEqual(set([u"CSWmysql51"]),
+                     checkpkg.GuessDepsByPkgname(u"CSWmysql51devel",
+                                                 d4.DATA_PKG_BY_ANY_FILENAME))
+
+  def testGuessDepsByPkgname4(self):
+    data1 = set(['CSWmysql51', 'CSWmysql51rt', 'CSWmysql51test',
+                 'CSWmysql51client', 'CSWmysql51bench', 'CSWmysql51devel'])
+    data2 = dict(((x, x) for x in data1))
+    self.assertEqual(set([u"CSWmysql51"]), checkpkg.GuessDepsByPkgname(u"CSWmysql51devel", data2))
+
+  def testGuessDepsByPkgname4(self):
+    data1 = set(['CSWmysql51', 'CSWmysql51rt', 'CSWmysql51test',
+                 'CSWmysql51client', 'CSWmysql51bench', 'CSWmysql51devel'])
+    data2 = dict(((x, x) for x in data1))
+    self.assertEqual(set([]), checkpkg.GuessDepsByPkgname(u"CSWmysql51rt", data2))
+
+
 if __name__ == '__main__':
 	unittest.main()

Added: csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test_data_CSWmysql51devel.py
===================================================================
--- csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test_data_CSWmysql51devel.py	                        (rev 0)
+++ csw/mgar/gar/v2-checkpkg/bin/checkpkg.d/checkpkg_test_data_CSWmysql51devel.py	2009-12-27 23:27:30 UTC (rev 7763)
@@ -0,0 +1,9 @@
+# Testing data for CSWmysql51devel
+# $Id$
+DATA_PKGNAME = 'CSWmysql51devel'
+DATA_DECLARED_DEPENDENCIES = {'CSWmysql51': 'CSWmysql51 mysql51 - Multithreaded SQL database ', 'CSWisaexec': 'CSWisaexec isaexec - sneaky wrapper around Sun isaexec ', 'CSWcommon': 'CSWcommon common - common files and dirs for CSW packages '}
+DATA_BINARIES_BY_PKGNAME = {'CSWmysql51': ['mysqlslap', 'resolve_stack_dump', 'mysql_tzinfo_to_sql', 'resolveip', 'mysql_waitpid', 'my_print_defaults', 'mysql_upgrade', 'innochecksum', 'myisam_ftdump', 'myisamchk', 'mysqltest', 'resolve_stack_dump', 'mysql_waitpid', 'resolveip', 'my_print_defaults', 'mysqlslap', 'myisamchk', 'innochecksum', 'mysqltest', 'myisam_ftdump', 'mysql_upgrade', 'mysql_tzinfo_to_sql', 'mysqlmanager', 'mysqld', 'mysqlmanager', 'mysqld'], 'CSWmysql51rt': ['libmysqlclient_r.so.16.0.0', 'ha_example.so.0.0.0', 'ha_innodb_plugin.so.0.0.0', 'libmysqlclient.so.16.0.0', 'libmysqlclient_r.so.16.0.0', 'ha_example.so.0.0.0', 'ha_innodb_plugin.so.0.0.0', 'libmysqlclient.so.16.0.0'], 'CSWmysql51test': ['my_safe_process'], 'CSWmysql51client': ['myisampack', 'mysql_client_test', 'mysql', 'mysqlimport', 'mysqladmin', 'mysqldump', 'mysqlbinlog', 'mysqlcheck', 'mysqlshow', 'replace', 'myisamlog', 'perror', 'myisampack', 'mysqldump', 'perror', 'mysqlcheck', 'mysql', 're
 place', 'mysqladmin', 'mysqlimport', 'mysqlbinlog', 'mysql_client_test', 'mysqlshow', 'myisamlog'], 'CSWmysql51bench': [], 'CSWmysql51devel': []}
+DATA_NEEDED_SONAMES_BY_BINARY = {'ha_example.so.0.0.0': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib'], 'soname': 'ha_example.so.0', 'needed sonames': ['libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'li
 bc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1']}, 'mysql_waitpid': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'replace': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw
 /mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'myisamchk': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.
 so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'mysqldump': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1']}, 'mysql': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/op
 t/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib'], 'needed sonames': ['libncursesw.so.5', 'libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1', 'libncursesw.so.5', '
 libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'myisam_ftdump': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'myisamlog': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISA
 LIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'mysqlimport': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/usr/lib'], 'needed soname
 s': ['libpthread.so.1', 'libmysqlclient_r.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient_r.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1']}, 'mysqlcheck': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1',
  'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1']}, 'mysqlmanager': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib'], 'ne
 eded sonames': ['libpthread.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1', 'libpthread.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'mysqladmin': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/
 mysql51/lib/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'mysqlshow': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/op
 t/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1']}, 'libmysqlclient.so.16.0.0': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'soname': 'libmysqlclient.so.16', 'needed sonam
 es': ['librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1']}, 'mysql_upgrade': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient.so.16', 'librt
 .so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1']}, 'innochecksum': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'mysqlbinlog': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', 
 '/opt/csw/mysql51/lib/64/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libs
 sl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'myisampack': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'my_safe_process': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studi
 o/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'my_print_defaults': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so
 .1']}, 'mysql_tzinfo_to_sql': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', '
 libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'mysqld': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libz.so.1', 'libdl.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libmtmalloc.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'lib
 nsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1', 'libpthread.so.1', 'libz.so.1', 'libdl.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libmtmalloc.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'mysqlslap': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient_r.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmy
 sqlclient_r.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1']}, 'ha_innodb_plugin.so.0.0.0': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/sparcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib'], 'soname': 'ha_innodb_plugin.so.0', 'needed sonames': ['libpthread.so.1', 'librt.so.1',
  'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libCstd.so.1', 'libCrun.so.1']}, 'perror': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'libmysqlclient_r.so.16.0.0': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '
 /opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'soname': 'libmysqlclient_r.so.16', 'needed sonames': ['libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libz.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libz.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8']}, 'mysqltest': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7/v9', '/opt/studio/SOS11/SUNWspro/lib/v9', '/opt/SUNWspro/lib/v9', '/usr/ccs/lib/s
 parcv9', '/lib/sparcv9', '/usr/lib/sparcv9', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/opt/studio/SOS11/SUNWspro/lib/rw7', '/opt/studio/SOS11/SUNWspro/lib/v8', '/opt/studio/SOS11/SUNWspro/lib', '/opt/SUNWspro/lib/v8', '/opt/SUNWspro/lib', '/usr/ccs/lib', '/lib', '/usr/lib', '/usr/lib'], 'needed sonames': ['libpthread.so.1', 'libmysqlclient_r.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1', 'libpthread.so.1', 'libmysqlclient_r.so.16', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libCstd.so.1', 'libCrun.so.1', 'libthread.so.1']}, 'resolve_stack_dump': {'runpath': ['/opt/csw/
 lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'resolveip': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/usr/lib'], 'needed sonames': ['li
 bz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1', 'libz.so.1', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libthread.so.1']}, 'mysql_client_test': {'runpath': ['/opt/csw/lib/$ISALIST', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib', '/opt/csw/lib', '/opt/csw/mysql51/lib/$ISALIST/mysql', '/opt/csw/mysql51/lib/mysql', '/usr/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib/64', '/opt/csw/mysql51/lib/$ISALIST', '/opt/csw/mysql51/lib/64', '/opt/csw/mysql51/lib/64/$ISALIST/mysql', '/opt/csw/mysql51/lib/64/mysql', '/usr/lib'], 'needed sonames': ['libmysqlclient_r.so.16', 'libpthread.so.1', 'librt.so.1', 'libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1', 'libmysqlclient_r.so.16', 'libpthread.so.1', 'librt.so.1', '
 libresolv.so.2', 'libc.so.1', 'libsocket.so.1', 'libnsl.so.1', 'libm.so.1', 'libssl.so.0.9.8', 'libcrypto.so.0.9.8', 'libz.so.1', 'libthread.so.1']}}
+DATA_PKGS_BY_FILENAME = {'libresolv.so.2': u'SUNWcsl', 'libthread.so.1': u'SUNWcsl', 'libmtmalloc.so.1': u'SUNWcsl', 'libnsl.so.1': u'SUNWcsl', 'libCstd.so.1': u'SUNWlibC', 'libCrun.so.1': u'SUNWlibC', 'libssl.so.0.9.8': u'CSWosslrt', 'librt.so.1': u'SUNWcsl', 'libz.so.1': u'CSWzlib', 'libncursesw.so.5': u'CSWncurses', 'libsocket.so.1': u'SUNWcsl', 'libm.so.1': u'SUNWlibms', 'libpthread.so.1': u'SUNWcsl', 'libcrypto.so.0.9.8': u'CSWosslrt', 'libdl.so.1': u'SUNWcsl', 'libc.so.1': u'SUNWcsl'}
+DATA_FILENAMES_BY_SONAME = {'ha_example.so.0': 'ha_example.so.0.0.0', 'libmysqlclient_r.so.16': 'libmysqlclient_r.so.16.0.0', 'libmysqlclient.so.16': 'libmysqlclient.so.16.0.0', 'ha_innodb_plugin.so.0': 'ha_innodb_plugin.so.0.0.0'}

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list