[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