Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Builder appbat-ia64 Build #133

Results:

Build successful

SourceStamp:

Repository/var/www/bzr/lsb/devel/appbat
Branchlsb/devel/appbat
Revision1008
Got Revision1008
Changes4 changes

BuildSlave:

lfbuild-ia64

Reason:

scheduler

Steps and Logfiles:

  1. reload-sdk 'update-sdk' ( 0 secs )
    1. stdio
  2. unpack-dep-tet-harness-ia64 'tar xzvf ...' ( 0 secs )
    1. stdio
  3. install-dep-tet-harness-all-ia64 'ls results/*.rpm ...' ( 0 secs )
    1. stdio
  4. remove-dep-tet-harness-ia64 'rm -rf ...' ( 0 secs )
    1. stdio
  5. remove-old-libbat 'rpm -qa ...' ( 1 secs )
    1. stdio
  6. unpack-dep-libbat-ia64 'tar xzvf ...' ( 0 secs )
    1. stdio
  7. install-dep-libbat-all-ia64 'ls results/*.rpm ...' ( 0 secs )
    1. stdio
  8. remove-dep-libbat-ia64 'rm -rf ...' ( 0 secs )
    1. stdio
  9. unpack-dep-misc-test-ia64 'tar xzvf ...' ( 0 secs )
    1. stdio
  10. install-dep-misc-test-lsb-appchk-ia64 'ls results/lsb-appchk*.rpm ...' ( 1 secs )
    1. stdio
  11. remove-dep-misc-test-ia64 'rm -rf ...' ( 0 secs )
    1. stdio
  12. bzr update ( 9 secs )
    1. stdio
  13. clear-old-nalfs 'rm -rf ...' ( 0 secs )
    1. stdio
  14. create-tools-dir 'mkdir -p ...' ( 0 secs )
    1. stdio
  15. checkout-nalfs 'bzr checkout ...' ( 1 secs )
    1. stdio
  16. clear-old-results 'rm -rf ...' ( 0 secs )
    1. stdio
  17. create-results-dir 'mkdir -p ...' ( 0 secs )
    1. stdio
  18. create-pkgcache 'mkdir -p ...' ( 0 secs )
    1. stdio
  19. copy-pkgcache 'cp /opt/buildbot/tmp/appbat-pkgcache/* ...' ( 0 secs )
    1. stdio
  20. clear-pkgcache 'rm -f ...' ( 0 secs )
    1. stdio
  21. configure './configure' ( 8 secs )
    1. stdio
  22. check-pkgcache 'extras/entitycheck.py -c ...' ( 1 secs )
    1. stdio
  23. download-pkgs 'extras/entitycheck.py -q ...' ( 0 secs )
    1. stdio
  24. build-appbat 'make appbat ...' ( 56 mins, 40 secs )
    1. stdio
  25. build-desktop 'make desktop ...' ( 45 mins, 43 secs )
    1. stdio
  26. build-addons 'make addons ...' ( 25 mins, 4 secs )
    1. stdio
  27. check-appbat 'make check-appbat' ( 0 secs )
    1. stdio
  28. check-desktop 'make check-desktop' ( 0 secs )
    1. stdio
  29. check-addons 'make check-addons' ( 0 secs )
    1. stdio
  30. build-pkg 'cd rpm ...' ( 1 hrs, 31 mins, 50 secs )
    1. stdio
  31. copy-results 'find rpm ...' ( 2 secs )
    1. stdio
  32. run-appbat-tests 'run-appbat-tests ../results ...' ( 52 secs )
    1. stdio
  33. pack-results 'tar czvf ...' ( 37 secs )
    1. stdio
  34. upload-results uploading results.tar.gz ( 54 secs )
    1. - no logs -
  35. save-pkgcache 'cp packages/*tar* ...' ( 0 secs )
    1. stdio
  36. clean 'make clean' ( 4 secs )
    1. stdio

Build Properties:

NameValueSource
branch lsb/devel/appbat Build
branch_name devel Unknown
buildername appbat-ia64 Builder
buildnumber 133 Build
codebase Build
got_revision 1008 Bzr
project Build
repository /var/www/bzr/lsb/devel/appbat Build
result_type devel Unknown
revision 1008 Build
scheduler sch-appbat-ia64 Scheduler
slavename lfbuild-ia64 BuildSlave
workdir /opt/buildbot/lsb-slave/appbat-ia64 slave

Forced Build Properties:

NameLabelValue

Responsible Users:

  1. Mats Wichmann

Timing:

StartFri Dec 30 17:42:18 2016
EndFri Dec 30 21:24:42 2016
Elapsed3 hrs, 42 mins, 23 secs

All Changes:

:

  1. Change #136

    Category None
    Changed by Mats Wichmann <matsohnoyoudont@linuxfoundation.org>
    Changed at Fri 30 Dec 2016 07:33:27
    Repository /var/www/bzr/lsb/devel/appbat
    Branch lsb/devel/appbat
    Revision 1005

    Comments

    more Pythonic cleanup
    

    Changed files

    • [{fallback_url}] MODIFIED
    • fails.append(pkg) MODIFIED
    • fails.append(pkg) MODIFIED
    • missing.append(pkg) MODIFIED
    • missing.append(pkg) MODIFIED
    • raise IOError MODIFIED
    • return 1 MODIFIED
    • self.message = "completed" MODIFIED
    • # if it died or was interrupted, remove the partial file MODIFIED
    • # if it died or was interrupted, remove the partial file MODIFIED
    • # we're a partial file. Try to fix this ... MODIFIED
    • # wget's restartability doesn't help, tool won't detect MODIFIED
    • break MODIFIED
    • handle = os.popen("wget -c " + to_get) MODIFIED
    • if not handle.close(): MODIFIED
    • if pkg.message == 'not found': MODIFIED
    • if pkg.message == 'not found': MODIFIED
    • if pkg.message == 'retrieval failed': MODIFIED
    • if pkg.message == 'retrieval failed': MODIFIED
    • self.message = "completed" MODIFIED
    • sys.stderr.write("try %d failed: %s\n" % (numtries, url)) MODIFIED
    • sys.stdout.write("\n") MODIFIED
    • traceback.print_exc() MODIFIED
    • missing_packages, missing_patches, extras) MODIFIED
    • # failed? just try next url in loop MODIFIED
    • # failed? just try next url in loop MODIFIED
    • break MODIFIED
    • break MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • except (IOError, KeyboardInterrupt): MODIFIED
    • if pkg.fetch(locations, epaths['fallback_url'], epaths['package_path']): MODIFIED
    • if pkg.wget(locations, epaths['fallback_url'], epaths['package_path']): MODIFIED
    • print "fetch %s from (%s, ...) to %s" % \ MODIFIED
    • return 0 MODIFIED
    • self.message = "retrieval failed" MODIFIED
    • to_get = "%s/%s" % (url, self.file) MODIFIED
    • to_get = url + os.sep + self.file MODIFIED
    • try: MODIFIED
    • try: MODIFIED
    • urls = [fallback, loc.path, loc.alternate] MODIFIED
    • urls = [loc.path, loc.alternate, fallback] MODIFIED
    • urls = [loc.path, loc.alternate, fallback] MODIFIED
    • usage(2, "check-sums and generate-sums are mutually exclusive") MODIFIED
    • usage(2, "check-sums and generate-sums are mutually exclusive") MODIFIED
    • yield re.search(r'(\S+)-package\s+"([^"]+)"', line) MODIFIED
    • yield re.search(r'(\S+)-patch\s+"([^"]+)"', line) MODIFIED
    • and entity.md5sum != checksums[entity.file]] MODIFIED
    • # New MODIFIED
    • # if we didn't "break" out of inner loop, the fetch failed MODIFIED
    • # try up to three times to fetch the file MODIFIED
    • break MODIFIED
    • check_sums = 'yes' MODIFIED
    • continue MODIFIED
    • dry_run = 'yes' MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • fetch_files = 'yes' MODIFIED
    • for url in urls: MODIFIED
    • for url in urls: MODIFIED
    • found.append(item) MODIFIED
    • generate_sums = 'yes' MODIFIED
    • if check_sums: MODIFIED
    • if dry_run: # just print a message and bail MODIFIED
    • if generate_sums: MODIFIED
    • if not block: MODIFIED
    • if not re.search('<!--', line): MODIFIED
    • if not re.search('<!--', line): MODIFIED
    • if prefer_fallback: MODIFIED
    • if use_wget: MODIFIED
    • item.delete_file() MODIFIED
    • missing.append(item) MODIFIED
    • os.chdir(destination) MODIFIED
    • pkgpath = "%s/%s" % (destination, self.file) MODIFIED
    • print "Deleting " + item.file MODIFIED
    • print item MODIFIED
    • print self.front, MODIFIED
    • self.name, self.file = match MODIFIED
    • self.name, self.file = match.groups() MODIFIED
    • show_extras = 'yes' MODIFIED
    • sys.stdout.flush() # force text to be displayed MODIFIED
    • """ MODIFIED
    • """Callback function for urllib.urlretrieve()""" MODIFIED
    • """Generate and store md5sum for this entity's filename""" MODIFIED
    • # Work out remaining time: need transfer rate first MODIFIED
    • Calls external command wget up to three times to retrieve the MODIFIED
    • Calls urllib.urlretrieve() up to three times to retrieve the MODIFIED
    • bits = string.split(line) MODIFIED
    • dump_coll(failed, "Packages which failed to retrieve:") MODIFIED
    • dump_coll(missing, "Entities missing:") MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • f = open(self.fullpath, "rb") MODIFIED
    • f.close() MODIFIED
    • for item in collection: MODIFIED
    • for item in collection: MODIFIED
    • for loc in locations: MODIFIED
    • for loc in locations: MODIFIED
    • if len(bits) < 3 or bits[1] == "none" or bits[1] == "None": MODIFIED
    • if opt == '--dryrun': MODIFIED
    • if opt == '--show-extras': MODIFIED
    • left = (total - so_far) / rate MODIFIED
    • now = time.time() MODIFIED
    • package. Retrieval locations are looked up in 'locations', MODIFIED
    • package. Retrieval locations are looked up in 'locations', MODIFIED
    • pch_parser = parse_patches MODIFIED
    • pct = so_far * 100L / total MODIFIED
    • pkg_parser = parse_packages MODIFIED
    • print "writing checksums to {md5sum_file}".format(**epaths) MODIFIED
    • print 'Error: cannot write to package directory ({package_path})'.format(**epaths) MODIFIED
    • print MODIFIED
    • print msg, len(collection) MODIFIED
    • r, f, m = retrieve_packages(bad_packages) MODIFIED
    • rate = so_far / elapsed MODIFIED
    • return '\t{}'.format(self.file) MODIFIED
    • return 0 MODIFIED
    • rv = 1 MODIFIED
    • rv = 1 MODIFIED
    • self.front = "%s:" % self.file MODIFIED
    • self.md5sum = "%02x"*len(s) % tuple(map(ord, s)) MODIFIED
    • self.message = "%d of %d bytes (%d%%) %s" % (so_far, total, pct, timestr) MODIFIED
    • self.message = "not found" MODIFIED
    • self.message = "not found" MODIFIED
    • self.name = name MODIFIED
    • self.running_output() MODIFIED
    • self.running_output() MODIFIED
    • so_far = block_count * block_size MODIFIED
    • sums.write("%s %s\n" % (entity.md5sum, entity.file)) MODIFIED
    • the name of a locations instance must match our name, that MODIFIED
    • the name of a locations instance must match our name, that MODIFIED
    • timestr = "%s%02d:%02d remaining" % (timestr, tmp[4], tmp[5]) MODIFIED
    • tmp = time.gmtime(left) MODIFIED
    • usage(1, 'Cannot open entity file: \n\t%s' % message) MODIFIED
    • usage(1, 'Cannot open entity file: \n\t%s' % message) MODIFIED
    • while 1: MODIFIED
    • <!ENTITY foo-package "foo-1.2.tar.bz2">, but we need to skip XML comments. MODIFIED
    • <!ENTITY foo-package "foo-1.2.tar.bz2">, but we need to skip XML comments. MODIFIED
    • <!ENTITY foo-patch "foo-1.2.patch">, but we need to skip XML comments. MODIFIED
    • <!ENTITY foo-patch "foo-1.2.patch">, but we need to skip XML comments. MODIFIED
    • Returns a match object""" MODIFIED
    • Returns a match object""" MODIFIED
    • This version avoids the use of "with" for older Pythons MODIFIED
    • This version avoids the use of "with" for older Pythons MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """Check for files in a path that are not described by entities. MODIFIED
    • """Generate a new checksum file from checksums saved in entities. """ MODIFIED
    • """Generate checksum report MODIFIED
    • """Generate package/patch report. MODIFIED
    • """Look for package files in the entities file. desired lines look like: MODIFIED
    • """Look for package files in the entities file. desired lines look like: MODIFIED
    • """Look for package files in the entities file. desired lines look like: MODIFIED
    • """Look for package files in the entities file. desired lines look like: MODIFIED
    • """Read and parse a checksum file. MODIFIED
    • """Retrieve packages identified as missing.""" MODIFIED
    • """location instances are created for each line in the locations file""" MODIFIED
    • # pkgname url alternate_url // comment MODIFIED
    • # MODIFIED
    • # The locations file contains lines of the form: MODIFIED
    • # alternate_url is used in cases where the package may not stay MODIFIED
    • # apply a regular expression match, which we hope we can write adequately MODIFIED
    • # cue stock regular expressions joke ("now you have two problems") MODIFIED
    • # hack: we're not parsing the xml, just having the parse functions MODIFIED
    • # if we checked checksums, there may also be pkgs with bad cksums: MODIFIED
    • # if we require Python >= 2.7, can use dict comprehension: MODIFIED
    • # in one place over time (e.g., if it moves to an "old" directory MODIFIED
    • # tell us what happened on the fetch MODIFIED
    • # when a new version is released) MODIFIED
    • BLOCKSIZE = 1024*1024 MODIFIED
    • Creates an entity instance for each and returns a list (this MODIFIED
    • Generate checksums for found entities, if requested. MODIFIED
    • Global "noisy" controls whether there's any output MODIFIED
    • Global "noisy" controls whether there's any output MODIFIED
    • Global "noisy" controls whether there's any output MODIFIED
    • If so argument is a match object from re module. However entities are MODIFIED
    • Return non-zero on fatal error (failed retrievals). MODIFIED
    • Return non-zero on fatal error (missing files) MODIFIED
    • Returns a dictionary of sums indexed by filename. MODIFIED
    • Returns a tuple containing a list of each. MODIFIED
    • also built "by hand" from checking extra files, so have to check type MODIFIED
    • bad_patches, no_patches = check_checksums(found_patches, checksums) MODIFIED
    • checksums = {} MODIFIED
    • def __init__(self, match): MODIFIED
    • def __init__(self, name, path, alternate=None): MODIFIED
    • def __repr__(self): MODIFIED
    • def __str__(self): MODIFIED
    • def delete_file(self): MODIFIED
    • def domd5(self): MODIFIED
    • def feedback(self, block_count, block_size, total): MODIFIED
    • def fetch(self, locations, fallback, destination): MODIFIED
    • def wget(self, locations, fallback, destination): MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • entities.close() MODIFIED
    • entities.close() MODIFIED
    • except IOError, message: MODIFIED
    • except IOError, message: MODIFIED
    • exitcode = fetch_report(retrieved, fails, missing) MODIFIED
    • extras = check_extra(epaths['package_path'], found_packages) MODIFIED
    • extras = extras + check_extra(epaths['patch_path'], found_patches) MODIFIED
    • for entity in collection: MODIFIED
    • for line in package_file.readlines(): MODIFIED
    • for line in sums.readlines(): MODIFIED
    • found = [] MODIFIED
    • if check_sums and bad_packages: MODIFIED
    • if collection: MODIFIED
    • if collection: MODIFIED
    • import hashlib MODIFIED
    • import md5 as hashlib MODIFIED
    • is to be able to use a common print routine, only the names matter) MODIFIED
    • locations = [] MODIFIED
    • locations = parse_locations() MODIFIED
    • missing = [] MODIFIED
    • nosums = [entity for entity in collection if entity.file not in checksums] MODIFIED
    • package_file.close() MODIFIED
    • paths = dict((item.file, item) for item in collection) MODIFIED
    • print "Cannot find configuration file <extras/entitypath.py>" MODIFIED
    • print "Probably need to run ./Configure or ./configure" MODIFIED
    • print __doc__.format(**epaths) MODIFIED
    • retrieved = 0 MODIFIED
    • return (packages, patches) MODIFIED
    • return (retrieved, fails, missing) MODIFIED
    • return 0 MODIFIED
    • return badsums, nosums MODIFIED
    • return checksums MODIFIED
    • return found, missing MODIFIED
    • return locations MODIFIED
    • return notfound MODIFIED
    • return rv MODIFIED
    • return rv MODIFIED
    • sums = open(epaths['md5sum_file'], 'w') MODIFIED
    • sums.close() MODIFIED
    • sums.close() MODIFIED
    • sys.exit(code) MODIFIED
    • try: MODIFIED
    • try: MODIFIED
    • usage(2, msg) MODIFIED
    • extras/entitycheck.py MODIFIED
  2. Change #137

    Category None
    Changed by Mats Wichmann <matsohnoyoudont@linuxfoundation.org>
    Changed at Fri 30 Dec 2016 08:07:20
    Repository /var/www/bzr/lsb/devel/appbat
    Branch lsb/devel/appbat
    Revision 1006

    Comments

    get rid of the funky check for a match object by using a classmethod instead
    

    Changed files

    • found_packages + found_patches) MODIFIED
    • if filename not in paths] MODIFIED
    • """Entity class "string" is "\tfilename", as that's what some things want to print""" MODIFIED
    • """Generate and store md5sum for this entity's filename""" MODIFIED
    • pch_parser = parse_patches_oldpy MODIFIED
    • pkg_parser = parse_packages_oldpy MODIFIED
    • return "Entity('{}', '{}')".format(self.name, self.file) MODIFIED
    • return '\t{}'.format(self.file) MODIFIED
    • self.fullpath = '' MODIFIED
    • """Print usage, possibly with an error message preceding""" MODIFIED
    • # if we require Python >= 2.7, can use dict comprehension: MODIFIED
    • # paths = {item.file:item for item in collection} MODIFIED
    • def __repr__(self): MODIFIED
    • def domd5(self): MODIFIED
    • extras = check_extra(epaths['package_path'], found_packages) MODIFIED
    • paths = dict((item.file, item) for item in collection) MODIFIED
    • return (packages, patches) MODIFIED
    • return notfound MODIFIED
    • extras/entitycheck.py MODIFIED
  3. Change #138

    Category None
    Changed by Mats Wichmann <matsohnoyoudont@linuxfoundation.org>
    Changed at Fri 30 Dec 2016 10:02:37
    Repository /var/www/bzr/lsb/devel/appbat
    Branch lsb/devel/appbat
    Revision 1007

    Comments

    comment out the functions using 'with open(...' entirely - avoid mystery syntax error?
    

    Changed files

    • return 0 MODIFIED
    • """Entity class "string" is "\tfilename", as that's what some things want to print""" MODIFIED
    • # apply a regular expression match, which we hope we can write adequately MODIFIED
    • # cue stock regular expressions joke ("now you have two problems") MODIFIED
    • BLOCKSIZE = 1024 * 1024 MODIFIED
    • def __str__(self): MODIFIED
    • entities.close() MODIFIED
    • packages = [Entity.from_re_match(match) for match in pkg_parser() if match] MODIFIED
    • patches = [Entity.from_re_match(match) for match in pch_parser() if match] MODIFIED
    • extras/entitycheck.py MODIFIED
  4. Change #139

    Category None
    Changed by Mats Wichmann <matsohnoyoudont@linuxfoundation.org>
    Changed at Fri 30 Dec 2016 11:24:06
    Repository /var/www/bzr/lsb/devel/appbat
    Branch lsb/devel/appbat
    Revision 1008

    Comments

    roll back some possibly too new syntax
    

    Changed files

    • (self.file, loc.path, destination) MODIFIED
    • (self.file, loc.path, destination) MODIFIED
    • # in package_locations. MODIFIED
    • # in package_locations. MODIFIED
    • missing.append(pkg) MODIFIED
    • missing.append(pkg) MODIFIED
    • os.remove(pkgpath) MODIFIED
    • handle = os.popen("wget -c " + to_get) MODIFIED
    • if os.path.exists(pkgpath): MODIFIED
    • if pkg.message == 'retrieval failed': MODIFIED
    • if pkg.message == 'retrieval failed': MODIFIED
    • retrieved += 1 MODIFIED
    • retrieved += 1 MODIFIED
    • # failed? just try next url in loop MODIFIED
    • break MODIFIED
    • continue MODIFIED
    • continue MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • if not url: MODIFIED
    • if not url: MODIFIED
    • padding = " " * (79 - len(output)) MODIFIED
    • print "%s%.*s\r" % ("\b" * (len(self.front) + 1), 79, output), MODIFIED
    • print "fetch %s from (%s, ...) to %s" % \ MODIFIED
    • return 0 MODIFIED
    • self.message = "fetch %s from (%s, ...) to %s" % \ MODIFIED
    • self.message = "retrieval failed" MODIFIED
    • self.message = "skipped" MODIFIED
    • self.message = "skipped" MODIFIED
    • self.running_output() MODIFIED
    • to_get = "%s/%s" % (url, self.file) MODIFIED
    • to_get = url + os.sep + self.file MODIFIED
    • try: MODIFIED
    • try: MODIFIED
    • urls = [loc.path, loc.alternate, fallback] MODIFIED
    • urls = [loc.path, loc.alternate, fallback] MODIFIED
    • # New MODIFIED
    • # Skip malformed lines: MODIFIED
    • break MODIFIED
    • cksum.update(block) MODIFIED
    • dump_coll(extras, "Files not in use:") MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • else: MODIFIED
    • for url in urls: MODIFIED
    • for url in urls: MODIFIED
    • if use_wget: MODIFIED
    • pkgpath = "%s/%s" % (destination, self.file) MODIFIED
    • pkgpath = "%s/%s" % (destination, self.file) MODIFIED
    • print self.front, MODIFIED
    • timestr = "%2d:" % tmp[3] MODIFIED
    • """Callback function for urllib.urlretrieve()""" MODIFIED
    • """Delete this entity's file, if it exists""" MODIFIED
    • """Entity class "string" is "\tfilename", as that's what some things want to print""" MODIFIED
    • bits = string.split(line) MODIFIED
    • dump_coll(bad_pat, "Patches with bad checksums:") MODIFIED
    • dump_coll(bad_pkg, "Packages with bad checksums:") MODIFIED
    • dump_coll(miss_pat, "Missing patches:") MODIFIED
    • dump_coll(miss_pkg, "Missing packages:") MODIFIED
    • dump_coll(no_pkg, "Packages without checksums:") MODIFIED
    • else: MODIFIED
    • f.close() MODIFIED
    • for pkg in missing_packages: MODIFIED
    • if len(bits) < 3 or bits[1] == "none" or bits[1] == "None": MODIFIED
    • if line[0] == '#': MODIFIED
    • if show_extras: MODIFIED
    • if tmp[3]: MODIFIED
    • name, file = match.groups() MODIFIED
    • print "Package entities found:", len(fnd_pkg) MODIFIED
    • return cls(name, file) MODIFIED
    • s = cksum.digest() MODIFIED
    • self.alternate = alternate MODIFIED
    • self.name = name MODIFIED
    • self.path = path MODIFIED
    • self.running_output() MODIFIED
    • sums.write("%s %s\n" % (entity.md5sum, entity.file)) MODIFIED
    • timestr = "%s%02d:%02d remaining" % (timestr, tmp[4], tmp[5]) MODIFIED
    • <!ENTITY foo-package "foo-1.2.tar.bz2">, but we need to skip XML comments. MODIFIED
    • <!ENTITY foo-patch "foo-1.2.patch">, but we need to skip XML comments. MODIFIED
    • Returns a match object""" MODIFIED
    • Returns a match object""" MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """ MODIFIED
    • """Generate a new checksum file from checksums saved in entities. """ MODIFIED
    • """Look for package files in the entities file. desired lines look like: MODIFIED
    • """Look for package files in the entities file. desired lines look like: MODIFIED
    • """Print usage, possibly with an error message preceding""" MODIFIED
    • """location instances are created for each line in the locations file""" MODIFIED
    • # apply a regular expression match, which we hope we can write adequately MODIFIED
    • # cue stock regular expressions joke ("now you have two problems") MODIFIED
    • # if we require Python >= 2.7, can use dict comprehension: MODIFIED
    • # paths = {item.file:item for item in collection} MODIFIED
    • Checked against 'checksums' dictionary. MODIFIED
    • Returns a tuple of entities with (bad, missing) checksums. MODIFIED
    • bad_patches, no_patches = check_checksums(found_patches, checksums) MODIFIED
    • def __init__(self, name, path, alternate=None): MODIFIED
    • def __repr__(self): MODIFIED
    • def __repr__(self): MODIFIED
    • def __str__(self): MODIFIED
    • def __str__(self): MODIFIED
    • def delete_file(self): MODIFIED
    • def feedback(self, block_count, block_size, total): MODIFIED
    • def fetch(self, locations, fallback, destination): MODIFIED
    • else: MODIFIED
    • entities.close() MODIFIED
    • exitcode += sum_report(bad_packages, bad_patches, no_packages, no_patches) MODIFIED
    • for entity in collection: MODIFIED
    • for line in package_file.readlines(): MODIFIED
    • if msg: MODIFIED
    • if noisy: MODIFIED
    • if noisy: MODIFIED
    • if noisy: MODIFIED
    • locations = [] MODIFIED
    • nosums = [entity for entity in collection if entity.file not in checksums] MODIFIED
    • opts, args = getopt.getopt(sys.argv[1:], shortopts, longopts) MODIFIED
    • paths = dict((item.file, item) for item in collection) MODIFIED
    • return (packages, patches) MODIFIED
    • return (retrieved, fails, missing) MODIFIED
    • return badsums, nosums MODIFIED
    • return notfound MODIFIED
    • rv = 0 MODIFIED
    • rv = 0 MODIFIED
    • sums = open(epaths['md5sum_file'], 'w') MODIFIED
    • sums.close() MODIFIED
    • sys.exit(code) MODIFIED
    • try: MODIFIED
    • try: MODIFIED
    • extras/entitycheck.py MODIFIED