Re: [gentoo-dev] PMS EAPI 3 more or less ready

2009-04-20 Thread Tiziano Müller
Am Sonntag, den 12.04.2009, 20:59 +0100 schrieb Ciaran McCreesh:
 I've got the EAPI 3 branch for PMS more or less ready:
 
 http://github.com/ciaranm/pms/tree/eapi-3
 
 The provisional included feature list is everything that was ready
 before the deadline.
Thanks a lot for your work.
Sorry, I was quiet busy the last week with real life.

 
 Before the next Council meeting (ideally a week before, so we've got
 time to get the questions worked out), I'd appreciate it if every
 Council member could go through each item on the list below, check its
 description in PMS (Appendix E has a handy list of links to the
 relevant text, or look for the boxed labels in the margin) and
 provisionally mark it as one of:
 
 * critical: EAPI 3 needs to be held up until this feature is in Portage.
 
 * yes: This feature should be in EAPI 3, but can be dropped if it turns
   out it's going to take ages to get into Portage.
 
 * no: This feature shouldn't be in EAPI 3.
 
 * whatever: You have no strong opinion on whether this feature should
   be in EAPI 3.
 
 * query: You have questions about this feature, or you think parts of
   it need discussion, or you've found a mistake in the PMS draft.
 
 I'll try to address any queries as they come so people can update their
 opinions.
 
 I'd also appreciate any review of wording features from anyone else.
 There are probably still a few holes.
 
 Hopefully we can get a final list decided upon and provisionally
 approved by the next Council meeting, and then as soon as Portage is
 ready to go we can merge everything into PMS proper and get a signed
 approval tag as we did for EAPI 2.
 
 Here's the list:
 
 * PKG-PRETEND
critical.

 * SLOT-OPERATOR-DEPS
critical.

 * USE-DEP-DEFAULTS
critical.

 * DEFINED-PHASES
critical.

 * PROPERTIES
critical.

 * SRC-INSTALL
critical.

 * CONTROLLABLE-COMPRESS
no.

 * DODOC
critical.

 * DOINS
critical.

 * ANY-USE
yes.

 * BANNED-COMMANDS
yes.

 * DOEXAMPLE
whatever.
... with dodoc getting recursive behaviour I guess this is not really
critical. If portage penalizes it's users by compressing those examples,
that's their problem.

 * DOINCLUDE
yes.

 * UNPACK-EXTENSIONS
yes.

 * ECONF-OPTIONS
yes.

 * PKG-INFO
critical.

 * PROFILE-IUSE-INJECTION
yes, but *_IMPLICIT has to be discussed.

 * AA
yes.

 * KV
yes.

 * REPLACE-VERSION-VARS
critical.

 * S-WORKDIR-FALLBACK
yes.

 * UNPACK-IF-COMPRESSED
yes.

 * RDEPEND-DEPEND
critical.

 * DIE-ON-FAILURE
yes.

 * NONFATAL
yes.

 
 Some answers to existing queries that I can remember:
 
 * DEFINED-PHASES and PROPERTIES have to be EAPI linked because of the
   metadata cache.
 
 * ANY-USE is already special cased in the package manager and
   specification. Everywhere that's using it is doing it wrong. It's
   possible to rewrite the dep to mean same thing using an expanded
   form, although it'll still be impossible to use it correctly if you
   do that.
 
 * ECONF-OPTIONS is very unlikely to break custom configure scripts. We
   already pass various weird things through econf, so any configure
   script that dies on unrecognised options is probably going to break
   anyway. No-one's managed to name a configure script that would be
   broken by this change that isn't already not using econf anyway.
... or using econf even if it shouldn't.



signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Re: [gentoo-dev] PMS EAPI 3 more or less ready

2009-04-20 Thread Ulrich Mueller
 On Mon, 20 Apr 2009, Tiziano Müller wrote:

 * CONTROLLABLE-COMPRESS
 no.

Without this we cannot get rid of the prepalldocs calls in the tree.

Ulrich



Re: [gentoo-dev] PROFILE-IUSE-INJECTION implicit things (Was: PMS EAPI 3 more or less ready)

2009-04-20 Thread Ciaran McCreesh
Let's see if we can keep to one thread per item here.

On Mon, 20 Apr 2009 07:14:00 +0200
Tiziano Müller dev-z...@gentoo.org wrote:
  * PROFILE-IUSE-INJECTION
 yes, but *_IMPLICIT has to be discussed.

There are a few suggested use cases for these:

* Avoiding the need for developers to have to explicitly list ARCH in
  IUSE. Without implicits, ARCH will be empty and USE won't contain the
  arch flag name unless IUSE explicitly lists it. Some developers would
  rather not list arch flags explicitly.

* Ditto for things like USERLAND.

* People want to be able to carry on using flags like 'build' that
  wouldn't otherwise work.

And a few related points that people might otherwise miss:

* Listing something in IUSE does not have to mean it will show up in
  package manager output. There are special HIDDEN variables for those.

* Without this whole stricter USE mess, [use(+)] dependencies are
  rather crippled. You can't do [linguas_en(+)] against any existing
  EAPI, for example.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] PROFILE-IUSE-INJECTION implicit things (Was: PMS EAPI 3 more or less ready)

2009-04-20 Thread Tiziano Müller
Am Montag, den 20.04.2009, 13:41 +0100 schrieb Ciaran McCreesh:
 Let's see if we can keep to one thread per item here.
 
 On Mon, 20 Apr 2009 07:14:00 +0200
 Tiziano Müller dev-z...@gentoo.org wrote:
   * PROFILE-IUSE-INJECTION
  yes, but *_IMPLICIT has to be discussed.
 
 There are a few suggested use cases for these:
 
 * Avoiding the need for developers to have to explicitly list ARCH in
   IUSE. Without implicits, ARCH will be empty and USE won't contain the
   arch flag name unless IUSE explicitly lists it. Some developers would
   rather not list arch flags explicitly.

 * Ditto for things like USERLAND.
 
 * People want to be able to carry on using flags like 'build' that
   wouldn't otherwise work.

Why should those USE flags be different than others?

The user should anyway not check the ebuild if he wants to figure out
what USE flags a package supports but rather consult the PM's output
(because USE flags may also come from an eclass), so the argument of
hiding that info from the user is nil (and with USE_EXPAND_HIDDEN
userland and arch USE flags get hidden anyway as pointed out below).
So, with _IMPLICIT we would have some USE flags which don't have to be
added while some will have to be added and in the end devs who use those
vars only occasionally will always have to consult the specs.
Instead I'd prefer to be implicit about it: the use flags you use have
to be given in IUSE. One simple rule to remember...


 
 And a few related points that people might otherwise miss:
 
 * Listing something in IUSE does not have to mean it will show up in
   package manager output. There are special HIDDEN variables for those.
 
 * Without this whole stricter USE mess, [use(+)] dependencies are
   rather crippled. You can't do [linguas_en(+)] against any existing
   EAPI, for example.
 


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Re: [gentoo-dev] PMS EAPI 3 more or less ready

2009-04-20 Thread Mart Raudsepp
On P, 2009-04-12 at 20:59 +0100, Ciaran McCreesh wrote:
 I've got the EAPI 3 branch for PMS more or less ready:
 
 http://github.com/ciaranm/pms/tree/eapi-3
 
 The provisional included feature list is everything that was ready
 before the deadline.
 
 Before the next Council meeting (ideally a week before, so we've got
 time to get the questions worked out), I'd appreciate it if every
 Council member could go through each item on the list below, check its
 description in PMS (Appendix E has a handy list of links to the
 relevant text, or look for the boxed labels in the margin) and
 provisionally mark it as one of:
 
 * critical: EAPI 3 needs to be held up until this feature is in Portage.
 
 * yes: This feature should be in EAPI 3, but can be dropped if it turns
   out it's going to take ages to get into Portage.
 
 * no: This feature shouldn't be in EAPI 3.
 
 * whatever: You have no strong opinion on whether this feature should
   be in EAPI 3.
 
 * query: You have questions about this feature, or you think parts of
   it need discussion, or you've found a mistake in the PMS draft.
 
 I'll try to address any queries as they come so people can update their
 opinions.
 
 I'd also appreciate any review of wording features from anyone else.
 There are probably still a few holes.
 
 Hopefully we can get a final list decided upon and provisionally
 approved by the next Council meeting, and then as soon as Portage is
 ready to go we can merge everything into PMS proper and get a signed
 approval tag as we did for EAPI 2.
 
 Here's the list:
 
 * PKG-PRETEND

critical

 * SLOT-OPERATOR-DEPS

query.
Needs discussion I can't conduct on-list today anymore (middle of night
already) as I need to sit down and think this through more heavily, also
in light of some recent discussion with dev-zero. Will bring to list
ASAP. Mostly relates to syntax considerations.

An outstanding problem to me as a package maintainer is the lack of
means to know which slot the PM actually picked for the package, as some
of my co-maintained packages have no use of := if it can't know which
version was picked to act accordingly in src_configure.

 * USE-DEP-DEFAULTS

critical

 * DEFINED-PHASES

yes. critical for PKG-PRETEND

 * PROPERTIES

yes

 * SRC-INSTALL

query/yes; but the default src_install maybe shouldn't be doing the file
exists and is greater than zero check, because dodoc in portage already
does that. Maybe formalize that and leave that check for dodoc
responsibility and don't bother checking twice?

 * CONTROLLABLE-COMPRESS

yes

 * DODOC

yes

 * DOINS

query. Lacks specification of what correct is in must correctly
handle symlinks when installing recursively, so can't judge.
Yes, I know a mail thread addressed it, but that doesn't count in what
goes into an approved PMS.
I suppose it's mostly understood what it means, but it wouldn't hurt for
a specification to be explicit.
Also, would be interesting to know what sanity checks one would want to
apply in the future for absolute path symlinks in case they do not start
with $EPREFIX (don't honor --prefix)? Just curious for the future on
this one.

 * ANY-USE

no

 * BANNED-COMMANDS

no for dohard
whatever for dosed

dohard works fine now in portage when it technically can. The wording in
section 12.3.3 for dohard should be changed however to not give a
guarantee but a best effort, as if when installed on the _live system_
they end up on a separate partition it is not technically possible.
However a common use case can be to do it in the same directory and it
should work fine then, if PM makes sure the hard link is not lost when
they get potentially copied/moved around between various partition in
$PORTAGE_TMPDIR, $D and $ROOT, which portage does since a few months
now.
This best effort support already needs to exist to handle cases like
dev-util/git provided hard links in $libexec/git-core, so this is just a
function to do the same in ebuilds.

I already wrote about this on 9th April in the Ideas for a (fast)
EAPI=3 thread, but got no replies.


 * DOEXAMPLE

no. perhaps after a query phase might lean more towards whatever

Additionally the PMS draft has a typo:

newinclude 
As above, for doexample. Only in EAPIs listed in table 12.7

newinclude is listed twice; that one should be titled newexample


 * DOINCLUDE

no

 * UNPACK-EXTENSIONS

yes (query), if we are sure we can rely on the xzdec arguments and such
to remain the same once released.

 * ECONF-OPTIONS

query
--disable-dependency-tracking has other implications than it being
allowed to be passed to ./configure or not - such as dependency tracking
being, well, disabled and the affects of that in face of any outside
influences to headers used by it from the system, when compared to the
case when dependency tracking is enabled. Such as when a separate
(possibly parallel) install step kicks in.
Olivier Crête also has an outstanding comment about a maintainer
possibly not wanting that disabled in case of 

Re: [gentoo-portage-dev] Re: does emerge verify arch compatibility when merging a binary package?

2009-04-20 Thread Amit Dor-Shifer
When you say ut checks CHOST/keywording, where are those definitions 
stored for the binary pkg?


I see one instance of CHOST in the 'Packages' index on the BINHOST. Is 
that the variable emerge is comparing against? If not, where is it? the 
tbz itself holds just the binaries.


Manually modifying a/m CHOST to 'ppc'  didn't stop emerge from 
successfully merging a package on an amd64 target (I've removed 
/usr/portage/packages from target before emerging).


Amit

Duncan wrote:

Andrew Gaffney agaff...@gentoo.org posted 49eb3b9f.1050...@gentoo.org,
excerpted below, on  Sun, 19 Apr 2009 09:56:31 -0500:

  

Amit Dor-Shifer wrote:


E.G: would portage block an attempt to install a ppc binary on an
amd64?
  

I believe it checks the CHOST in the binpkg and compares it against the
configured CHOST for the system.



Doesn't it also still check keywording, at least on newer portage (I 
guess it was hard-masking that it didn't used to check for binpkgs, I'm 
not sure about keywording)?  Of course it is possible to deliberately 
confound the keywording check by setting an incorrect ACCEPT_KEYWORDS 
globally or using package.keywords to do so by package.


  


Re: [gentoo-portage-dev] --nodeps faulty behaviour?

2009-04-20 Thread Zac Medico
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Markus Duft wrote:
 Hi!
 
 I have a quick question: is --nodeps supposed to still merge packages in
 the right order?

Yes. The attached patch should fix it. Thanks for reporting.

- --
Thanks,
Zac
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAknsPNIACgkQ/ejvha5XGaN6EQCfUWVR2U+gCrqv60uMzAssbzm0
VxUAnjsah7byJwKRO/FVoZWwr0i4kBmE
=X0E7
-END PGP SIGNATURE-
Index: pym/_emerge/__init__.py
===
--- pym/_emerge/__init__.py (revision 13376)
+++ pym/_emerge/__init__.py (revision 13377)
@@ -7039,6 +7039,13 @@
writemsg(\n, noiselevel=-1)
 
scheduler_graph = self.digraph.copy()
+
+   if '--nodeps' in self.myopts:
+   # Preserve the package order given on the command line.
+   return ([node for node in scheduler_graph \
+   if isinstance(node, Package) \
+   and node.operation == 'merge'], scheduler_graph)
+
mygraph=self.digraph.copy()
# Prune nomerge root nodes if nothing depends on them, since
# otherwise they slow down merge order calculation. Don't remove


nodeps_order.patch.sig
Description: Binary data


Re: [gentoo-portage-dev] --nodeps faulty behaviour?

2009-04-20 Thread Markus Duft
On Mon, 2009-04-20 at 08:35 +0200, Markus Duft wrote:
 Hi!
 
 I have a quick question: is --nodeps supposed to still merge packages in
 the right order?
 
 my specific problem is, that when i do this:
 
 emerge -pv --noreplace --oneshot --nodeps \
   sys-devel/gcc-config \
   sys-devel/gcc \
   libperl perl help2man texinfo \
   =autoconf-2.1* =autoconf-2.6* autoconf-wrapper \
   =automake-1.4* =automake-1.5* =automake-1.6* \
   =automake-1.7* =automake-1.8* automake-wrapper \
   wget
 
 i get this:
 
 These are the packages that would be merged, in order:
 
 [ebuild  N] sys-apps/texinfo-4.12  USE=-nls -static 0 kB
 [ebuild  N] sys-devel/autoconf-2.13  0 kB
 [ebuild  N] sys-devel/autoconf-2.63-r1  USE=(-emacs) 0 kB
 [ebuild  N] sys-devel/automake-1.4_p6  0 kB
 [ebuild  N] sys-devel/automake-1.5  0 kB
 [ebuild  N] sys-devel/automake-1.6.3  0 kB
 [ebuild  N] sys-devel/automake-1.7.9-r1  0 kB
 [ebuild  N] sys-devel/automake-1.8.5-r3  0 kB
 [ebuild  N] net-misc/wget-1.11.4  USE=-debug (-ipv6) -nls -socks5
 -ssl -static 0 kB
 [ebuild  N] sys-devel/gcc-config-1.4.1-r00.1  0 kB
 [ebuild  N] sys-devel/libperl-5.8.8-r2  USE=-berkdb -debug -gdbm
 -ithreads 0 kB
 [ebuild  N] dev-lang/perl-5.8.8-r5  USE=-berkdb -build -debug -doc
 -gdbm -ithreads -perlsuid 0 kB
 [ebuild  N] sys-apps/help2man-1.36.4  USE=-nls 0 kB
 [ebuild  N] sys-devel/autoconf-wrapper-6-r00.1  0 kB
 [ebuild  N] sys-devel/automake-wrapper-3-r1  0 kB
 
 
 but texinfo DEPENDs on help2man - thus it fails to build. as a workaroun
 i split the merges into several ones which preserve dependency order,
 but i feel that portage should do it.. what do you think?
 

oh, damn, sorry; this is not the right portage, was in the wrong
shell :) this is the right one:

Portage 2.2.00.13286-prefix
(!/opt/gentoo/usr/portage/profiles/prefix/windows/interix/5.2/x86,
gcc-4.2.4, unavailable, 5.2 x86)
=
System uname: Interix-5.2-x86-32bit
Timestamp of tree: Thu, 16 Apr 2009 22:02:48 +
app-shells/bash: 3.2_p48-r1
dev-lang/python: 2.5.4-r2, 2.6.1-r1
sys-devel/autoconf:  2.63-r1
sys-devel/automake:  1.9.6-r2, 1.10.2-r00.1
sys-devel/binutils:  2.18-r4
sys-devel/gcc-config: 1.4.1-r00.1
sys-devel/libtool:   2.2.6a
ACCEPT_KEYWORDS=~x86-interix
...

 Administrator opt $ emerge --info
 Portage 2.2.00.13346-prefix (prefix/windows/interix/5.2/x86, gcc-4.2.4,
 unavailable, 5.2 x86)
 =
 System uname: Interix-5.2-x86-32bit
 Timestamp of tree: Thu, 16 Apr 2009 07:36:49 +
 app-shells/bash: 3.2_p48-r1
 dev-lang/python: 2.5.4-r2, 2.6.1-r1
 sys-devel/autoconf:  2.63-r1
 sys-devel/automake:  1.9.6-r2, 1.10.2-r00.1
 sys-devel/binutils:  2.18-r4
 sys-devel/gcc-config: 1.4.1-r00.1
 sys-devel/libtool:   2.2.6a
 ACCEPT_KEYWORDS=~x86-interix
 
 
 Cheers, Markus
 
 




Re: [gentoo-portage-dev] Re: does emerge verify arch compatibility when merging a binary package?

2009-04-20 Thread Zac Medico
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Amit Dor-Shifer wrote:
 When you say ut checks CHOST/keywording, where are those definitions
 stored for the binary pkg?

It's appended to the tail end of the tbz2, in xpak format (see `man
5 xpak`).

 I see one instance of CHOST in the 'Packages' index on the BINHOST. Is
 that the variable emerge is comparing against? If not, where is it? the
 tbz itself holds just the binaries.

Yes, for remote packages, the Package index contains equivalent data
to the actual xpak segments from the remote packages. The CHOST for
individual packages is only shown in cases when it differs from the
CHOST in the header of the Packages file.

 Manually modifying a/m CHOST to 'ppc'  didn't stop emerge from
 successfully merging a package on an amd64 target (I've removed
 /usr/portage/packages from target before emerging).

The CHOST from your local configuration (typically from make.conf or
inherited from your profile) is compared to the CHOST of the binary
package. You can also use ACCEPT_CHOSTS if you want to accept more
than one CHOST (see `man 5 make.conf`).
- --
Thanks,
Zac
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAknsPqIACgkQ/ejvha5XGaNnEgCfVB8ricVhKBQY/S2g1aYLvpkT
L2wAn3CtsAnFwJ0h/mArfdDJk4hMvNBD
=AH2B
-END PGP SIGNATURE-



Re: [gentoo-portage-dev] --nodeps faulty behaviour?

2009-04-20 Thread Markus Duft
On Mon, 2009-04-20 at 02:14 -0700, Zac Medico wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Markus Duft wrote:
  Hi!
  
  I have a quick question: is --nodeps supposed to still merge packages in
  the right order?
 
 Yes. The attached patch should fix it. Thanks for reporting.

cool thanks :) so this patch makes portage merge in the order given on
the command line? this means it's the users fault if packages are in the
wrong order? shouldn't portage do the same thing as with --nodeps,
except that it doesn't add new packages to the merge list? don't get me
wrong - i'm quite happy with beeing responsible for the order, i just
imageined passing (to stay with the same example) --nodeps texinfo
help2man which should reorder to help2man beeing before texinfo, i
would guess... thoughts?

Cheers, Markus

 
 - --
 Thanks,
 Zac
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v2.0.11 (GNU/Linux)
 
 iEYEARECAAYFAknsPNIACgkQ/ejvha5XGaN6EQCfUWVR2U+gCrqv60uMzAssbzm0
 VxUAnjsah7byJwKRO/FVoZWwr0i4kBmE
 =X0E7
 -END PGP SIGNATURE-
 plain text document attachment (nodeps_order.patch)
 Index: pym/_emerge/__init__.py
 ===
 --- pym/_emerge/__init__.py   (revision 13376)
 +++ pym/_emerge/__init__.py   (revision 13377)
 @@ -7039,6 +7039,13 @@
   writemsg(\n, noiselevel=-1)
  
   scheduler_graph = self.digraph.copy()
 +
 + if '--nodeps' in self.myopts:
 + # Preserve the package order given on the command line.
 + return ([node for node in scheduler_graph \
 + if isinstance(node, Package) \
 + and node.operation == 'merge'], scheduler_graph)
 +
   mygraph=self.digraph.copy()
   # Prune nomerge root nodes if nothing depends on them, since
   # otherwise they slow down merge order calculation. Don't remove




Re: [gentoo-portage-dev] --nodeps faulty behaviour?

2009-04-20 Thread Zac Medico
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Markus Duft wrote:
 cool thanks :) so this patch makes portage merge in the order given on
 the command line? this means it's the users fault if packages are in the
 wrong order?

Right.

 shouldn't portage do the same thing as with --nodeps,
 except that it doesn't add new packages to the merge list? don't get me
 wrong - i'm quite happy with beeing responsible for the order, i just
 imageined passing (to stay with the same example) --nodeps texinfo
 help2man which should reorder to help2man beeing before texinfo, i
 would guess... thoughts?

Well, what you are describing is something different from what
- --nodeps is supposed to mean. The intention for --nodeps is to not
account for any dependencies whatsoever. We can add a new option if
you need some different behavior.
- --
Thanks,
Zac
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAknsuVgACgkQ/ejvha5XGaO9HQCg3zIhUqMrL2pffqft/kOQdrLu
z8gAoJ+ZGkWRoQ19mRnc4WTlZ0hbMNmf
=STIm
-END PGP SIGNATURE-