Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:lafenghu
python
python-distutils-rpm-8.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File python-distutils-rpm-8.patch of Package python
Index: Python-2.6.2/Lib/distutils/command/install.py =================================================================== --- Python-2.6.2.orig/Lib/distutils/command/install.py +++ Python-2.6.2/Lib/distutils/command/install.py @@ -168,6 +168,8 @@ class install (Command): ('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', 'user'] @@ -243,6 +245,7 @@ class install (Command): #self.install_info = None self.record = None + self.record_rpm = None # -- Option finalizing methods ------------------------------------- @@ -592,12 +595,61 @@ class install (Command): 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 = [] + # directories to reject: + rejectdirs = [ + '/etc', + '/', + '', + self.prefix, + self.exec_prefix, + self.install_base, + self.install_platbase, + self.install_purelib, + self.install_platlib, + self.install_headers[:len(self.install_headers) - len(self.distribution.get_name()) - 1], + self.install_libbase, + self.install_scripts, + self.install_data, + os.path.join(self.install_data, 'share'), + os.path.join(self.install_data, 'share', 'doc'), + ] + # directories whose childs reject: + rejectdirs2 = [ + os.path.join(self.install_data, 'share', 'man'), + ] + # directories whose grandsons reject: + rejectdirs3 = [ + os.path.join(self.install_data, 'share', 'man'), + os.path.join(self.install_data, 'share', 'locale'), + ] + for counter in xrange(len(rejectdirs)): + if len(rejectdirs[counter]) > root_len: + rejectdirs[counter] = rejectdirs[counter][root_len:] + for counter in xrange(len(rejectdirs2)): + if len(rejectdirs2[counter]) > root_len: + rejectdirs2[counter] = rejectdirs2[counter][root_len:] + for counter in xrange(len(rejectdirs3)): + if len(rejectdirs3[counter]) > root_len: + rejectdirs3[counter] = rejectdirs3[counter][root_len:] + for counter in xrange(len(outputs)): + directory = os.path.dirname(outputs[counter]) + while directory not in rejectdirs and \ + os.path.dirname(directory) not in rejectdirs2 and \ + os.path.dirname(os.path.dirname(directory)) not in rejectdirs3: + 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'" %
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor