public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/overlay/pkgdir/
Date: Wed, 10 Jul 2013 15:10:42 +0000 (UTC)	[thread overview]
Message-ID: <1373465378.45b5e9f8e6aac6d6729e96b46849f7bf4e9c9f56.dywi@gentoo> (raw)
Message-ID: <20130710151042.lMzHurV6tn4jOWxMVLOsEHisNDqeicIN0lGmJ93iZlY@z> (raw)

commit:     45b5e9f8e6aac6d6729e96b46849f7bf4e9c9f56
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Wed Jul 10 14:09:38 2013 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Wed Jul 10 14:09:38 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=45b5e9f8

pkgdir_base: fixup

* unused variables removed: HASHES, SUPPRESS_EXCEPTIONS
* added DOEBUILD_FETCH to set the doebuild fetch function (class-wide)
* get_distdir(), fetch_src_for_ebuild() added

---
 roverlay/overlay/pkgdir/packagedir_base.py | 39 +++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 14 deletions(-)

diff --git a/roverlay/overlay/pkgdir/packagedir_base.py b/roverlay/overlay/pkgdir/packagedir_base.py
index 63adfb4..53ebc42 100644
--- a/roverlay/overlay/pkgdir/packagedir_base.py
+++ b/roverlay/overlay/pkgdir/packagedir_base.py
@@ -1,6 +1,6 @@
 # R overlay -- overlay package, package directory
 # -*- coding: utf-8 -*-
-# Copyright (C) 2012 André Erdmann <dywi@mailerd.de>
+# Copyright (C) 2012, 2013 André Erdmann <dywi@mailerd.de>
 # Distributed under the terms of the GNU General Public License;
 # either version 2 of the License, or (at your option) any later version.
 
@@ -37,6 +37,8 @@ import roverlay.overlay.additionsdir
 import roverlay.overlay.pkgdir.distroot.static
 import roverlay.overlay.pkgdir.metadata
 
+# TODO: proper reading of $SRC_URI when importing (or scanning) ebuilds
+#        This would make manifest creation being more controlled
 
 class PackageDirBase ( object ):
    """The PackageDir base class that implements most functionality except
@@ -44,10 +46,9 @@ class PackageDirBase ( object ):
 
    #DISTROOT =
    #DISTMAP  =
-   EBUILD_SUFFIX       = '.ebuild'
    #FETCHENV =
-   #HASHES   =
-   SUPPRESS_EXCEPTIONS = True
+
+   EBUILD_SUFFIX  = '.ebuild'
 
    # MANIFEST_THREADSAFE (tri-state)
    # * None  -- unknown (e.g. write_manifest() not implemented)
@@ -56,6 +57,12 @@ class PackageDirBase ( object ):
    #
    MANIFEST_THREADSAFE = None
 
+   # DOEBUILD_FETCH
+   #  doebuild function that fetches $SRC_URI
+   #  can be overridden by subclasses if e.g. on-the-fly manifest creation
+   #  is required, too
+   DOEBUILD_FETCH = roverlay.tools.ebuild.doebuild_fetch
+
    @classmethod
    def init_base_cls ( cls ):
       # env for calling "ebuild <ebuild file> fetch"
@@ -66,9 +73,6 @@ class PackageDirBase ( object ):
 
       cls.DISTROOT = roverlay.overlay.pkgdir.distroot.static.get_configured()
       cls.DISTMAP  = roverlay.recipe.distmap.access()
-      # FIXME/TODO: config
-      #cls.HASHES = frozenset ({ 'sha256', 'sha512', 'whirlpool', })
-      cls.HASHES = frozenset ({ 'sha256', })
       cls.FETCHENV = fetch_env
    # --- end of init_cls (...) ---
 
@@ -581,6 +585,18 @@ class PackageDirBase ( object ):
       return success
    # --- end of write (...) ---
 
+   def get_distdir ( self ):
+      return self.DISTROOT.get_distdir ( self.name )
+   # --- end of get_distdir (...) ---
+
+   def fetch_src_for_ebuild ( self, efile ):
+      return self.DOEBUILD_FETCH (
+         ebuild_file = efile,
+         logger      = self.logger,
+         env         = self.FETCHENV.get_env ( self.get_distdir().get_root() )
+      )
+   # --- end of fetch_src_for_ebuild (...) ---
+
    def import_ebuilds ( self, eview, overwrite, nosync=False ):
       """Imports ebuilds from an additions dir into this package dir.
 
@@ -625,12 +641,7 @@ class PackageDirBase ( object ):
             self._need_manifest = True
 
             # fetch SRC_URI using ebuild(1)
-            if not nosync and not roverlay.tools.ebuild.doebuild_fetch (
-               efile_dest, self.logger,
-               self.FETCHENV.get_env (
-                  self.DISTROOT.get_distdir ( self.name ).get_root()
-               )
-            ):
+            if not nosync and not self.fetch_src_for_ebuild ( efile_dest ):
                raise Exception ( "doebuild_fetch() failed." )
 
             # imported ebuilds cannot be used for generating metadata.xml
@@ -810,7 +821,6 @@ class PackageDirBase ( object ):
 
             # generate hashes here (benefit from threading)
             # FIXME/TODO: ^ actually faster?
-            ##p_info.make_hashes ( self.HASHES )
             p_info.make_distmap_hash()
 
             self._need_manifest = True
@@ -884,6 +894,7 @@ class PackageDirBase ( object ):
             return True
          else:
             return False
+
       elif (
          hasattr ( self, '_write_import_manifest' )
          and self._write_import_manifest()


             reply	other threads:[~2013-07-10 15:10 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-10 16:16 André Erdmann [this message]
2013-07-10 15:10 ` [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/overlay/pkgdir/ André Erdmann
  -- strict thread matches above, loose matches on Subject: below --
2016-02-18 16:33 [gentoo-commits] proj/R_overlay:master " André Erdmann
2015-01-26 17:41 André Erdmann
2014-08-23 19:03 André Erdmann
2014-07-29 18:29 ` André Erdmann
2014-07-18 16:20 André Erdmann
2014-07-18  2:28 [gentoo-commits] proj/R_overlay:wip/addition_control " André Erdmann
2014-07-18 16:20 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-09-17 13:49 André Erdmann
2013-09-03 15:51 André Erdmann
2013-08-30 15:28 André Erdmann
2013-08-29 12:36 André Erdmann
2013-08-29 12:36 André Erdmann
2013-08-29 12:36 André Erdmann
2013-08-28 15:54 André Erdmann
2013-08-28  9:38 André Erdmann
2013-08-07 16:10 André Erdmann
2013-08-06 16:02 André Erdmann
2013-07-10 16:16 André Erdmann
2013-07-10 16:16 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-10 16:16 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-10 16:16 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-10 16:16 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-06-13 16:34 André Erdmann
2013-04-25 16:44 André Erdmann
2013-02-09 20:45 André Erdmann
2013-02-05 20:39 André Erdmann
2013-01-28 23:54 André Erdmann
2013-01-28 23:54 André Erdmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1373465378.45b5e9f8e6aac6d6729e96b46849f7bf4e9c9f56.dywi@gentoo \
    --to=dywi@mailerd.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox