[csw-devel] SF.net SVN: gar:[11819] csw/mgar/gar/v2-fortran

wahwah at users.sourceforge.net wahwah at users.sourceforge.net
Mon Dec 6 23:14:33 CET 2010


Revision: 11819
          http://gar.svn.sourceforge.net/gar/?rev=11819&view=rev
Author:   wahwah
Date:     2010-12-06 22:14:33 +0000 (Mon, 06 Dec 2010)

Log Message:
-----------
mGAR v2-fortran: Merging changes from v2

Modified Paths:
--------------
    csw/mgar/gar/v2-fortran/bin/checkpkg
    csw/mgar/gar/v2-fortran/lib/python/checkpkg.py
    csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py
    csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py
    csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py
    csw/mgar/gar/v2-fortran/lib/python/opencsw.py
    csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py
    csw/mgar/gar/v2-fortran/lib/python/package_checks.py
    csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py

Added Paths:
-----------
    csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py

Property Changed:
----------------
    csw/mgar/gar/v2-fortran/
    csw/mgar/gar/v2-fortran/pkglib/csw/depend


Property changes on: csw/mgar/gar/v2-fortran
___________________________________________________________________
Modified: svn:mergeinfo
   - /csw/mgar/gar/v2:4936-6678,10928-10988,10990-11763
/csw/mgar/gar/v2-bwalton:9784-10011
/csw/mgar/gar/v2-checkpkg:7722-7855
/csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737
/csw/mgar/gar/v2-checkpkg-stats:8454-8649
/csw/mgar/gar/v2-collapsed-modulations:6895
/csw/mgar/gar/v2-dirpackage:8125-8180
/csw/mgar/gar/v2-git/v2-relocate:7617
/csw/mgar/gar/v2-migrateconf:7082-7211
/csw/mgar/gar/v2-noexternals:11592-11745
/csw/mgar/gar/v2-relocate:5028-11738
/csw/mgar/gar/v2-skayser:6087-6132
/csw/mgar/gar/v2-sqlite:10434-10449
   + /csw/mgar/gar/v2:4936-6678,10883-11818
/csw/mgar/gar/v2-bwalton:9784-10011
/csw/mgar/gar/v2-checkpkg:7722-7855
/csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737
/csw/mgar/gar/v2-checkpkg-stats:8454-8649
/csw/mgar/gar/v2-collapsed-modulations:6895
/csw/mgar/gar/v2-dirpackage:8125-8180
/csw/mgar/gar/v2-git/v2-relocate:7617
/csw/mgar/gar/v2-migrateconf:7082-7211
/csw/mgar/gar/v2-noexternals:11592-11745
/csw/mgar/gar/v2-relocate:5028-11738
/csw/mgar/gar/v2-skayser:6087-6132
/csw/mgar/gar/v2-sqlite:10434-10449

Modified: csw/mgar/gar/v2-fortran/bin/checkpkg
===================================================================
--- csw/mgar/gar/v2-fortran/bin/checkpkg	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/bin/checkpkg	2010-12-06 22:14:33 UTC (rev 11819)
@@ -101,8 +101,6 @@
 # TODO: Options to add:
 #  - Use an pre-cached (from a catalog file?) list of md5 sums
 #  - Don't use the data from /var/sadm/install/contents
-SAVE_TAGS=0
-SAVED_TAGS_FILE=error-tags.txt
 display_help=0
 SKIP_STATS_COLLECTION=0
 MD5_SUMS_CATALOG_FILE=""
@@ -116,12 +114,6 @@
 	  c)
 	    INSTALL_CONTENTS_FILES="${INSTALL_CONTENTS_FILES} ${OPTARG}"
 	    ;;
-	  s)
-      SAVE_TAGS=1
-      ;;
-    o)
-      SAVED_TAGS_FILE="${OPTARG}"
-      ;;
     d)
       DEBUG=1
       ;;
@@ -151,8 +143,6 @@
 
 readonly INSTALL_CONTENTS_FILES
 readonly MD5_SUMS_CATALOG_FILE
-readonly SAVED_TAGS_FILE
-readonly SAVE_TAGS
 readonly SKIP_STATS_COLLECTION
 readonly ANALYZE
 readonly PROFILE
@@ -162,23 +152,17 @@
   print 'Usage: checkpkg [options] pkg1 [pkg2 ....]'
   print 'Options:'
   print '   -c <file>  use an additional install/contents file'
-  print '   -s         save error tags on disk'
-  print '   -o <file>  save tag output to file'
   print '   -d         display debug messages'
   print '   -N         skip statistics collection'
   print '   -M <file>  use package md5sums from a catalog file'
   print '   -A         Do not analyze the results.'
   print '   -p         Enable profiling'
   print '   -q         Display less messages'
+  print ''
+  print 'Error tags are saved to the sqlite database.'
   exit 0
 fi
 
-if [[ "${SAVE_TAGS}" -eq 1 ]]; then
-  if [[ -f "${SAVED_TAGS_FILE}" ]]; then
-  	rm "${SAVED_TAGS_FILE}"
-  fi
-fi
-
 # a unique filename for the list of package deps and libs we see in a 'set'
 SETINF=$CHECKPKG_TMPDIR/checkpkg.$$.`date +%Y%m%d%H%M%S`
 SETLIBS=$SETINF.libs

Modified: csw/mgar/gar/v2-fortran/lib/python/checkpkg.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/checkpkg.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/checkpkg.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -616,8 +616,9 @@
   def Emulate64BitSymlinks(self, runpath_list):
     """Need to emulate the 64 -> amd64, 64 -> sparcv9 symlink
 
-    Since we don't know the architecture, we'll adding both amd64 and sparcv9.
-    It should be safe.
+    Since we don't know the architecture, we are adding both amd64 and
+    sparcv9.  It should be safe - there are other checks that make sure
+    that right architectures are in the right directories.
     """
     key = tuple(runpath_list)
     if key not in self.symlink64_cache:
@@ -633,19 +634,12 @@
 
   def SanitizeRunpath(self, runpath):
     if runpath not in self.runpath_sanitize_cache:
-      new_runpath = runpath
-      while True:
-        if new_runpath.endswith("/"):
-          new_runpath = new_runpath[:-1]
-        elif "//" in new_runpath:
-          new_runpath = new_runpath.replace("//", "/")
-        else:
-          break
-      self.runpath_sanitize_cache[runpath] = new_runpath
+      self.runpath_sanitize_cache[runpath] = os.path.normpath(runpath)
     return self.runpath_sanitize_cache[runpath]
 
 
-  def ResolveSoname(self, runpath_list, soname, isalist, path_list, binary_path):
+  def ResolveSoname(self, runpath_list, soname, isalist,
+                    path_list, binary_path):
     """Emulates ldd behavior, minimal implementation.
 
     runpath: e.g. ["/opt/csw/lib/$ISALIST", "/usr/lib"]
@@ -667,8 +661,9 @@
       # in the path_list.
       for expanded_p in expanded_p_list:
         original_paths_by_expanded_paths[expanded_p] = p
-    # logging.debug("%s: looking for %s in %s",
-    #     soname, runpath_list, original_paths_by_expanded_paths.keys())
+    logging.debug(
+        "%s: looking for %s in %s",
+        soname, runpath_list, original_paths_by_expanded_paths.keys())
     for runpath_expanded in runpath_list:
       if runpath_expanded in original_paths_by_expanded_paths:
         # logging.debug("Found %s",
@@ -883,7 +878,9 @@
   def GetCommonPaths(self, arch):
     """Returns a list of paths for architecture, from gar/etc/commondirs*."""
     # TODO: If this was cached, it could save a significant amount of time.
-    assert arch in ('i386', 'sparc', 'all'), "Wrong arch: %s" % repr(arch)
+    if arch not in ('i386', 'sparc', 'all'):
+      logging.warn("Wrong arch: %s", repr(arch))
+      return []
     if arch == 'all':
       archs = ('i386', 'sparc')
     else:

Modified: csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -341,5 +341,23 @@
     self.assertTrue(expected, checkpkg.SliceList(l, s))
 
 
+class LddEmulartorUnitTest(unittest.TestCase):
+
+  def setUp(self):
+    self.pkgmap_mocker = mox.Mox()
+    self.e = checkpkg.LddEmulator()
+
+  def testResolveSoname_1(self):
+    # runpath_list, soname, isalist, path_list, binary_path
+    runpath_list = ["/opt/csw/bdb47/lib", "/opt/csw/lib"]
+    soname = "foo.so.1"
+    path_list = ["/opt/csw/lib", "/opt/csw/bdb47/lib", "/usr/lib"]
+    binary_path = "unused"
+    isalist = ["amd64"]
+    result = self.e.ResolveSoname(runpath_list, soname, isalist,
+                                  path_list, binary_path)
+    self.assertEqual("/opt/csw/bdb47/lib", result)
+
+
 if __name__ == '__main__':
   unittest.main()

Modified: csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -34,6 +34,77 @@
 
 PREFERRED_DIRECTORY_PROVIDERS = set([u"CSWcommon"])
 
+def ProcessSoname(
+    ldd_emulator,
+    soname, path_and_pkg_by_basename, binary_info, isalist, binary_path, logger,
+    error_mgr,
+    pkgname, messenger):
+  """This is not an ideal name for a function.
+
+  Returns:
+    orphan_sonames
+  """
+  orphan_sonames = []
+  required_deps = []
+  resolved = False
+  path_list = path_and_pkg_by_basename[soname].keys()
+  runpath_tuple = (
+      tuple(binary_info["runpath"])
+      + tuple(checkpkg.SYS_DEFAULT_RUNPATH))
+  runpath_history = []
+  alternative_deps = set()
+  first_lib = None
+  for runpath in runpath_tuple:
+    runpath = ldd_emulator.SanitizeRunpath(runpath)
+    runpath_list = ldd_emulator.ExpandRunpath(runpath, isalist, binary_path)
+    runpath_list = ldd_emulator.Emulate64BitSymlinks(runpath_list)
+    # To accumulate all the runpaths that we were looking at
+    runpath_history += runpath_list
+    resolved_path = ldd_emulator.ResolveSoname(runpath_list,
+                                               soname,
+                                               isalist,
+                                               path_list,
+                                               binary_path)
+    if resolved_path:
+      resolved = True
+      req_pkgs = path_and_pkg_by_basename[soname][resolved_path]
+      reason = ("provides %s/%s needed by %s"
+                % (resolved_path, soname, binary_info["path"]))
+      # Looking for deprecated libraries.  However, only alerting if the
+      # deprecated library is the first one found in the RPATH.  For example,
+      # libdb-4.7.so is found in CSWbdb and CSWbdb47, and it's important to
+      # throw an error if the RPATH is ("/opt/csw/lib", "/opt/csw/bdb47/lib"),
+      # and not to throw an error if RPATH is ("/opt/csw/bdb47/lib",
+      # "/opt/csw/lib")
+      if not first_lib:
+        first_lib = (resolved_path, soname)
+        for bad_path, bad_soname, msg in DEPRECATED_LIBRARY_LOCATIONS:
+          if resolved_path == bad_path and soname == bad_soname:
+            logger.debug("Bad lib found: %s/%s", bad_path, bad_soname)
+            error_mgr.ReportError(
+                pkgname,
+                "deprecated-library",
+                ("%s %s %s/%s"
+                 % (binary_info["path"], msg, resolved_path, soname)))
+      for req_pkg in req_pkgs:
+        alternative_deps.add((req_pkg, reason))
+  required_deps.append(list(alternative_deps))
+  if not resolved:
+    orphan_sonames.append((soname, binary_info["path"]))
+    if path_list:
+      path_msg = "was available at the following paths: %s." % path_list
+    else:
+      path_msg = ("was not present on the filesystem, "
+                  "nor in the packages under examination.")
+    if soname not in ALLOWED_ORPHAN_SONAMES:
+      messenger.Message(
+          "%s could not be resolved for %s, with rpath %s, expanded to %s, "
+          "while the file %s"
+          % (soname, binary_info["path"],
+             runpath_tuple, runpath_history, path_msg))
+  return orphan_sonames, required_deps
+
+
 def Libraries(pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename,
               pkg_by_path):
   """Checks shared libraries.
@@ -53,66 +124,20 @@
   """
   pkgname = pkg_data["basic_stats"]["pkgname"]
   logger.debug("Libraries(): pkgname = %s", repr(pkgname))
+  isalist = pkg_data["isalist"]
+  ldd_emulator = checkpkg.LddEmulator()
   orphan_sonames = []
   required_deps = []
-  isalist = pkg_data["isalist"]
-  ldd_emulator = checkpkg.LddEmulator()
   for binary_info in pkg_data["binaries_dump_info"]:
     binary_path, binary_basename = os.path.split(binary_info["path"])
     for soname in binary_info["needed sonames"]:
-      resolved = False
-      path_list = path_and_pkg_by_basename[soname].keys()
-      # logger.debug("%s @ %s: looking for %s in %s",
-      #              soname,
-      #              binary_info["path"],
-      #              binary_info["runpath"],
-      #              path_list)
-      runpath_tuple = (tuple(binary_info["runpath"])
-                      + tuple(checkpkg.SYS_DEFAULT_RUNPATH))
-      runpath_history = []
-      alternative_deps = set()
-      for runpath in runpath_tuple:
-        runpath = ldd_emulator.SanitizeRunpath(runpath)
-        runpath_list = ldd_emulator.ExpandRunpath(runpath, isalist, binary_path)
-        runpath_list = ldd_emulator.Emulate64BitSymlinks(runpath_list)
-        # To accumulate all the runpaths that we were looking at
-        runpath_history += runpath_list
-        resolved_path = ldd_emulator.ResolveSoname(runpath_list,
-                                                   soname,
-                                                   isalist,
-                                                   path_list,
-                                                   binary_path)
-        if resolved_path:
-          resolved = True
-          req_pkgs = path_and_pkg_by_basename[soname][resolved_path]
-          reason = ("provides %s/%s needed by %s"
-                    % (resolved_path, soname, binary_info["path"]))
-          # Looking for deprecated libraries.
-          for bad_path, bad_soname, msg in DEPRECATED_LIBRARY_LOCATIONS:
-            if resolved_path == bad_path and soname == bad_soname:
-              logger.debug("Bad lib found: %s/%s", bad_path, bad_soname)
-              error_mgr.ReportError(
-                  pkgname,
-                  "deprecated-library",
-                  ("%s %s %s/%s"
-                   % (binary_info["path"], msg, resolved_path, soname)))
-          for req_pkg in req_pkgs:
-            alternative_deps.add((req_pkg, reason))
-      # print "alternative_deps:", alternative_deps
-      required_deps.append(list(alternative_deps))
-      if not resolved:
-        orphan_sonames.append((soname, binary_info["path"]))
-        if path_list:
-          path_msg = "was available at the following paths: %s." % path_list
-        else:
-          path_msg = ("was not present on the filesystem, "
-                      "nor in the packages under examination.")
-        if soname not in ALLOWED_ORPHAN_SONAMES:
-          messenger.Message(
-              "%s could not be resolved for %s, with rpath %s, expanded to %s, "
-              "while the file %s"
-              % (soname, binary_info["path"],
-                 runpath_tuple, runpath_history, path_msg))
+      orphan_sonames_tmp, required_deps_tmp = ProcessSoname(
+          ldd_emulator,
+          soname, path_and_pkg_by_basename, binary_info, isalist, binary_path, logger,
+          error_mgr,
+          pkgname, messenger)
+      orphan_sonames.extend(orphan_sonames_tmp)
+      required_deps.extend(required_deps_tmp)
   orphan_sonames = set(orphan_sonames)
   for soname, binary_path in orphan_sonames:
     if soname not in ALLOWED_ORPHAN_SONAMES:

Modified: csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -325,7 +325,9 @@
         checkpkg.SetCheckInterface)
     self.pkg_data = copy.deepcopy(sudo_stats)
 
-  def testOne(self):
+  def testLibrariesRpathOrder(self):
+    # pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename,
+    # pkg_by_path
     pass
 
   def testByFilename(self):

Modified: csw/mgar/gar/v2-fortran/lib/python/opencsw.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/opencsw.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/opencsw.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -81,15 +81,28 @@
     p = p[:-4]
   bits = p.split("-")
   catalogname = bits[0]
-  version, version_info, revision_info = ParseVersionString(bits[1])
+  if len(bits) < 2:
+    version, version_info, revision_info = None, None, None
+    full_version_string = None
+  else:
+    version, version_info, revision_info = ParseVersionString(bits[1])
+    full_version_string = bits[1]
   if len(bits) == 5:
     osrel, arch, vendortag = bits[2:5]
-  else:
+  elif len(bits) == 4:
     arch, vendortag = bits[2:4]
     osrel = "unspecified"
+  elif len(bits) == 3:
+    arch = bits[2]
+    vendortag = "UNKN"
+    osrel = "unspecified"
+  else:
+    arch = "unknown"
+    vendortag = "UNKN"
+    osrel = "unspecified"
   data = {
       'catalogname': catalogname,
-      'full_version_string': bits[1],
+      'full_version_string': full_version_string,
       'version': version,
       'version_info': version_info,
       'revision_info': revision_info,

Modified: csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -163,30 +163,6 @@
     self.assertEqual("unspecified", parsed["osrel"])
 
 
-class ComposePackageFileNameUnitTest(unittest.TestCase):
-
-  def setUp(self):
-    self.parsed = {'arch': 'i386',
-                   'catalogname': 'mysql5client',
-                   'full_version_string': '5.0.87,REV=2010.02.28',
-                   'osrel': 'SunOS5.8',
-                   'revision_info': {'REV': '2010.02.28'},
-                   'vendortag': 'CSW',
-                   'version': '5.0.87',
-                   'version_info': {'major version': '5',
-                                    'minor version': '0',
-                                    'patchlevel': '87'}}
-
-  def testSimple(self):
-    file_name = 'mysql5client-5.0.87,REV=2010.02.28-SunOS5.8-i386-CSW.pkg'
-    self.assertEquals(file_name, opencsw.ComposePackageFileName(self.parsed))
-
-  def testMoreRev(self):
-    file_name = 'mysql5client-5.0.87,REV=2010.02.28_foo=bar-SunOS5.8-i386-CSW.pkg'
-    self.parsed["revision_info"]["foo"] = "bar"
-    self.assertEquals(file_name, opencsw.ComposePackageFileName(self.parsed))
-
-
 class ParseVersionStringTest(unittest.TestCase):
 
   def test_NoRev(self):
@@ -204,28 +180,11 @@
 
   def test_Empty(self):
     data = ""
+    opencsw.ParseVersionString(data)
     expected = ('', {'major version': ''}, {})
     self.assertEqual(expected, opencsw.ParseVersionString(data))
 
-  def testExtraStringsHashable(self):
-    data = "2.7,REV=2009.06.18_STABLE6"
-    expected = (
-        '2.7',
-        {
-          'minor version': '7',
-          'major version': '2'},
-        {
-          # Here's the important bit: all parts of the parsed version
-          # must be hashable for submitpkg to work.
-          'extra_strings': ('STABLE6',),
-          'REV': '2009.06.18',
-        }
-    )
-    result = opencsw.ParseVersionString(data)
-    hash(result[2]['extra_strings'])
-    self.assertEqual(expected, opencsw.ParseVersionString(data))
 
-
 class UpgradeTypeTest(unittest.TestCase):
 
   def testUpgradeType_1(self):

Modified: csw/mgar/gar/v2-fortran/lib/python/package_checks.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/package_checks.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/package_checks.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -1194,6 +1194,22 @@
             % (binary_info["soname"], binary_info["base_name"]))
 
 
+def CheckDocDir(pkg_data, error_mgr, logger, messenger):
+  pkgname = pkg_data["basic_stats"]["pkgname"]
+  docpath_re = re.compile(r"/opt/csw/share/doc/(?P<docname>[^/]+)/license")
+  for pkgmap_entry in pkg_data["pkgmap"]:
+    if "path" not in pkgmap_entry: continue
+    if not pkgmap_entry["path"]: continue
+    m = docpath_re.match(pkgmap_entry["path"])
+    if m:
+      if m.groupdict()["docname"] != pkg_data["basic_stats"]["catalogname"]:
+        error_mgr.ReportError(
+            "wrong-docdir",
+            "expected=/opt/csw/shared/doc/%s/... "
+            "in-package=%s"
+            % (pkg_data["basic_stats"]["catalogname"],
+               pkgmap_entry["path"]))
+
 def CheckSonameMustNotBeEqualToFileNameIfFilenameEndsWithSo(
     pkg_data, error_mgr, logger, messenger):
   pass

Modified: csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py	2010-12-06 18:32:20 UTC (rev 11818)
+++ csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -549,6 +549,66 @@
     self.pkg_data = [self.pkg_data]
 
 
+class TestDeprecatedLibraries_GoodRpath(CheckpkgUnitTestHelper, unittest.TestCase):
+  FUNCTION_NAME = 'SetCheckLibraries'
+  def CheckpkgTest(self):
+    binaries_dump_info = self.pkg_data["binaries_dump_info"]
+    binaries_dump_info[0]["runpath"] = ("/opt/csw/bdb47/lib", "/opt/csw/lib",)
+    binaries_dump_info[0]["needed sonames"] = ["libdb-4.7.so"]
+    self.pkg_data["depends"] = (("CSWbad", None),(u"CSWcommon", ""))
+    self.pkg_data["binaries_dump_info"] = binaries_dump_info[0:1]
+    self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libdb-4.7.so').AndReturn({
+       u'/opt/csw/bdb47/lib':         [u'CSWbad'],
+       u'/opt/csw/bdb47lib/sparcv9': [u'CSWbad'],
+       u'/opt/csw/lib':               [u'CSWgood'],
+       u'/opt/csw/lib/sparcv9':       [u'CSWgood'],
+    })
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/share/man').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/bin').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/bin/sparcv8').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/bin/sparcv9').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/share/doc').AndReturn(["CSWcommon"])
+    # There should be no error here, since /opt/csw/bdb47/lib is first in the RPATH.
+    self.pkg_data = [self.pkg_data]
+
+
+class TestDeprecatedLibraries_BadRpath(CheckpkgUnitTestHelper, unittest.TestCase):
+  FUNCTION_NAME = 'SetCheckLibraries'
+  def CheckpkgTest(self):
+    binaries_dump_info = self.pkg_data["binaries_dump_info"]
+    binaries_dump_info[0]["runpath"] = ("/opt/csw/lib", "/opt/csw/bdb47/lib",)
+    binaries_dump_info[0]["needed sonames"] = ["libdb-4.7.so"]
+    self.pkg_data["depends"] = (("CSWbad", None),(u"CSWcommon", ""))
+    self.pkg_data["binaries_dump_info"] = binaries_dump_info[0:1]
+    self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libdb-4.7.so').AndReturn({
+       u'/opt/csw/bdb47/lib':         [u'CSWbad'],
+       u'/opt/csw/bdb47lib/sparcv9': [u'CSWbad'],
+       u'/opt/csw/lib':               [u'CSWgood'],
+       u'/opt/csw/lib/sparcv9':       [u'CSWgood'],
+    })
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/share/man').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/bin').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/bin/sparcv8').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/bin/sparcv9').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.GetPkgByPath(
+        '/opt/csw/share/doc').AndReturn(["CSWcommon"])
+    self.error_mgr_mock.ReportError(
+        'CSWrsync',
+        'deprecated-library',
+        u'opt/csw/bin/sparcv8/rsync Deprecated Berkeley DB location '
+        u'/opt/csw/lib/libdb-4.7.so')
+    self.pkg_data = [self.pkg_data]
+
+
 class TestSetCheckLibmLinking(CheckpkgUnitTestHelper, unittest.TestCase):
   FUNCTION_NAME = 'SetCheckLibraries'
   def CheckpkgTest(self):
@@ -1371,6 +1431,7 @@
   FUNCTION_NAME = 'CheckSharedLibraryNameMustBeAsubstringOfSoname'
   def CheckpkgTest(self):
     self.pkg_data = neon_stats[0]
+    # TODO: Implement this
 
 
 class TestCheckSharedLibraryNameMustBeAsubstringOfSonameGood(
@@ -1384,5 +1445,32 @@
         'soname=libneon.so.27 filename=foo.so.1')
 
 
+class TestCheckDocDirLicense(CheckpkgUnitTestHelper, unittest.TestCase):
+  FUNCTION_NAME = 'CheckDocDir'
+  def CheckpkgTest(self):
+    self.pkg_data = neon_stats[0]
+    self.pkg_data["pkgmap"].append({
+      "class": "none", "type": "f", "line": "",
+      "user": "root", "group": "bin", "mode": '0755',
+      "path": "/opt/csw/share/doc/alien/license",
+    })
+    self.error_mgr_mock.ReportError(
+        'wrong-docdir',
+        'expected=/opt/csw/shared/doc/neon/... '
+        'in-package=/opt/csw/share/doc/alien/license')
+
+
+class TestCheckDocDirRandomFile(CheckpkgUnitTestHelper, unittest.TestCase):
+  "A random file should not trigger the message; only license files."
+  FUNCTION_NAME = 'CheckDocDir'
+  def CheckpkgTest(self):
+    self.pkg_data = neon_stats[0]
+    self.pkg_data["pkgmap"].append({
+      "class": "none", "type": "f", "line": "",
+      "user": "root", "group": "bin", "mode": '0755',
+      "path": "/opt/csw/share/doc/alien/random_file",
+    })
+
+
 if __name__ == '__main__':
   unittest.main()

Copied: csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py (from rev 10927, csw/mgar/gar/v2/lib/python/testdata/apr_util_stats.py)
===================================================================
--- csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py	                        (rev 0)
+++ csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py	2010-12-06 22:14:33 UTC (rev 11819)
@@ -0,0 +1,605 @@
+import datetime
+pkgstats = [{'bad_paths': {},
+  'basic_stats': {'catalogname': 'apr_util',
+                  'md5_sum': 'e19f2b377884db51cc20a88ff06c8eb7',
+                  'parsed_basename': {'arch': 'sparc',
+                                      'catalogname': 'apr_util',
+                                      'full_version_string': '1.3.9,REV=2010.08.27',
+                                      'osrel': 'SunOS5.9',
+                                      'revision_info': {'REV': '2010.08.27'},
+                                      'vendortag': 'CSW',
+                                      'version': '1.3.9',
+                                      'version_info': {'major version': '1',
+                                                       'minor version': '3',
+                                                       'patchlevel': '9'}},
+                  'pkg_basename': 'apr_util-1.3.9,REV=2010.08.27-SunOS5.9-sparc-CSW.pkg.gz',
+                  'pkg_path': '/tmp/pkg_bKg13A/apr_util-1.3.9,REV=2010.08.27-SunOS5.9-sparc-CSW.pkg.gz',
+                  'pkgname': 'CSWar-util',
+                  'stats_version': 9L},
+  'binaries': ['opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so',
+               'opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so',
+               'opt/csw/lib/apr-util-1/apr_dbm_db-1.so',
+               'opt/csw/lib/apr-util-1/apr_ldap-1.so',
+               'opt/csw/lib/libaprutil-1.so.0.3.9'],
+  'binaries_dump_info': [{'RPATH set': True,
+                          'RUNPATH RPATH the same': True,
+                          'RUNPATH set': True,
+                          'base_name': 'apr_dbd_odbc-1.so',
+                          'needed sonames': ('libodbc.so.1', 'libc.so.1'),
+                          'path': 'opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so',
+                          'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'),
+                          'soname': 'apr_dbd_odbc-1.so'},
+                         {'RPATH set': True,
+                          'RUNPATH RPATH the same': True,
+                          'RUNPATH set': True,
+                          'base_name': 'apr_dbd_sqlite3-1.so',
+                          'needed sonames': ('libsqlite3.so.0',
+                                             'libc.so.1'),
+                          'path': 'opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so',
+                          'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'),
+                          'soname': 'apr_dbd_sqlite3-1.so'},
+                         {'RPATH set': True,
+                          'RUNPATH RPATH the same': True,
+                          'RUNPATH set': True,
+                          'base_name': 'apr_dbm_db-1.so',
+                          'needed sonames': ('libdb-4.7.so', 'libc.so.1'),
+                          'path': 'opt/csw/lib/apr-util-1/apr_dbm_db-1.so',
+                          'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'),
+                          'soname': 'apr_dbm_db-1.so'},
+                         {'RPATH set': True,
+                          'RUNPATH RPATH the same': True,
+                          'RUNPATH set': True,
+                          'base_name': 'apr_ldap-1.so',
+                          'needed sonames': ('libldap-2.4.so.2',
+                                             'libgen.so.1',
+                                             'libnet.so',
+                                             'libsasl2.so.2',
+                                             'libdl.so.1',
+                                             'libnsl.so.1',
+                                             'libresolv.so.2',
+                                             'libsocket.so.1',
+                                             'libssl.so.0.9.8',
+                                             'libcrypto.so.0.9.8',
+                                             'liblber-2.4.so.2',
+                                             'libc.so.1'),
+                          'path': 'opt/csw/lib/apr-util-1/apr_ldap-1.so',
+                          'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'),
+                          'soname': 'apr_ldap-1.so'},
+                         {'RPATH set': True,
+                          'RUNPATH RPATH the same': True,
+                          'RUNPATH set': True,
+                          'base_name': 'libaprutil-1.so.0.3.9',
+                          'needed sonames': ('libexpat.so.1',
+                                             'libiconv.so.2',
+                                             'libapr-1.so.0',
+                                             'libuuid.so.1',
+                                             'libsendfile.so.1',
+                                             'librt.so.1',
+                                             'libsocket.so.1',
+                                             'libnsl.so.1',
+                                             'libpthread.so.1',
+                                             'libdl.so.1',
+                                             'libc.so.1'),
+                          'path': 'opt/csw/lib/libaprutil-1.so.0.3.9',
+                          'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'),
+                          'soname': 'libaprutil-1.so.0'}],
+  'depends': [('CSWcommon',
+               'CSWcommon common - common files and dirs for CSW packages '),
+              ('CSWapr', 'CSWapr apr - Apache Portable Runtime '),
+              ('CSWiconv', 'CSWiconv libiconv - GNU iconv library '),
+              ('CSWsqlite3rt',
+               'CSWsqlite3rt sqlite3_rt - An embeddable SQL engine in a C library runtime '),
+              ('CSWunixodbc',
+               'CSWunixodbc unixodbc - ODBC drivers for Unix systems '),
+              ('CSWexpat', 'CSWexpat expat - XML Parser Toolkit '),
+              ('CSWbdb47',
+               'CSWbdb47 berkeleydb47 - BerkeleyDB 4.7 embedded database libraries and utilities '),
+              ('CSWoldaprt',
+               'CSWoldaprt openldap_rt - OpenLDAP runtime libraries '),
+              ('CSWosslrt',
+               'CSWosslrt openssl_rt - Openssl runtime libraries '),
+              ('CSWsasl',
+               'CSWsasl sasl - Simple Authentication and Security Layer '),
+              ('CSWlibnet',
+               'CSWlibnet libnet - the libnet packet construction library ')],
+  'files_metadata': [{'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_ldap_option.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_memcache.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_dbd.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_sdbm.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apu_want.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_rmm.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_uri.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_ldap_rebind.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_ldap_url.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_reslist.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_anylock.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_date.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_thread_pool.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_hooks.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_dbm.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_optional.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_strmatch.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_queue.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_base64.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_ldap.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_ldap_init.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_optional_hooks.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_sha1.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_uuid.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_xml.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_xlate.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apu.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_md5.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apu_version.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_md4.h'},
+                     {'mime_type': 'text/x-c; charset=us-ascii',
+                      'path': 'opt/csw/include/apr_buckets.h'},
+                     {'mime_type': 'text/plain; charset=us-ascii',
+                      'path': 'opt/csw/lib/aprutil.exp'},
+                     {'endian': 'Big endian',
+                      'machine_id': 2,
+                      'mime_type': 'application/x-sharedlib; charset=binary',
+                      'mime_type_by_hachoir': u'application/x-executable',
+                      'path': 'opt/csw/lib/libaprutil-1.so.0.3.9'},
+                     {'mime_type': 'text/plain; charset=us-ascii',
+                      'path': 'opt/csw/lib/pkgconfig/apr-util-1.pc'},
+                     {'endian': 'Big endian',
+                      'machine_id': 2,
+                      'mime_type': 'application/x-sharedlib; charset=binary',
+                      'mime_type_by_hachoir': u'application/x-executable',
+                      'path': 'opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so'},
+                     {'endian': 'Big endian',
+                      'machine_id': 2,
+                      'mime_type': 'application/x-sharedlib; charset=binary',
+                      'mime_type_by_hachoir': u'application/x-executable',
+                      'path': 'opt/csw/lib/apr-util-1/apr_ldap-1.so'},
+                     {'endian': 'Big endian',
+                      'machine_id': 2,
+                      'mime_type': 'application/x-sharedlib; charset=binary',
+                      'mime_type_by_hachoir': u'application/x-executable',
+                      'path': 'opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so'},
+                     {'endian': 'Big endian',
+                      'machine_id': 2,
+                      'mime_type': 'application/x-sharedlib; charset=binary',
+                      'mime_type_by_hachoir': u'application/x-executable',
+                      'path': 'opt/csw/lib/apr-util-1/apr_dbm_db-1.so'},
+                     {'mime_type': 'text/plain; charset=us-ascii',
+                      'path': 'opt/csw/share/doc/apr_util/license'},
+                     {'mime_type': 'text/x-shellscript; charset=us-ascii',
+                      'path': 'opt/csw/bin/apu-1-config'}],
+  'isalist': ('sparcv9+vis2',
+              'sparcv9+vis',
+              'sparcv9',
+              'sparcv8plus+vis2',
+              'sparcv8plus+vis',
+              'sparcv8plus',
+              'sparcv8',
+              'sparcv8-fsmuld',
+              'sparcv7',
+              'sparc'),
+  'mtime': datetime.datetime(2010, 8, 27, 11, 0, 10),
+  'overrides': [],
+  'pkgchk': {'return_code': 0,
+             'stderr_lines': ['rm: Cannot remove any directory in the path of the current working directory',
+                              '/var/tmp/aaaIGaO6g/CSWar-util'],
+             'stdout_lines': ['Checking uninstalled stream format package <CSWar-util> from </tmp/pkg_bKg13A/apr_util-1.3.9,REV=2010.08.27-SunOS5.9-sparc-CSW.pkg>',
+                              '## Checking control scripts.',
+                              '## Checking package objects.',
+                              '## Checking is complete.']},
+  'pkginfo': {'ARCH': 'sparc',
+              'CATEGORY': 'application',
+              'CLASSES': 'none',
+              'EMAIL': 'maciej at opencsw.org',
+              'HOTLINE': 'http://www.opencsw.org/bugtrack/',
+              'NAME': 'apr_util - Apache Portable Runtime Utilities',
+              'OPENCSW_BUNDLE': 'apr-util',
+              'OPENCSW_CATALOGNAME': 'apr_util',
+              'OPENCSW_MODE64': '32',
+              'OPENCSW_REPOSITORY': 'https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg/apr-util/trunk@10822',
+              'PKG': 'CSWar-util',
+              'PSTAMP': 'maciej at testing9s-20100827130000',
+              'VENDOR': 'http://apache.crihan.fr/dist/apr/ packaged for CSW by Maciej Blizinski',
+              'VERSION': '1.3.9,REV=2010.08.27',
+              'WORKDIR_FIRSTMOD': '../build-isa-sparcv8'},
+  'pkgmap': [{'class': None,
+              'group': None,
+              'line': ': 1 0',
+              'mode': None,
+              'path': None,
+              'type': '1',
+              'user': None},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/bin/apu-1-config 0755 root bin 6437 35894 1282906794',
+              'mode': '0755',
+              'path': '/opt/csw/bin/apu-1-config',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_anylock.h 0644 root bin 5050 35768 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_anylock.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_base64.h 0644 root bin 3823 57460 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_base64.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_buckets.h 0644 root bin 60020 64941 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_buckets.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_date.h 0644 root bin 3554 13649 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_date.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_dbd.h 0644 root bin 24093 4453 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_dbd.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_dbm.h 0644 root bin 8599 26734 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_dbm.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_hooks.h 0644 root bin 8585 47295 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_hooks.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_ldap.h 0644 root bin 5704 7247 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_ldap.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_ldap_init.h 0644 root bin 5780 10710 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_ldap_init.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_ldap_option.h 0644 root bin 8604 41864 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_ldap_option.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_ldap_rebind.h 0644 root bin 3168 62596 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_ldap_rebind.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_ldap_url.h 0644 root bin 3799 32681 1282906791',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_ldap_url.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_md4.h 0644 root bin 4525 42434 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_md4.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_md5.h 0644 root bin 5573 519 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_md5.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_memcache.h 0644 root bin 17072 60128 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_memcache.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_optional.h 0644 root bin 2780 34306 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_optional.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_optional_hooks.h 0644 root bin 3869 64111 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_optional_hooks.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_queue.h 0644 root bin 4082 16636 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_queue.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_reslist.h 0644 root bin 6326 56986 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_reslist.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_rmm.h 0644 root bin 4778 15266 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_rmm.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_sdbm.h 0644 root bin 6113 34421 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_sdbm.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_sha1.h 0644 root bin 3884 57845 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_sha1.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_strmatch.h 0644 root bin 2677 28267 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_strmatch.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_thread_pool.h 0644 root bin 11104 60025 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_thread_pool.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_uri.h 0644 root bin 6589 55175 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_uri.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_uuid.h 0644 root bin 2102 40269 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_uuid.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_xlate.h 0644 root bin 6408 789 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_xlate.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apr_xml.h 0644 root bin 12357 61173 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apr_xml.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apu.h 0644 root bin 3560 23891 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apu.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apu_version.h 0644 root bin 4126 11796 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apu_version.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/include/apu_want.h 0644 root bin 1483 49830 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/include/apu_want.h',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 d none /opt/csw/lib/apr-util-1 0755 root bin',
+              'mode': '0755',
+              'path': '/opt/csw/lib/apr-util-1',
+              'type': 'd',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so 0755 root bin 30580 5683 1282906789',
+              'mode': '0755',
+              'path': '/opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': None,
+              'line': '1 s none /opt/csw/lib/apr-util-1/apr_dbd_odbc.so=apr_dbd_odbc-1.so',
+              'mode': None,
+              'path': '/opt/csw/lib/apr-util-1/apr_dbd_odbc.so',
+              'type': 's',
+              'user': None},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so 0755 root bin 18044 2829 1282906788',
+              'mode': '0755',
+              'path': '/opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': None,
+              'line': '1 s none /opt/csw/lib/apr-util-1/apr_dbd_sqlite3.so=apr_dbd_sqlite3-1.so',
+              'mode': None,
+              'path': '/opt/csw/lib/apr-util-1/apr_dbd_sqlite3.so',
+              'type': 's',
+              'user': None},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/lib/apr-util-1/apr_dbm_db-1.so 0755 root bin 9764 59811 1282906789',
+              'mode': '0755',
+              'path': '/opt/csw/lib/apr-util-1/apr_dbm_db-1.so',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': None,
+              'line': '1 s none /opt/csw/lib/apr-util-1/apr_dbm_db.so=apr_dbm_db-1.so',
+              'mode': None,
+              'path': '/opt/csw/lib/apr-util-1/apr_dbm_db.so',
+              'type': 's',
+              'user': None},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/lib/apr-util-1/apr_ldap-1.so 0755 root bin 17916 9844 1282906790',
+              'mode': '0755',
+              'path': '/opt/csw/lib/apr-util-1/apr_ldap-1.so',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': None,
+              'line': '1 s none /opt/csw/lib/apr-util-1/apr_ldap.so=apr_ldap-1.so',
+              'mode': None,
+              'path': '/opt/csw/lib/apr-util-1/apr_ldap.so',
+              'type': 's',
+              'user': None},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/lib/aprutil.exp 0644 root bin 5442 19740 1282906793',
+              'mode': '0644',
+              'path': '/opt/csw/lib/aprutil.exp',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': None,
+              'line': '1 s none /opt/csw/lib/libaprutil-1.so=libaprutil-1.so.0.3.9',
+              'mode': None,
+              'path': '/opt/csw/lib/libaprutil-1.so',
+              'type': 's',
+              'user': None},
+             {'class': 'none',
+              'group': None,
+              'line': '1 s none /opt/csw/lib/libaprutil-1.so.0=libaprutil-1.so.0.3.9',
+              'mode': None,
+              'path': '/opt/csw/lib/libaprutil-1.so.0',
+              'type': 's',
+              'user': None},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/lib/libaprutil-1.so.0.3.9 0755 root bin 272120 38251 1282906792',
+              'mode': '0755',
+              'path': '/opt/csw/lib/libaprutil-1.so.0.3.9',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 d none /opt/csw/lib/pkgconfig 0755 root bin',
+              'mode': '0755',
+              'path': '/opt/csw/lib/pkgconfig',
+              'type': 'd',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/lib/pkgconfig/apr-util-1.pc 0644 root bin 371 32716 1282906792',
+              'mode': '0644',
+              'path': '/opt/csw/lib/pkgconfig/apr-util-1.pc',
+              'type': 'f',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 d none /opt/csw/share/doc/apr_util 0755 root bin',
+              'mode': '0755',
+              'path': '/opt/csw/share/doc/apr_util',
+              'type': 'd',
+              'user': 'root'},
+             {'class': 'none',
+              'group': 'bin',
+              'line': '1 f none /opt/csw/share/doc/apr_util/license 0644 root bin 21179 51077 1282906796',
+              'mode': '0644',
+              'path': '/opt/csw/share/doc/apr_util/license',
+              'type': 'f',
+              'user': 'root'},
+             {'class': None,
+              'group': None,
+              'line': '1 i copyright 72 6789 1282906796',
+              'mode': None,
+              'path': None,
+              'type': 'i',
+              'user': None},
+             {'class': None,
+              'group': None,
+              'line': '1 i depend 614 54845 1282906800',
+              'mode': None,
+              'path': None,
+              'type': 'i',
+              'user': None},
+             {'class': None,
+              'group': None,
+              'line': '1 i pkginfo 528 44388 1282906809',
+              'mode': None,
+              'path': None,
+              'type': 'i',
+              'user': None}]}]
+


Property changes on: csw/mgar/gar/v2-fortran/pkglib/csw/depend
___________________________________________________________________
Modified: svn:mergeinfo
   - /csw/mgar/gar/v2/pkglib/csw/depend:4936-6678,10928-10988,10990-11763
/csw/mgar/gar/v2-bwalton/pkglib/csw/depend:9784-10011
/csw/mgar/gar/v2-checkpkg/pkglib/csw/depend:7722-7855
/csw/mgar/gar/v2-checkpkg-override-relocation/pkglib/csw/depend:10585-10737
/csw/mgar/gar/v2-checkpkg-stats/pkglib/csw/depend:8454-8649
/csw/mgar/gar/v2-collapsed-modulations/pkglib/csw/depend:6895
/csw/mgar/gar/v2-dirpackage/pkglib/csw/depend:8125-8180
/csw/mgar/gar/v2-noexternals/pkglib/csw/depend:11592-11745
/csw/mgar/gar/v2-relocate/pkglib/csw/depend:5028-11738
/csw/mgar/gar/v2-skayser/pkglib/csw/depend:6087-6132
/csw/mgar/gar/v2-sqlite/pkglib/csw/depend:10434-10449
   + /csw/mgar/gar/v2/pkglib/csw/depend:4936-6678,10883-11818
/csw/mgar/gar/v2-bwalton/pkglib/csw/depend:9784-10011
/csw/mgar/gar/v2-checkpkg/pkglib/csw/depend:7722-7855
/csw/mgar/gar/v2-checkpkg-override-relocation/pkglib/csw/depend:10585-10737
/csw/mgar/gar/v2-checkpkg-stats/pkglib/csw/depend:8454-8649
/csw/mgar/gar/v2-collapsed-modulations/pkglib/csw/depend:6895
/csw/mgar/gar/v2-dirpackage/pkglib/csw/depend:8125-8180
/csw/mgar/gar/v2-noexternals/pkglib/csw/depend:11592-11745
/csw/mgar/gar/v2-relocate/pkglib/csw/depend:5028-11738
/csw/mgar/gar/v2-skayser/pkglib/csw/depend:6087-6132
/csw/mgar/gar/v2-sqlite/pkglib/csw/depend:10434-10449


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