public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/R_overlay:master commit in: roverlay/overlay/pkgdir/distroot/, roverlay/overlay/, roverlay/overlay/pkgdir/
@ 2013-09-04  9:23 André Erdmann
  0 siblings, 0 replies; only message in thread
From: André Erdmann @ 2013-09-04  9:23 UTC (permalink / raw
  To: gentoo-commits

commit:     e562dd51a6315a9c164cbda8513b19af0c2cb705
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Wed Sep  4 09:22:03 2013 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Wed Sep  4 09:22:03 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=e562dd51

overlay,distroot: sync_distmap() if required

Call sync_distmap[_if_required]() after importing ebuilds if an ebuild's SRC_URI
could not be parsed.

---
 roverlay/overlay/pkgdir/distroot/distroot.py | 15 ++++++++++++++-
 roverlay/overlay/pkgdir/packagedir_base.py   |  5 +----
 roverlay/overlay/root.py                     |  9 ++++++++-
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/roverlay/overlay/pkgdir/distroot/distroot.py b/roverlay/overlay/pkgdir/distroot/distroot.py
index 9be7c90..b7ba737 100644
--- a/roverlay/overlay/pkgdir/distroot/distroot.py
+++ b/roverlay/overlay/pkgdir/distroot/distroot.py
@@ -55,6 +55,8 @@ class DistrootBase ( object ):
       # or use hasattr ( self, '_default_distdir' )
       self._flat  = flat
 
+      self.distmap            = None
+      self._need_distmap_sync = None
       self._set_distmap ( distmap )
 
       if flat:
@@ -74,7 +76,8 @@ class DistrootBase ( object ):
    # --- end of __init__ (...) ---
 
    def _set_distmap ( self, distmap ):
-      self.distmap = distmap
+      self.distmap            = distmap
+      self._need_distmap_sync = False
    # --- end of _set_distmap (...) ---
 
    def _atexit_run ( self ):
@@ -364,6 +367,16 @@ class DistrootBase ( object ):
             self.distmap.add_dummy_entry ( relpath, hashdict=hashdict )
    # --- end of sync_distmap (...) ---
 
+   def sync_distmap_if_required ( self ):
+      if self._need_distmap_sync:
+         self.sync_distmap()
+         self._need_distmap_sync = False
+   # --- end of sync_distmap_if_required (...) ---
+
+   def need_distmap_sync ( self ):
+      self._need_distmap_sync = True
+   # --- end of need_distmap_sync (...) ---
+
    def check_integrity ( self ):
       """Verifies (and regenerates) the distmap:
 

diff --git a/roverlay/overlay/pkgdir/packagedir_base.py b/roverlay/overlay/pkgdir/packagedir_base.py
index 3948d4c..36ae5f7 100644
--- a/roverlay/overlay/pkgdir/packagedir_base.py
+++ b/roverlay/overlay/pkgdir/packagedir_base.py
@@ -817,10 +817,7 @@ class PackageDirBase ( roverlay.overlay.base.OverlayObject ):
             ignore_unparseable=True, yield_unparseable=True
          ):
             if distfile is None:
-               # need distmap sync
-               raise Exception (
-                  "TODO/FIXME: want distmap sync after import."
-               )
+               self.DISTROOT.need_distmap_sync()
             else:
                self.DISTROOT.set_distfile_owner ( self.get_ref(), distfile )
          # -- end for

diff --git a/roverlay/overlay/root.py b/roverlay/overlay/root.py
index c6b205e..b3be5b3 100644
--- a/roverlay/overlay/root.py
+++ b/roverlay/overlay/root.py
@@ -566,6 +566,10 @@ class Overlay ( roverlay.overlay.base.OverlayObject ):
          )
    # --- end of _write_rsuggests_use_desc (...) ---
 
+   def access_distroot ( self ):
+      return roverlay.overlay.pkgdir.distroot.static.access()
+   # --- end of access_distroot (...) ---
+
    def add ( self, package_info, allow_postpone=False ):
       """Adds a package to this overlay (into its default category).
 
@@ -719,6 +723,9 @@ class Overlay ( roverlay.overlay.base.OverlayObject ):
          self._get_category ( catview.name ).import_ebuilds (
             catview, overwrite=overwrite, nosync=nosync
          )
+
+      # assumption: distroot exists
+      self.access_distroot().sync_distmap_if_required()
    # --- end of import_ebuilds (...) ---
 
    def iter_package_info ( self ):
@@ -858,7 +865,7 @@ class Overlay ( roverlay.overlay.base.OverlayObject ):
             )
 
          # assumption: distroot exists
-         roverlay.overlay.pkgdir.distroot.static.access().finalize()
+         self.access_distroot().finalize()
       else:
          # FIXME debug print
          print (


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-09-04  9:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-04  9:23 [gentoo-commits] proj/R_overlay:master commit in: roverlay/overlay/pkgdir/distroot/, roverlay/overlay/, roverlay/overlay/pkgdir/ André Erdmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox