Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] @sets and @profile does not work when ROOT=PORTAGE_CONFIGROOT=/my/new/root
Date: Thu, 22 Oct 2015 19:25:31
Message-Id: 56293823.8080705@gentoo.org
In Reply to: Re: [gentoo-portage-dev] @sets and @profile does not work when ROOT=PORTAGE_CONFIGROOT=/my/new/root by Joakim Tjernlund
1 On 10/22/2015 12:16 PM, Joakim Tjernlund wrote:
2 > On Thu, 2015-10-22 at 11:54 -0700, Zac Medico wrote:
3 >> On 10/22/2015 11:29 AM, Joakim Tjernlund wrote:
4 >>> On Thu, 2015-10-22 at 08:54 -0700, Zac Medico wrote:
5 >>>> On 10/22/2015 12:05 AM, Joakim Tjernlund wrote:
6 >>>>> I don't use world_sets, I have in my profile(/my/new/root/usr/local/portage/tmv3-target-overlay):
7 >>>>> # > cat sets.conf
8 >>>>> [CUSFPv3 sets]
9 >>>>> class = portage.sets.files.StaticFileSet
10 >>>>> multiset = true
11 >>>>> directory = ${repository:tmv3-target-overlay}/sets/
12 >>>>>
13 >>>>> [world]
14 >>>>> class = portage.sets.base.DummyPackageSet
15 >>>>> packages = @cusfpv3 @profile @selected @system
16 >>>>>
17 >>>>> and in sets/:
18 >>>>> # > cat sets/cusfpv3
19 >>>>> net-ftp/ftp
20 >>>>> net-ftp/tftp-hpa
21 >>>>> net-ftp/vsftpd
22 >>>>> ....
23 >>>>>
24 >>>>> and now it hits me, this line:
25 >>>>> directory = ${repository:tmv3-target-overlay}/sets/
26 >>>>> does it always refer too ROOT=/ ?
27 >>>>
28 >>>> You need to use %(ROOT)s${repository:tmv3-target-overlay}/sets to
29 >>>> substitute $ROOT into the set configuration. For example, the default
30 >>>> set configuration located at /usr/share/portage/config/sets/portage.conf
31 >>>> does something similar with %(PORTAGE_CONFIGROOT)s.
32 >>>
33 >>> Nice! I am a bit puzzled over the trailing s in ..)s, is that a typo? if not
34 >>> what does it mean?
35 >>
36 >> The trailing s is required. It's python configparser interpolation syntax:
37 >>
38 >> https://docs.python.org/3/library/configparser.html#interpolation-of-values
39 >>
40 >>> Can I use %(PORTAGE_CONFIGROOT) in repos.conf too? or is it not needed?
41 >>
42 >> Yes you can use it (but you need the trailing s). It's needed for any
43 >> absolute paths that refer to /etc/portage.
44 >
45 > hmm, not /etc/portage but /usr/portage:
46 > [gentoo]
47 > location = %(PORTAGE_CONFIGROOT)s/usr/portage
48 >
49 > but then portage throws:
50 > emerge -aNDuv world
51 > !!! Error while reading repo config file: Bad value substitution:
52 > section: [gentoo]
53 > option : location
54 > key : portage_configroot
55 > rawval : /usr/portage
56 >
57 > !!! Unable to parse profile: '/etc/portage/make.profile'
58 > !!! ParseError: Parent 'gentoo:default/linux/powerpc/ppc32/13.0' not found: '/usr/local/portage/tmv3-target
59 > -overlay/profiles/cusfpv3/parent'
60 >
61
62 Oh, repos.conf does not populate those variable, but we can easily add
63 support for it.
64 --
65 Thanks,
66 Zac

Replies

Subject Author
Re: [gentoo-portage-dev] @sets and @profile does not work when ROOT=PORTAGE_CONFIGROOT=/my/new/root Joakim Tjernlund <joakim.tjernlund@×××××××××.se>