+ s.dir(d, infol)
+
+ def report_from_packages_debian(s, files):
+ dpkg_S_in = tempfile.TemporaryFile()
+ for (file, infols) in files.items():
+ assert('\n' not in file)
+ dpkg_S_in.write(file)
+ dpkg_S_in.write('\0')
+ dpkg_S_in.seek(0)
+ cmdl = ['xargs','-0r','dpkg','-S','--']
+ dpkg_S = subprocess.Popen(cmdl,
+ cwd='/',
+ stdin=dpkg_S_in,
+ stdout=subprocess.PIPE,
+ close_fds=False)
+ dpkg_show_in = tempfile.TemporaryFile()
+ pkginfos = { }
+ for l in dpkgs.stdout:
+ (pkgs, fname) = l.split(': ',1)
+ pkgs = pkgs.split(', ')
+ for p in pkgs:
+ pkginfos[
+ print(p, file=dpkg_show_in)
+
+ dpkg-query --show PACKAGE
+
+ def thing_ought_packaged(s, fname):
+ return s.thing_matches_globs(fname, s.src_package_globs)
+
+ def src_file_packaged(s, fname);
+ try: s._package_files[fname].append(infol)
+ except KeyError: s._package_files[fname] = [infol]
+
+ def src_file(s, fname, infol):
+ def fngens():
+ yield fname
+ yield s.path_prenormaliser(fname)
+ yield os.path.realpath(fname)
+
+ for fn in fngens():
+ if s.thing_ought_packaged(fngen):
+ s.src_file_packaged(fname, infol)
+ return
+
+ s.src_indir(fname, infol)
+
+ def src_argv0(s, program, infol):
+ s.src_file(s, program, infol)
+
+ def src_syspath(s, fname, infol):
+ s.src_indir(fname, infol)