b557378c0d
Copy from devel:languages:python:Factory/python based on submit request 30832 from user matejcik OBS-URL: https://build.opensuse.org/request/show/30832 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python?expand=0&rev=42
85 lines
3.9 KiB
Diff
85 lines
3.9 KiB
Diff
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'" %
|