All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Use shutil.move when os.rename fails
@ 2021-03-29 15:14 devendra.tewari
  2021-03-29 15:21 ` [OE-core] " Bruce Ashfield
  2021-03-29 20:38 ` Richard Purdie
  0 siblings, 2 replies; 34+ messages in thread
From: devendra.tewari @ 2021-03-29 15:14 UTC (permalink / raw)
  To: openembedded-core; +Cc: Devendra Tewari

---
 meta/classes/sstate.bbclass | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index f579168162..f94aa96d70 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -384,6 +384,7 @@ def sstate_installpkg(ss, d):
 def sstate_installpkgdir(ss, d):
     import oe.path
     import subprocess
+    import shutil
 
     sstateinst = d.getVar("SSTATE_INSTDIR")
     d.setVar('SSTATE_FIXMEDIR', ss['fixmedir'])
@@ -401,7 +402,11 @@ def sstate_installpkgdir(ss, d):
 
     for state in ss['dirs']:
         prepdir(state[1])
-        os.rename(sstateinst + state[0], state[1])
+        try:
+            os.rename(sstateinst + state[0], state[1])
+            break
+        except OSError:
+            shutil.move(sstateinst + state[0], state[1])
     sstate_install(ss, d)
 
     for plain in ss['plaindirs']:
@@ -413,7 +418,11 @@ def sstate_installpkgdir(ss, d):
         dest = plain
         bb.utils.mkdirhier(src)
         prepdir(dest)
-        os.rename(src, dest)
+        try:
+            os.rename(src, dest)
+            break
+        except OSError:
+            shutil.move(src, dest)
 
     return True
 
@@ -638,6 +647,7 @@ python sstate_hardcode_path () {
 
 def sstate_package(ss, d):
     import oe.path
+    import shutil
 
     tmpdir = d.getVar('TMPDIR')
 
@@ -664,7 +674,11 @@ def sstate_package(ss, d):
                     continue
                 bb.error("sstate found an absolute path symlink %s pointing at %s. Please replace this with a relative link." % (srcpath, link))
         bb.debug(2, "Preparing tree %s for packaging at %s" % (state[1], sstatebuild + state[0]))
-        os.rename(state[1], sstatebuild + state[0])
+        try:
+            os.rename(state[1], sstatebuild + state[0])
+            break
+        except OSError:
+            shutil.move(state[1], sstatebuild + state[0])
 
     workdir = d.getVar('WORKDIR')
     sharedworkdir = os.path.join(d.getVar('TMPDIR'), "work-shared")
@@ -674,7 +688,11 @@ def sstate_package(ss, d):
             pdir = plain.replace(sharedworkdir, sstatebuild)
         bb.utils.mkdirhier(plain)
         bb.utils.mkdirhier(pdir)
-        os.rename(plain, pdir)
+        try:
+            os.rename(plain, pdir)
+            break
+        except OSError:
+            shutil.move(plain, pdir)
 
     d.setVar('SSTATE_BUILDDIR', sstatebuild)
     d.setVar('SSTATE_INSTDIR', sstatebuild)
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2022-08-22 12:25 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-29 15:14 [PATCH] Use shutil.move when os.rename fails devendra.tewari
2021-03-29 15:21 ` [OE-core] " Bruce Ashfield
2021-03-29 15:23   ` Konrad Weihmann
2021-03-29 15:35     ` Devendra Tewari
2021-03-29 15:37       ` Devendra Tewari
2021-03-30 21:59         ` Denys Dmytriyenko
2021-03-30 22:38           ` Devendra Tewari
2021-04-01 19:14             ` Devendra Tewari
2021-03-29 20:38 ` Richard Purdie
2021-03-29 22:45   ` Devendra Tewari
2021-03-29 23:00     ` Andre McCurdy
2021-03-29 23:07       ` Devendra Tewari
2021-03-29 23:10         ` Andre McCurdy
2021-03-29 23:13           ` Devendra Tewari
2021-03-30 10:16             ` Devendra Tewari
2021-03-30 11:10       ` Richard Purdie
2021-03-30 11:55         ` Devendra Tewari
2021-04-19 18:43           ` Devendra Tewari
2021-04-21  5:21             ` Khem Raj
2021-04-21 14:43               ` Devendra Tewari
2021-04-21 15:15                 ` Khem Raj
2021-04-21 18:10                 ` Richard Purdie
2021-04-21 19:15                   ` Devendra Tewari
2021-04-21 19:21                     ` Richard Purdie
2021-04-21 21:08                       ` Devendra Tewari
2021-04-27 11:57                         ` Devendra Tewari
2021-04-27 14:59                           ` Devendra Tewari
2021-04-27 22:39                             ` Richard Purdie
2021-04-27 22:44                               ` Devendra Tewari
2021-04-27 22:53                                 ` Devendra Tewari
2021-04-28 10:00                                   ` Devendra Tewari
2021-04-28 21:42                                     ` Richard Purdie
2021-04-28 23:02                                       ` Devendra Tewari
     [not found]                                       ` <90B42906-44DE-4D61-8210-669DC25BBD3F@gmail.com>
2022-08-22 12:25                                         ` Devendra Tewari

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.