From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 10C591381F3 for ; Thu, 11 Jul 2013 08:49:35 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 96834E0A03; Thu, 11 Jul 2013 08:49:30 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 12312E0A03 for ; Thu, 11 Jul 2013 08:49:29 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id EA9C633E9DF for ; Thu, 11 Jul 2013 08:49:28 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 8E326E468F for ; Thu, 11 Jul 2013 08:49:27 +0000 (UTC) From: "André Erdmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "André Erdmann" Message-ID: <1373531830.ab7750a06b411f219e5de1c444e928755903a880.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/simpledeprule/, roverlay/overlay/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/depres/simpledeprule/abstractrules.py roverlay/overlay/category.py X-VCS-Directories: roverlay/depres/simpledeprule/ roverlay/overlay/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: ab7750a06b411f219e5de1c444e928755903a880 X-VCS-Branch: master Date: Thu, 11 Jul 2013 08:49:27 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 6f2bfec5-34b3-4b5a-8ba1-d7b00d1e33e1 X-Archives-Hash: ee4b607c7cc5dd1d204ae3014e78e784 Message-ID: <20130711084927.4JH_v8YmuPn2P-Lk6gXnNlqxXMRts0pQ9Znw3eAJgYA@z> commit: ab7750a06b411f219e5de1c444e928755903a880 Author: André Erdmann mailerd de> AuthorDate: Thu Jul 11 08:37:10 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Thu Jul 11 08:37:10 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=ab7750a0 fix dot remapping for dynamic selfdeps This commit fixes a bug in the dynamic selfdep pool concerning dot chars '.' in dependency strings (which are replaced by '_' in ebuild names). Basically, the dynamic selfdep pool did not call .done_reading() after reloading its rules which resulted in not having dot-remapped aliases available for dep resolution. In addition to fixing this (mis-)behavior, real package names (provided by packageinfo instances) are now used when available (instead of replacing all '_' chars with '.'). --- roverlay/depres/simpledeprule/abstractrules.py | 24 +++++++++++++++++++----- roverlay/overlay/category.py | 15 +++++++++++---- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/roverlay/depres/simpledeprule/abstractrules.py b/roverlay/depres/simpledeprule/abstractrules.py index b80eb00..a94d2f3 100644 --- a/roverlay/depres/simpledeprule/abstractrules.py +++ b/roverlay/depres/simpledeprule/abstractrules.py @@ -20,7 +20,8 @@ class SimpleRule ( deprule.DependencyRule ): def __init__ ( self, dep_str=None, priority=50, resolving_package=None, - is_selfdep=0, logger_name='simple_rule' + is_selfdep=0, logger_name='simple_rule', + selfdep_package_names=None, finalize=False, ): """Initializes a SimpleIgnoreDependencyRule. @@ -40,11 +41,24 @@ class SimpleRule ( deprule.DependencyRule ): self.dep_alias.append ( dep_str ) if self.is_selfdep: - # add the actual package name (replace '_' by '.') - # to self.dep_alias - actual_name = dep_str.replace ( '_', '.' ) - if actual_name != dep_str: + # add the actual package name to self.dep_alias + # (replace '_' by '.' or use selfdep_package_names) + # + # + # no need to check for duplicates, they get removed + # in done_reading anyway + + if selfdep_package_names: + for alias in selfdep_package_names: + self.dep_alias.append ( alias ) + ##elif selfdep_package_names is False: ignore + else: + actual_name = dep_str.replace ( '_', '.' ) self.dep_alias.append ( dep_str ) + # -- end if dep_str + + if finalize: + self.done_reading() # --- end of __init__ (...) --- def done_reading ( self ): diff --git a/roverlay/overlay/category.py b/roverlay/overlay/category.py index 8038141..330058c 100644 --- a/roverlay/overlay/category.py +++ b/roverlay/overlay/category.py @@ -164,11 +164,18 @@ class Category ( object ): for name, subdir in self._subdirs.items(): if not subdir.empty(): yield dict ( - dep_str = name, - resolving_package = ( self.name + "/" + name ), - is_selfdep = 2 if is_default_category else 1, + dep_str = name, + resolving_package = ( self.name + "/" + name ), + is_selfdep = 2 if is_default_category else 1, # prefer packages from the default category (really?) - priority = 80 if is_default_category else 90, + priority = 80 if is_default_category else 90, + finalize = True, + selfdep_package_names = filter ( + None, ( + p.get ( 'package_name', do_fallback=True ) + for p in subdir.iter_package_info() + ) + ), ) else: for name, subdir in self._subdirs.items():