summaryrefslogtreecommitdiffstats
path: root/meta/classes/update-alternatives.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/update-alternatives.bbclass')
-rw-r--r--meta/classes/update-alternatives.bbclass13
1 files changed, 6 insertions, 7 deletions
diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass
index ee66379933..1362274d4d 100644
--- a/meta/classes/update-alternatives.bbclass
+++ b/meta/classes/update-alternatives.bbclass
@@ -148,7 +148,7 @@ def apply_update_alternative_renames(d):
148 pkgdest = d.getVar('PKGD') 148 pkgdest = d.getVar('PKGD')
149 for pkg in (d.getVar('PACKAGES') or "").split(): 149 for pkg in (d.getVar('PACKAGES') or "").split():
150 # If the src == dest, we know we need to rename the dest by appending ${BPN} 150 # If the src == dest, we know we need to rename the dest by appending ${BPN}
151 link_rename = {} 151 link_rename = []
152 for alt_name in (d.getVar('ALTERNATIVE_%s' % pkg) or "").split(): 152 for alt_name in (d.getVar('ALTERNATIVE_%s' % pkg) or "").split():
153 alt_link = d.getVarFlag('ALTERNATIVE_LINK_NAME', alt_name) 153 alt_link = d.getVarFlag('ALTERNATIVE_LINK_NAME', alt_name)
154 if not alt_link: 154 if not alt_link:
@@ -174,7 +174,7 @@ def apply_update_alternative_renames(d):
174 elif os.path.lexists(src): 174 elif os.path.lexists(src):
175 if os.path.islink(src): 175 if os.path.islink(src):
176 # Delay rename of links 176 # Delay rename of links
177 link_rename[alt_target] = alt_target_rename 177 link_rename.append((alt_target, alt_target_rename))
178 else: 178 else:
179 bb.note('%s: Rename %s -> %s' % (pn, alt_target, alt_target_rename)) 179 bb.note('%s: Rename %s -> %s' % (pn, alt_target, alt_target_rename))
180 os.rename(src, dest) 180 os.rename(src, dest)
@@ -185,22 +185,21 @@ def apply_update_alternative_renames(d):
185 185
186 # Process delayed link names 186 # Process delayed link names
187 # Do these after other renames so we can correct broken links 187 # Do these after other renames so we can correct broken links
188 for alt_target in link_rename: 188 for (alt_target, alt_target_rename) in link_rename:
189 src = '%s/%s' % (pkgdest, alt_target) 189 src = '%s/%s' % (pkgdest, alt_target)
190 dest = '%s/%s' % (pkgdest, link_rename[alt_target]) 190 dest = '%s/%s' % (pkgdest, alt_target_rename)
191 link = os.readlink(src)
192 link_target = oe.path.realpath(src, pkgdest, True) 191 link_target = oe.path.realpath(src, pkgdest, True)
193 192
194 if os.path.lexists(link_target): 193 if os.path.lexists(link_target):
195 # Ok, the link_target exists, we can rename 194 # Ok, the link_target exists, we can rename
196 bb.note('%s: Rename (link) %s -> %s' % (pn, alt_target, link_rename[alt_target])) 195 bb.note('%s: Rename (link) %s -> %s' % (pn, alt_target, alt_target_rename))
197 os.rename(src, dest) 196 os.rename(src, dest)
198 else: 197 else:
199 # Try to resolve the broken link to link.${BPN} 198 # Try to resolve the broken link to link.${BPN}
200 link_maybe = '%s.%s' % (os.readlink(src), pn) 199 link_maybe = '%s.%s' % (os.readlink(src), pn)
201 if os.path.lexists(os.path.join(os.path.dirname(src), link_maybe)): 200 if os.path.lexists(os.path.join(os.path.dirname(src), link_maybe)):
202 # Ok, the renamed link target exists.. create a new link, and remove the original 201 # Ok, the renamed link target exists.. create a new link, and remove the original
203 bb.note('%s: Creating new link %s -> %s' % (pn, link_rename[alt_target], link_maybe)) 202 bb.note('%s: Creating new link %s -> %s' % (pn, alt_target_rename, link_maybe))
204 os.symlink(link_maybe, dest) 203 os.symlink(link_maybe, dest)
205 os.unlink(src) 204 os.unlink(src)
206 else: 205 else: