* [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