--- Python-2.4c1.orig/Lib/distutils/command/install.py 2004-11-23 12:03:25.394124018 +0100 +++ Python-2.4c1/Lib/distutils/command/install.py 2004-11-23 12:29:28.270687563 +0100 @@ -135,6 +135,8 @@ ('record=', None, "filename in which to record list of installed files"), + ('record-rpm=', None, + "filename in which to record list of installed files and directories suitable as filelist for rpm"), ] boolean_options = ['compile', 'force', 'skip-build'] @@ -207,6 +209,7 @@ #self.install_info = None self.record = None + self.record_rpm = None # -- Option finalizing methods ------------------------------------- @@ -508,12 +511,38 @@ self.create_path_file() # write list of installed files, if requested. - if self.record: + if self.record or self.record_rpm: outputs = self.get_outputs() if self.root: # strip any package prefix root_len = len(self.root) for counter in xrange(len(outputs)): outputs[counter] = outputs[counter][root_len:] + if self.record_rpm: # add directories + self.record = self.record_rpm + dirs = [] + rejectdirs = [ + self.prefix, + self.exec_prefix, + self.install_base, + self.install_platbase, + self.install_purelib, + self.install_platlib, + self.install_headers, + self.install_lib, + self.install_scripts, + self.install_data, + ] + for counter in xrange(len(rejectdirs)): + if len(rejectdirs[counter]) > root_len: + rejectdirs[counter] = rejectdirs[counter][root_len:] + for counter in xrange(len(outputs)): + directory = os.path.dirname(outputs[counter]) + while directory not in rejectdirs: + dirname = '%dir ' + directory + if dirname not in dirs: + dirs.append(dirname) + directory = os.path.dirname(directory) + outputs += dirs self.execute(write_file, (self.record, outputs), "writing list of installed files to '%s'" %