1 |
commit: 441fcf253606e593a7e3b253278a75cfd1ae9d1c |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Mon Sep 2 08:43:24 2013 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Mon Sep 2 08:43:24 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=441fcf25 |
7 |
|
8 |
distroot, file collisions: rename distfiles |
9 |
|
10 |
--- |
11 |
roverlay/overlay/pkgdir/distroot/distroot.py | 31 ++++++++++++++-------------- |
12 |
1 file changed, 16 insertions(+), 15 deletions(-) |
13 |
|
14 |
diff --git a/roverlay/overlay/pkgdir/distroot/distroot.py b/roverlay/overlay/pkgdir/distroot/distroot.py |
15 |
index 2ec43ec..c866bea 100644 |
16 |
--- a/roverlay/overlay/pkgdir/distroot/distroot.py |
17 |
+++ b/roverlay/overlay/pkgdir/distroot/distroot.py |
18 |
@@ -612,22 +612,23 @@ class PersistentDistroot ( DistrootBase ): |
19 |
if self.distmap.get_distfile_slot ( package_dir, package_info ): |
20 |
return True |
21 |
else: |
22 |
- # TODO/COULDFIX: |
23 |
- # resolve conflict instead of simply ignoring files |
24 |
- # (-> e.g. rename files) |
25 |
- # |
26 |
+ distfile = package_info.get_src_uri_dest().rpartition ( os.sep ) |
27 |
+ rename_prefix = package_info ['repo_name'].lower() + '_' |
28 |
|
29 |
- # *** DEBUG CODE *** |
30 |
- vartable = package_info.create_vartable ( package_dir.get_upper().name ) |
31 |
- print ( |
32 |
- "dropping {P} from {CATEGORY}/{PN}".format ( **vartable ) |
33 |
- ) |
34 |
- self.logger.info ( |
35 |
- "dropping {!r}: distmap file collision.".format ( package_info ) |
36 |
- ) |
37 |
- # *** END DEBUG CODE *** |
38 |
- |
39 |
- return False |
40 |
+ if distfile[2][:len(rename_prefix)] == rename_prefix: |
41 |
+ # already prefixed with the repo name |
42 |
+ return False |
43 |
+ else: |
44 |
+ package_info.update ( |
45 |
+ src_uri_dest=( |
46 |
+ distfile[0] + distfile[1] + rename_prefix + distfile[2] |
47 |
+ ) |
48 |
+ ) |
49 |
+ #return self.distmap.get_distfile_slot(...) |
50 |
+ if self.distmap.get_distfile_slot ( package_dir, package_info ): |
51 |
+ return True |
52 |
+ else: |
53 |
+ return False |
54 |
# --- end of handle_file_collision (...) --- |
55 |
|
56 |
# --- end of PersistentDistroot --- |