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