From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Rfni8-0003UI-Ov for garchives@archives.gentoo.org; Wed, 28 Dec 2011 07:14:05 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3FEAA21C052; Wed, 28 Dec 2011 07:13:57 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id D382821C052 for ; Wed, 28 Dec 2011 07:13:56 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 235551B400B for ; Wed, 28 Dec 2011 07:13:56 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 7A85780043 for ; Wed, 28 Dec 2011 07:13:55 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/repository/, pym/portage/tests/resolver/, pym/portage/tests/ebuild/ X-VCS-Repository: proj/portage X-VCS-Files: pym/portage/repository/config.py pym/portage/tests/ebuild/test_config.py pym/portage/tests/resolver/ResolverPlayground.py X-VCS-Directories: pym/portage/repository/ pym/portage/tests/resolver/ pym/portage/tests/ebuild/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: e626628a338aa90f9cf321ec89789da72f67a9e0 Date: Wed, 28 Dec 2011 07:13:55 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: d0148cc3-7613-4663-b3a3-7a86b843e890 X-Archives-Hash: d8c4a34319ad1bc28311a6eacfc2914b commit: e626628a338aa90f9cf321ec89789da72f67a9e0 Author: Zac Medico gentoo org> AuthorDate: Wed Dec 28 07:13:41 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Wed Dec 28 07:13:41 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3De626628a RepoConfig.update(): copy more attributes This fixes a regression since commit 10246cd535f909dda8bd05de617c32d2b8a56b4a which caused layout.conf settings such as thin-manifests to be ignored for repositories that had repos.conf settings that did not specify the repository location. In order to trigger this case, ResolverPlayground has been modified to omit the location of each repository in the repos.conf file that it generates. --- pym/portage/repository/config.py | 13 ++++++++++--- pym/portage/tests/ebuild/test_config.py | 2 ++ pym/portage/tests/resolver/ResolverPlayground.py | 10 +++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/pym/portage/repository/config.py b/pym/portage/repository/co= nfig.py index f98b9b7..4bf995e 100644 --- a/pym/portage/repository/config.py +++ b/pym/portage/repository/config.py @@ -199,8 +199,9 @@ class RepoConfig(object): def update(self, new_repo): """Update repository with options in another RepoConfig""" =20 - for k in ('aliases', 'eclass_overrides', 'location', 'masters', - 'name', 'priority', 'sync', 'user_location'): + keys =3D set(self.__slots__) + keys.discard("missing_repo_name") + for k in keys: v =3D getattr(new_repo, k, None) if v is not None: setattr(self, k, v) @@ -324,7 +325,13 @@ class RepoConfigLoader(object): repo_opts =3D default_repo_opts.copy() repo_opts['location'] =3D ov repo =3D RepoConfig(None, repo_opts) - # repos_conf_opts contains options from /etc/portage/repos.conf + # repos_conf_opts may contain options from various places: + # 1) /etc/portage/repos.conf + # 2) $location/metadata/layout.conf if repos.conf specified + # the repo location + # 3) A RepoConfig instance corresponding to a previously + # processed path in the current list of overlays which + # referred to a repository with the same name. repos_conf_opts =3D prepos.get(repo.name) if repos_conf_opts is not None: if repos_conf_opts.aliases is not None: diff --git a/pym/portage/tests/ebuild/test_config.py b/pym/portage/tests/= ebuild/test_config.py index 570cb2b..35694ed 100644 --- a/pym/portage/tests/ebuild/test_config.py +++ b/pym/portage/tests/ebuild/test_config.py @@ -243,6 +243,8 @@ class ConfigTestCase(TestCase): self.assertTrue(len(new_repo_config.masters) > 0, "new_repo has no def= ault master") self.assertEqual(new_repo_config.masters[0].user_location, playground.= portdir, "new_repo default master is not PORTDIR") + self.assertEqual(new_repo_config.thin_manifest, True, + "new_repo_config.thin_manifest !=3D True") =20 new_manifest_file =3D os.path.join(playground.repo_dirs["new_repo"], "= dev-libs", "A", "Manifest") self.assertEqual(os.path.exists(new_manifest_file), False) diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/porta= ge/tests/resolver/ResolverPlayground.py index 201c5c4..140b25d 100644 --- a/pym/portage/tests/resolver/ResolverPlayground.py +++ b/pym/portage/tests/resolver/ResolverPlayground.py @@ -376,17 +376,13 @@ class ResolverPlayground(object): with open(os.path.join(metadata_dir, "metadata.xml"), 'w') as f: f.write(herds_xml) =20 + # Write empty entries for each repository, in order to exercise + # RepoConfigLoader's repos.conf processing. repos_conf_file =3D os.path.join(user_config_dir, "repos.conf") =09 f =3D open(repos_conf_file, "w") - priority =3D 0 for repo in sorted(self.repo_dirs.keys()): f.write("[%s]\n" % repo) - f.write("LOCATION=3D%s\n" % self.repo_dirs[repo]) - if repo =3D=3D "test_repo": - f.write("PRIORITY=3D%s\n" % -1000) - else: - f.write("PRIORITY=3D%s\n" % priority) - priority +=3D 1 + f.write("\n") f.close() =20 for config_file, lines in user_config.items():