[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Tiziano Müller

 What is proposed in glep-55 seems to aim to solve both issues at the 
 same time (it isn't stated) by switching file extension every time the 
 eapi is changed. This is slightly against the principle of the least 
 surprise and apparently is disliked by enough people to lead the 
 situation to be discussed in the council.
 

Instead of switching file extension every time the eapi is changed you
could also increment it only when a new EAPI breaks sourcing the ebuild
compared to the requirements of the prior EAPI.
(This way you'd in fact split EAPI into a major- and a minor-version.)





Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Brian Harring
On Mon, Feb 23, 2009 at 09:38:06AM +0100, Tiziano M??ller wrote:
  What is proposed in glep-55 seems to aim to solve both issues at the 
  same time (it isn't stated) by switching file extension every time the 
  eapi is changed. This is slightly against the principle of the least 
  surprise and apparently is disliked by enough people to lead the 
  situation to be discussed in the council.
  
 
 Instead of switching file extension every time the eapi is changed you
 could also increment it only when a new EAPI breaks sourcing the ebuild
 compared to the requirements of the prior EAPI.
 (This way you'd in fact split EAPI into a major- and a minor-version.)

Complicates the implementation (annoying), but more importantly 
negates one of the features of g55- being able to tell via the 
extension if the manager supports that EAPI.

Honestly, the issue isn't breaking sourcing (literally unable to 
source it) of the ebuild as much as sourcing it *wrong*- simplest 
example, new metadata key is added in eapi 1.3, compliant 
implementations have to pull that key out of the env and put it in the 
cache.  Sourcing on the surface, would succeed- but the results would 
be worthless (it'd basically be similar to the situation now).

~brian


pgpeX8pilTQ8r.pgp
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Alistair Bush


Tiziano Müller wrote:
 What is proposed in glep-55 seems to aim to solve both issues at the 
 same time (it isn't stated) by switching file extension every time the 
 eapi is changed. This is slightly against the principle of the least 
 surprise and apparently is disliked by enough people to lead the 
 situation to be discussed in the council.

 
 Instead of switching file extension every time the eapi is changed you
 could also increment it only when a new EAPI breaks sourcing the ebuild
 compared to the requirements of the prior EAPI.
 (This way you'd in fact split EAPI into a major- and a minor-version.)
 

Doesn't that just add extra complexity for no gain.

Personally I don't see what the problem is with simply implementing
GLEP-55.  It's the best solution.
It should be pretty simple to implement too.  Certainly it wouldn't be
anymore difficult to implement than your solution.

Maybe once zmedico finishes his latest development push I will attempt
to implement it.



Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Tiziano Müller
Am Montag, den 23.02.2009, 22:25 +1300 schrieb Alistair Bush:
 
 Tiziano Müller wrote:
  What is proposed in glep-55 seems to aim to solve both issues at the 
  same time (it isn't stated) by switching file extension every time the 
  eapi is changed. This is slightly against the principle of the least 
  surprise and apparently is disliked by enough people to lead the 
  situation to be discussed in the council.
 
  
  Instead of switching file extension every time the eapi is changed you
  could also increment it only when a new EAPI breaks sourcing the ebuild
  compared to the requirements of the prior EAPI.
  (This way you'd in fact split EAPI into a major- and a minor-version.)
  
 
 Doesn't that just add extra complexity for no gain.
Yes, sure. I was just looking for a solution for the we have countless .eapi-X 
after 10 years problem.

 Personally I don't see what the problem is with simply implementing
 GLEP-55.  It's the best solution.
 It should be pretty simple to implement too.  Certainly it wouldn't be
 anymore difficult to implement than your solution.

I fully agree.



signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Douglas Anderson
On Mon, Feb 23, 2009 at 7:02 PM, Tiziano Müller dev-z...@gentoo.org wrote:
 Am Montag, den 23.02.2009, 22:25 +1300 schrieb Alistair Bush:

 Tiziano Müller wrote:
  What is proposed in glep-55 seems to aim to solve both issues at the
  same time (it isn't stated) by switching file extension every time the
  eapi is changed. This is slightly against the principle of the least
  surprise and apparently is disliked by enough people to lead the
  situation to be discussed in the council.
 
 
  Instead of switching file extension every time the eapi is changed you
  could also increment it only when a new EAPI breaks sourcing the ebuild
  compared to the requirements of the prior EAPI.
  (This way you'd in fact split EAPI into a major- and a minor-version.)
 

 Doesn't that just add extra complexity for no gain.
 Yes, sure. I was just looking for a solution for the we have countless 
 .eapi-X after 10 years problem.

No one wants to be working with ebuild-29 or something like that in a
few years and trying to figure out which feature came in which EAPI.
Instead of bumping EAPI for each little change, save them up and bump
no more than once a year or less, each bump bringing in some major new
feature. With a little common sense and planning, we could make this a
non-issue and give ebuild authors and PM devs alike a little time to
get used to each change.



Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Brian Harring
On Mon, Feb 23, 2009 at 07:28:00PM +0900, Douglas Anderson wrote:
 On Mon, Feb 23, 2009 at 7:02 PM, Tiziano Müller dev-z...@gentoo.org wrote:
  Am Montag, den 23.02.2009, 22:25 +1300 schrieb Alistair Bush:
 
  Tiziano Müller wrote:
   What is proposed in glep-55 seems to aim to solve both issues at the
   same time (it isn't stated) by switching file extension every time the
   eapi is changed. This is slightly against the principle of the least
   surprise and apparently is disliked by enough people to lead the
   situation to be discussed in the council.
  
  
   Instead of switching file extension every time the eapi is changed you
   could also increment it only when a new EAPI breaks sourcing the ebuild
   compared to the requirements of the prior EAPI.
   (This way you'd in fact split EAPI into a major- and a minor-version.)
  
 
  Doesn't that just add extra complexity for no gain.
  Yes, sure. I was just looking for a solution for the we have countless 
  .eapi-X after 10 years problem.
 
 No one wants to be working with ebuild-29 or something like that in a
 few years and trying to figure out which feature came in which EAPI.
 Instead of bumping EAPI for each little change, save them up and bump
 no more than once a year or less, each bump bringing in some major new
 feature. With a little common sense and planning, we could make this a
 non-issue and give ebuild authors and PM devs alike a little time to
 get used to each change.

There also is the angle that deploying g55 requires waiting at least a 
full stage release (~year, at least by the old standards) to ensure 
people aren't screwed by the repository changing formats 
(unversioned!) under their feet.

I'd point out that g55 isn't even accepted (search the archives for 
the debates), but folks seem to be ignoring that and the issues of 
just flipping the switch...

~harring, aka the version the farking repo format so stuff like this 
can be done cleanly guy


pgpo6FSu5I42q.pgp
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Luca Barbato

Tiziano Müller wrote:
What is proposed in glep-55 seems to aim to solve both issues at the 
same time (it isn't stated) by switching file extension every time the 
eapi is changed. This is slightly against the principle of the least 
surprise and apparently is disliked by enough people to lead the 
situation to be discussed in the council.




Instead of switching file extension every time the eapi is changed you
could also increment it only when a new EAPI breaks sourcing the ebuild
compared to the requirements of the prior EAPI.
(This way you'd in fact split EAPI into a major- and a minor-version.)


Makes you getting to have to do the two stage source again AND you get 
another non obvious condition Should I bump the eapi internally or the 
filename?


The main point again what is proposed in glep-55 is it that isn't 
invasive and non-transparent to users and developers.


As stated in the analysis, the user side is already covered by the fact 
users use the cache, the developer side would require a two stage 
sourcing when committing to remain transparent.


What we need to balance is if the invasive proposal is simpler than 
having a two stage sourcing done.


lu

--

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero




Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Thomas Anderson
On Mon, Feb 23, 2009 at 02:21:33PM +0100, Luca Barbato wrote:
 Tiziano M??ller wrote:
 What is proposed in glep-55 seems to aim to solve both issues at the same 
 time (it isn't stated) by switching file extension every time the eapi is 
 changed. This is slightly against the principle of the least surprise and 
 apparently is disliked by enough people to lead the situation to be 
 discussed in the council.

 Instead of switching file extension every time the eapi is changed you
 could also increment it only when a new EAPI breaks sourcing the ebuild
 compared to the requirements of the prior EAPI.
 (This way you'd in fact split EAPI into a major- and a minor-version.)

 Makes you getting to have to do the two stage source again AND you get 
 another non obvious condition Should I bump the eapi internally or the 
 filename?

The glep is quite clear on that point.

 The main point again what is proposed in glep-55 is it that isn't invasive 
 and non-transparent to users and developers.

It's not all that invasive. All that changes is that the EAPI goes at
the end of the filename and you don't set it in the ebuild. Developers
should be able to keep up with this, and if a user asks it's easy enough
to say that it's a new version of ebuild, it has newer features see
www.blah.org/blah for details. And really, users already ask what EAPI
is so it's not that much headache.

-- 
-
Thomas Anderson
Gentoo Developer
/
Areas of responsibility:
AMD64, Secretary to the Gentoo Council
-


pgpb1wKek30va.pgp
Description: PGP signature


[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Duncan
Brian Harring ferri...@gmail.com posted 20090223085232.ga6...@hrair,
excerpted below, on  Mon, 23 Feb 2009 00:52:32 -0800:

 On Mon, Feb 23, 2009 at 09:38:06AM +0100, Tiziano M??ller wrote:
 [quoting...]
 What is proposed in glep-55 seems to aim to solve both issues at the
 same time (it isn't stated) by switching file extension every time
 the eapi is changed. This is slightly against the principle of the
 least surprise and apparently is disliked by enough people[...]
 
 Instead of switching file extension every time the eapi is changed you
 could also increment it only when a new EAPI breaks sourcing the ebuild
 compared to the requirements of the prior EAPI. (This way you'd in fact
 split EAPI into a major- and a minor-version.)
 
 Complicates the implementation (annoying), but more importantly negates
 one of the features of g55- being able to tell via the extension if the
 manager supports that EAPI.

That makes sense, but from my observation, the biggest resistance is 
coming from potentially unlimited changes to the extension.  That rubs 
some people strongly enough the wrong way to have folks threatening to 
leave over it, etc.  If it must be, it must be, but obviously, if there's 
a /reasonable/ way to avoid it, we should.

Way back when this first came up, I asked a simple question and IIRC 
wasn't satisfied with the answer.  Since the elements of it have been 
proposed separately, perhaps it's time to ask about the combination once 
again, as it seems to me to solve both the technical and aesthetic 
issues, tho admittedly it does have a bit of the complicates the 
implementation problem.

As I understand it, the nastiest technical problem is currently the 
chicken/egg issue of needing the EAPI to source the ebuild... to /get/ 
the EAPI.  Above, we have what amounts to a major/minor EAPI proposal, 
stick the major in the extension (or as a variant, the pre-extension 
filename), with it bumped only when the format changes enough to require 
pre-source knowledge of the change.

Elsewhere, someone proposed strenthening the format rules by hard-
specifying a location and format for the EAPI line, say line two of the 
ebuild and in a format specific enough to be parsed /without/ sourcing 
the ebuild, thus providing a pre-source method for grabbing the EAPI.  
The shoot-down when originally suggested was that this isn't flexible 
enough.  It's also arguably less efficient since one has to access the 
file twice, first to get the EAPI, then to actually source the file.  
Unfortunately the below suggestion doesn't avoid that.

Combining the two ideas, we get:

Why not put the EAPI-major aka pre-parse-EAPI in that hard-specified 
in-file location, thus giving the package manager a method to grab it pre-
source, then allow more flexibility on the EAPI-minor aka
post-parse-EAPI?

FWIW, all EAPIs to date have been EAPI-minor/post-parse, precisely 
/because/ of the need-the-EAPI-to-source-to-get-the-EAPI issue.  This 
would eliminate that issue, providing both the necessary pre-source 
(major) EAPI solution and flexibility on the post-source (minor) EAPI.  
It would also avoid the so controversial aesthetic issue, maintaining the 
traditional .ebuild extension.

The negative, however, as mentioned, is that of efficiency.  It'd be 
necessary to access the file twice, pre-source to get the EAPI-major, 
then the source to fill in all the details.  Putting just the EAPI-major 
in the filename/extension would avoid the first access (a dir listing 
would suffice) and using the filename for the EAPI entirely would in some 
cases possibly avoid accessing the file itself entirely -- at the expense 
of EAPI flexibility and aesthetics.


Meanwhile, a status/process observation, if I may.  Given the efficiency 
negative of putting the EAPI anywhere /but/ the filename and the way the 
debate has gone, GLEP-55 or something close to it (using the filename for 
EAPI) would appear headed toward ultimate approval, however slow it seems 
to be getting there.

The major blocker would appear to be that the GLEP as-is simply doesn't 
sufficiently address everything that has come up in the discussions.  As 
such, it's not clearly and sufficiently enough worded for the council to 
feel comfortable approving it.  Based on council logs and discussion, I 
get the STRONG impression that they are pretty much /begging/ the 
proponents to address this issue, updating the GLEP as appropriate, so 
they can /finally/ get out of the eternal debate stage and vote it up or 
down (presumably up as it doesn't appear they have a viable alternative 
either) on its merits, and the PMs can get it implemented and both the 
council and Gentoo can move on.

Unfortunately, due to personnel issues, apparently there's currently 
nobody filling the triple qualifications of being (1) a strong enough 
proponent to bother, (2) a PM dev or other with sufficient grasp of the 
issues to actually /do/ the work, and (3) a Gentoo dev with the necessary 

Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 04:26:49 -0800
Brian Harring ferri...@gmail.com wrote:
 There also is the angle that deploying g55 requires waiting at least
 a full stage release (~year, at least by the old standards) to ensure 
 people aren't screwed by the repository changing formats 
 (unversioned!) under their feet.

No it doesn't. It's transparent to users using an older package manager.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Fwd: News item: Generation 1 deprecation

2009-02-23 Thread Jan Kundrát

See the patch.

--
cd /local/pub  more beer  /dev/mouth
--- generation1-deprecation.orig2009-02-23 14:50:37.920591164 +0100
+++ generation1-deprecation 2009-02-23 14:51:25.180617090 +0100
@@ -21,9 +21,9 @@
 
 emerge -av --depclean virtual/jdk:1.4
 
-If don't need virtual/jdk:1.4 any more then you can remove the
+If you don't need virtual/jdk:1.4 any more then you can remove the
 individual JDKs. First get the list of installed JDKs with
-eselect and then remove with depclean, for example:
+eselect and then remove those that are not needed anymore with depclean, for 
example:
 
 eselect java-vm list
 emerge -av --depclean sun-jdk:1.4


signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 03:15:03 +0100
Luca Barbato lu_z...@gentoo.org wrote:
 Let's try to start with a common workflow for the user:
 - an user with an ancient version of portage syncs
 - it requires a package
 - it looks at the cache ($portdir/metadata/cache/)
 - picks the best entry from the ones showing an eapi it understands
 - keeps going.
 
 Apparently we do not have any issue...

...assuming the metadata cache is valid. That isn't always the case.

 2- The user will get unpredictable behavior, but portage tell you
 when upgrading is needed...

Not if the version you'd need to do metadata generation is ~arch it
doesn't.

 3- you'd have to disable them

Yes, tell everyone to disable all the overlays that make use of a few
features only in ~arch package managers... That'll work...

 In this case we have a problem if the source step is a single one, 
 portage won't know in advance how to behave.
 
 So the first step has to be split in two:
 - first portage discovers which is the eapi version

...which it can't do, because it doesn't know the EAPI.

 The problem is that right now sourcing is done by having an
 instructed bash. So the simplest way to get the first step done is
 parsing the ebuild file with something different like file(1) and
 then instruct bash and do the parsing.

file(1) can't parse ebuilds. Only an ebuild implementation can parse
ebuilds, and only if it already knows the EAPI.

 What is proposed in glep-55 seems to aim to solve both issues at the 
 same time (it isn't stated) by switching file extension every time
 the eapi is changed. This is slightly against the principle of the
 least surprise and apparently is disliked by enough people to lead
 the situation to be discussed in the council.

There's no surprise at all. It's extremely clear.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Brian Harring
On Mon, Feb 23, 2009 at 01:50:10PM +, Ciaran McCreesh wrote:
 On Mon, 23 Feb 2009 04:26:49 -0800
 Brian Harring ferri...@gmail.com wrote:
  There also is the angle that deploying g55 requires waiting at least
  a full stage release (~year, at least by the old standards) to ensure 
  people aren't screwed by the repository changing formats 
  (unversioned!) under their feet.
 
 No it doesn't. It's transparent to users using an older package manager.

Would be useful if someone pulled older portage versions and checked 
exactly what they do in this case- explode, behave, etc (manifest 
behaviour included).  It's been several years, but I recall portage 
having problems at the onset of EAPI w/ it.

Beyond that, what I was stating was that the user doesn't get told 
sorry, your manager is too old, upgrade- kind of an unobvious 
failing.

Frankly, in terms of g55 I don't particularly care if it were 
implemented- although I'd rather see it go in a seperate repo along w/ 
the dozen other fixups needed, preferably starting w/ overlays...

~harring


pgplVR5glWTvH.pgp
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 06:15:25 -0800
Brian Harring ferri...@gmail.com wrote:
  No it doesn't. It's transparent to users using an older package
  manager.
 
 Would be useful if someone pulled older portage versions and checked 
 exactly what they do in this case- explode, behave, etc (manifest 
 behaviour included).  It's been several years, but I recall portage 
 having problems at the onset of EAPI w/ it.

It was checked back when 55 was originally written. If it's broken now,
it's a breakage since then...

 Frankly, in terms of g55 I don't particularly care if it were 
 implemented- although I'd rather see it go in a seperate repo along
 w/ the dozen other fixups needed, preferably starting w/ overlays...

Well yes, but that's never realistically going to happen. 55's one of
the few repository format fixes that can happen in a reasonable
timeframe.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Richard Freeman

Douglas Anderson wrote:

No one wants to be working with ebuild-29 or something like that in a
few years and trying to figure out which feature came in which EAPI.
Instead of bumping EAPI for each little change, save them up and bump
no more than once a year or less, each bump bringing in some major new
feature. 


I got the impression that if anything there is a desire to allow EAPIs 
to change more offen, and not less.  And these changes could become more 
dramatic.  I'm not sure this is actually a bad thing (within reason - we 
do need to have clear specifications for anything that hits production 
so that we don't have a package manager mess).


Also - keep in mind that EAPIs do not need to be numbers and are not 
ordered.  You could have ebuild-i_am_a_furry_monkey or 
ebuild-bunch-of-stuff-in-unicode-that-maybe-your-terminal-displays. 
Sure - hopefully the names will be more sensible and somewhat uniform, 
but we're not necessarily just talking about adding a number to the 
extension.


I still don't see why we need to be encoding metadata in filenames. 
PERL doesn't care what a file extension is, python doesn't care, bzip2 
doesn't care, tar doesn't care, gzip doesn't care, and even ld-linux.so 
doesn't care.  I'm sure that in at least some of these cases they end up 
parsing parts of the file twice - once to figure out what it is, and the 
second time to actually handle it.  I'm actually hard pressed to think 
of any unix-based software that uses the filename to store a mandatory 
file format versioning specifier of some kind.


This seems to me to be a solved problem.  You put a header in a file 
that tells you how to read the file.  Headers are split into fields and 
if a program doesn't know what to do with a field it ignores it (or if 
the header so instructs it doesn't even try to parse the file).  This 
should be easy to do and keep the file bash-compatible.  Just stick a 
comment line close to the top of the file and put whatever you want on 
it.  You could also stick something in metadata.xml (although this makes 
working with ebuilds outside of a repository more difficult).  You run 
the file through an algorithm to find out what the EAPI is, and then 
source it if appropriate.


Sure, if you make some major change analogous to switching from the .rpm 
to the .deb package format then maybe an extension change would make 
sense.  But, why expose the inner workings of the package file format to 
the filesystem?




Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 09:28:06 -0500
Richard Freeman ri...@gentoo.org wrote:
 I got the impression that if anything there is a desire to allow
 EAPIs to change more offen, and not less.  And these changes could
 become more dramatic.

But we're still only talking maybe three new EAPIs a year.

 Also - keep in mind that EAPIs do not need to be numbers and are not 
 ordered.  You could have ebuild-i_am_a_furry_monkey or 
 ebuild-bunch-of-stuff-in-unicode-that-maybe-your-terminal-displays. 
 Sure - hopefully the names will be more sensible and somewhat
 uniform, but we're not necessarily just talking about adding a number
 to the extension.

You're using developers might do something really stupid as an
argument? By that logic, the current setup sucks since someone might
make an EAPI called a'bc\d , so developers might have to put weird
escaping in when specifying EAPI.

Also note that kdebuild went with .kdebuild-1, not .ebuild-kdebuild-1.
It's no leap to have slightly different extension rules for any project
that creates its own non-numerical EAPIs.

 I still don't see why we need to be encoding metadata in filenames. 

Because the metadata has to be known before the file can be used.

 PERL doesn't care what a file extension is, python doesn't care,
 bzip2 doesn't care, tar doesn't care, gzip doesn't care, and even
 ld-linux.so doesn't care.  I'm sure that in at least some of these
 cases they end up parsing parts of the file twice - once to figure
 out what it is, and the second time to actually handle it.  I'm
 actually hard pressed to think of any unix-based software that uses
 the filename to store a mandatory file format versioning specifier of
 some kind.

Back when Perl 5 and PHP 5 were new, people often used extensions
like .php4 and .php5 to tell their webserver how to handle scripts...

 This seems to me to be a solved problem.  You put a header in a file 
 that tells you how to read the file.  Headers are split into fields
 and if a program doesn't know what to do with a field it ignores it
 (or if the header so instructs it doesn't even try to parse the
 file).  This should be easy to do and keep the file bash-compatible.
 Just stick a comment line close to the top of the file and put
 whatever you want on it.

That doesn't work with existing packages or existing package managers.

 Sure, if you make some major change analogous to switching from
 the .rpm to the .deb package format then maybe an extension change
 would make sense.  But, why expose the inner workings of the package
 file format to the filesystem?

For the same reason versions and package names are already in the
filename.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Luca Barbato

Ciaran McCreesh wrote:

On Mon, 23 Feb 2009 03:15:03 +0100
Luca Barbato lu_z...@gentoo.org wrote:

Let's try to start with a common workflow for the user:
- an user with an ancient version of portage syncs
- it requires a package
- it looks at the cache ($portdir/metadata/cache/)
- picks the best entry from the ones showing an eapi it understands
- keeps going.

Apparently we do not have any issue...


...assuming the metadata cache is valid. That isn't always the case.


When it isn't?


2- The user will get unpredictable behavior, but portage tell you
when upgrading is needed...


Not if the version you'd need to do metadata generation is ~arch it
doesn't.


...


3- you'd have to disable them


Yes, tell everyone to disable all the overlays that make use of a few
features only in ~arch package managers... That'll work...


disable overlays to UPGRADE to the new portage. Not rocket science...

In this case we have a problem if the source step is a single one, 
portage won't know in advance how to behave.


So the first step has to be split in two:
- first portage discovers which is the eapi version


...which it can't do, because it doesn't know the EAPI.


If you are generating the cache you must have a way to know it...


The problem is that right now sourcing is done by having an
instructed bash. So the simplest way to get the first step done is
parsing the ebuild file with something different like file(1) and
then instruct bash and do the parsing.


file(1) can't parse ebuilds.


file parses quite well avi and mov, ebuild will be anytime more complex 
than that right?


Anyway it isn't a problem since the version of portage doing the work is 
supposed to be up to date, if isn't it will be updated first using the 
normal user workflow that has already been covered by the cache.



Only an ebuild implementation can parse
ebuilds, and only if it already knows the EAPI.


That is always the case since you are adding an ebuild and you are 
supposed to have an up to date portage in order to do that.


What is proposed in glep-55 seems to aim to solve both issues at the 
same time (it isn't stated) by switching file extension every time

the eapi is changed. This is slightly against the principle of the
least surprise and apparently is disliked by enough people to lead
the situation to be discussed in the council.


There's no surprise at all. It's extremely clear.


Not that much.

lu

--

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero




[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 15:46:24 +0100
Luca Barbato lu_z...@gentoo.org wrote:
  Apparently we do not have any issue...
  
  ...assuming the metadata cache is valid. That isn't always the case.
 
 When it isn't?

Every now and again (probably after someone changes eutils...), rsync
mirrors end up shipping a load of stale metadata for parts of the tree.
Portage users probably don't notice, since it just causes a slowdown.

 disable overlays to UPGRADE to the new portage. Not rocket science...

No no. You're forcing people to switch to ~arch to be able to use
overlays.

  In this case we have a problem if the source step is a single one, 
  portage won't know in advance how to behave.
 
  So the first step has to be split in two:
  - first portage discovers which is the eapi version
  
  ...which it can't do, because it doesn't know the EAPI.
 
 If you are generating the cache you must have a way to know it...

No, we don't. That's the entire frickin' point of GLEP 55, and one
that you would do well to understand fully before commenting further.
The way we generate metadata now is massively horrible, and only works
because there aren't any serious global scope differences between
EAPIs. We can't make any global scope changes to future EAPIs because
it breaks current metadata generation. Right now it's safe to pretend
EAPI 0 until the real EAPI is worked out, but that won't hold in the
future -- as soon as global scope changes come along, there's no safe
EAPI that can be assumed, even if we didn't have to worry about
breaking existing package managers.

  The problem is that right now sourcing is done by having an
  instructed bash. So the simplest way to get the first step done is
  parsing the ebuild file with something different like file(1) and
  then instruct bash and do the parsing.
  
  file(1) can't parse ebuilds.
 
 file parses quite well avi and mov, ebuild will be anytime more
 complex than that right?

It's already *way* more complicated than that. Extracting metadata
requires a full bash 3 implementation along with a considerable amount
of supporting code.

 Anyway it isn't a problem since the version of portage doing the work
 is supposed to be up to date, if isn't it will be updated first using
 the normal user workflow that has already been covered by the cache.

Most users don't run ~arch, and do use overlays. So no, this will affect
normal user workflow.

  Only an ebuild implementation can parse
  ebuilds, and only if it already knows the EAPI.
 
 That is always the case since you are adding an ebuild and you are 
 supposed to have an up to date portage in order to do that.

Again, you're not getting it. Doesn't matter how up to date your
package manager is. You can't find out the EAPI unless you already know
the EAPI.

  What is proposed in glep-55 seems to aim to solve both issues at
  the same time (it isn't stated) by switching file extension every
  time the eapi is changed. This is slightly against the principle
  of the least surprise and apparently is disliked by enough people
  to lead the situation to be discussed in the council.
  
  There's no surprise at all. It's extremely clear.
 
 Not that much.

How is '.ebuild-3' being used to specify version 3 of the ebuild format
in the least bit surprising?

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Steve Dibb

Richard Freeman wrote:
I still don't see why we need to be encoding metadata in filenames. PERL 
doesn't care what a file extension is, python doesn't care, bzip2 
doesn't care, tar doesn't care, gzip doesn't care, and even ld-linux.so 
doesn't care.  I'm sure that in at least some of these cases they end up 
parsing parts of the file twice - once to figure out what it is, and the 
second time to actually handle it.  I'm actually hard pressed to think 
of any unix-based software that uses the filename to store a mandatory 
file format versioning specifier of some kind.


I have to admit I'm in the same camp with Richard, and don't understand 
the necessity.  I'm also opposed to creating arbitrary suffixes to the 
ebuild extension, for cosmetic and compatibility reasons.


Plus, I don't really grasp the whole we have to source the whole ebuild 
to know the EAPI version argument.  It's one variable, in one line. 
Can't a simple parser get that and go from there?


Steve



Re: [gentoo-dev] Should that file be a License ?

2009-02-23 Thread Marijn Schouten (hkBst)
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Mounir Lamouri wrote:
 Hi,
 
 I was writing a trivial version bump for net-voip/gnugk-2.2.8 (bug
 #258518) but upstream added a file named p2pnat_license.txt (see
 http://dpaste.com/123376/) This file looks to authorize gnugk project
 (and users) to use p2pnat technology. gnugk is already licensed under
 GPL-2 and I was wondering if this new file should be considered as
 another license and if it has to be in the LICENSE line ? In this case,
 should the file be added like he is in the gnugk tarball or should it be
 templatized like most licenses ?
 
 Thanks,
 Mounir
 

That paste is gone/expired.

Marijn

- --
Sarcasm puts the iron in irony, cynicism the steel.

Marijn Schouten (hkBst), Gentoo Lisp project, Gentoo ML
http://www.gentoo.org/proj/en/lisp/, #gentoo-{lisp,ml} on FreeNode
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkmixHYACgkQp/VmCx0OL2wURgCff8WSLE9PHXfO/HI+GdrE1W3J
0/kAoLpB4oFEwOx5Dk+ceo70vCueZgbk
=hKRC
-END PGP SIGNATURE-



Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 08:43:09 -0700
Steve Dibb bean...@gentoo.org wrote:
 Plus, I don't really grasp the whole we have to source the whole
 ebuild to know the EAPI version argument.  It's one variable, in one
 line. Can't a simple parser get that and go from there?

Not true. This is entirely legal:

In pkg-1.ebuild:

EAPI=${PV}
printf -v EAPI '%s' 4
inherit foo
EAPI=2

In foo.eclass:

EAPI=3

And in this case, the package manager has to know that EAPI=2, and it
has to use EAPI 2's behaviour for performing the inherit.

In fact, it gets worse if you consider that future EAPIs will probably
allow per-package eclasses. So you could end up with this crazy
situation:

In pkg-1.ebuild:

require pkg

In cat/pkg/pkg.eclass:

EAPI=3

In global pkg.eclass:

EAPI=2

So here you can't even use a faked pre-source EAPI. If you assume EAPI
0 beforehand, the global pkg.eclass will be used, so EAPI will end up
as 2. But if you assume EAPI 3 beforehand, the per-pkg eclass will be
used, so the EAPI will end up as 3.

It gets even crazier if you put EAPI=2 in the per-pkg eclass and
EAPI=3 in the global one instead...

And whilst this is clearly a deliberate example of how to create
craziness, the only difference between this and the real world is that
the craziness is obvious here. The current rules really are this
complicated, and we can't retroactively fix them.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Should that file be a License ?

2009-02-23 Thread Mounir Lamouri
On Mon, Feb 23, 2009 at 10:44 AM, Marijn Schouten (hkBst)
hk...@gentoo.org wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Mounir Lamouri wrote:
 Hi,

 I was writing a trivial version bump for net-voip/gnugk-2.2.8 (bug
 #258518) but upstream added a file named p2pnat_license.txt (see
 http://dpaste.com/123376/) This file looks to authorize gnugk project
 (and users) to use p2pnat technology. gnugk is already licensed under
 GPL-2 and I was wondering if this new file should be considered as
 another license and if it has to be in the LICENSE line ? In this case,
 should the file be added like he is in the gnugk tarball or should it be
 templatized like most licenses ?

 Thanks,
 Mounir


 That paste is gone/expired.

 Marijn

 - --
 Sarcasm puts the iron in irony, cynicism the steel.

 Marijn Schouten (hkBst), Gentoo Lisp project, Gentoo ML
 http://www.gentoo.org/proj/en/lisp/, #gentoo-{lisp,ml} on FreeNode
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v2.0.10 (GNU/Linux)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

 iEYEARECAAYFAkmixHYACgkQp/VmCx0OL2wURgCff8WSLE9PHXfO/HI+GdrE1W3J
 0/kAoLpB4oFEwOx5Dk+ceo70vCueZgbk
 =hKRC
 -END PGP SIGNATURE-



I attached it to this email.


Mounir
P2Pnat Technology license (H.460.23/24) 

In relation to any work derived from the Point to Point through NAT 
Specification 
(P2Pnat Technology), International Secure Virtual offices (Asia) Pte Ltd 
ISVO 
(together with his successors and assignees) will grant a royalty-free, 
non-exclusive license with reciprocity to Qualified Parties to use the P2Pnat 
Technology 
solely to the extent necessary to implement and practice such as in compliance 
with the 
P2Pnat Specification. As used herein, Qualified Parties means a party who has 
not, 
does not and will not assert, in litigation or otherwise, including in 
licensing discussions, 
any patent or other intellectual property right against ISVO of any nature. Any 
license to 
a Qualified Party shall terminate at once if such party: (a) asserts a patent 
or other 
intellectual property right against ISVO as set forth above; or (b) if 
applicable, 
fails to properly implement the disclosure flag described in the P2Pnat 
Specification 
in a truthful manner. This license also extends to cover users and furthur 
development 
of the licensee's implementation only as far as the use does not violate the 
licensee's 
own licensing terms and conditions, where apon a user is in breach of the 
licensee's license 
then they shall be deemed to be breach of this license. ISVO will grant 
non-exclusive licenses 
to Non-Qualified Parties on reasonable and reciprocal terms and conditions. 


The GnuGk project (www.gnugk.org) is hereby granted non-exclusive royalty-free 
license of 
Point to Point through NAT (P2Pnat Technology) to be used with the GnuGk 
project. 
Users and developers of GnuGk are hereby also granted non-exclusive 
royalty-free license of 
P2Pnat Technology as long as the use of GnuGk and/or any derived work 
containing this technology 
is used and/or issued under the same terms and conditions as the GnuGk project. 
Failure to comply 
with the GnuGk license shall automatically be deemed a violation of this 
license.




Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Peter Alfredsen
On Mon, 23 Feb 2009 08:43:09 -0700
Steve Dibb bean...@gentoo.org wrote:

 Plus, I don't really grasp the whole we have to source the whole
 ebuild to know the EAPI version argument.  It's one variable, in one
 line. Can't a simple parser get that and go from there?

The problem is that its technically allowed for the value of $EAPI to be
dependent on other bits and pieces. For instance:

if [[ $PV = 2.6 ]]
then
EAPI=2
else
EAPI=1
fi

The quick-n-dirty solution to that is to just say that EAPI is not just
a bash variable, it's also a magic string, so manipulating it in bash
is forbidden. And please place it in line 5 of your ebuild, kthxbye.

To be honest I see no good reason for allowing manipulation of it, but
I'm sure other people will tell me why adding this requirement at this
point is wrong even though no ebuilds in the tree to the best of my
knowledge use EAPI as anything more than a declaration that's placed
Just before inherit, right after the header.

/loki_val



Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 17:06:17 +0100
Peter Alfredsen loki_...@gentoo.org wrote:
 To be honest I see no good reason for allowing manipulation of it, but
 I'm sure other people will tell me why adding this requirement at this
 point is wrong

There's not really a good reason to allow manipulating it (and,
obviously, with GLEP 55 manipulating it becomes impossible), but since
for all current EAPIs it's just defined as a metadata variable that's
generated in the same way as things like SLOT, manipulating it is
unfortunately legal.

 even though no ebuilds in the tree to the best of my knowledge use
 EAPI as anything more than a declaration that's placed Just before
 inherit, right after the header.

People have, in the past, set EAPI inside eclasses. It's stupid and
horrible, but they've done it.

But here's the thing -- even if we retroactively enforce a new rule
requiring it to be specified in a particular way right after the header
(which is bad, since it breaks things people have already done), it
*still* doesn't let us change global scope behaviour since current
package managers don't extract EAPI the horrid way.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Alexis Ballier
On Mon, 23 Feb 2009 15:53:20 +
Ciaran McCreesh ciaran.mccre...@googlemail.com wrote:

 On Mon, 23 Feb 2009 08:43:09 -0700
 Steve Dibb bean...@gentoo.org wrote:
  Plus, I don't really grasp the whole we have to source the whole
  ebuild to know the EAPI version argument.  It's one variable, in
  one line. Can't a simple parser get that and go from there?
 
 Not true. This is entirely legal:
 
 In pkg-1.ebuild:
 
 EAPI=${PV}
 printf -v EAPI '%s' 4
 inherit foo
 EAPI=2

Which begs the question: is it really worth allowing it?
If we only allow constant assignments (which is an implicit restriction
in the file extension version) then this can be parsed easily with
grep/tr/awk/etc and can be the magic eapi guessing. Of course the tree
has to be checked before implementing this and we'll have to wait a
good amount of time before breaking the current eapi bash-parsing but
I'm not aware of any eapi proposal that would break the current behavior
and would be usable in the main tree within a reasonable amount of
time such that we can't ignore backward compatibility.


 In foo.eclass:
 
 EAPI=3

I thought this was prohibited.

Alexis.


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 17:13:16 +0100
Alexis Ballier aball...@gentoo.org wrote:
 Which begs the question: is it really worth allowing it?
 If we only allow constant assignments (which is an implicit
 restriction in the file extension version) then this can be parsed
 easily with grep/tr/awk/etc and can be the magic eapi guessing. Of
 course the tree has to be checked before implementing this and we'll
 have to wait a good amount of time before breaking the current eapi
 bash-parsing but I'm not aware of any eapi proposal that would break
 the current behavior and would be usable in the main tree within a
 reasonable amount of time such that we can't ignore backward
 compatibility.

...and then we have to do the whole thing again every time something
new crops up. EAPI was supposed to solve this, and profile eapi and GLEP
55 finish the job. Repeatedly going back and saying oh, we have to
wait another year or more again is unacceptable.

  In foo.eclass:
  
  EAPI=3
 
 I thought this was prohibited.

It's legal, and people have done it, but it's considered by most people
to be a horrible QA violation.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Alexis Ballier
On Mon, 23 Feb 2009 16:19:56 +
Ciaran McCreesh ciaran.mccre...@googlemail.com wrote:

 On Mon, 23 Feb 2009 17:13:16 +0100
 Alexis Ballier aball...@gentoo.org wrote:
  Which begs the question: is it really worth allowing it?
  If we only allow constant assignments (which is an implicit
  restriction in the file extension version) then this can be parsed
  easily with grep/tr/awk/etc and can be the magic eapi guessing. Of
  course the tree has to be checked before implementing this and we'll
  have to wait a good amount of time before breaking the current eapi
  bash-parsing but I'm not aware of any eapi proposal that would break
  the current behavior and would be usable in the main tree within a
  reasonable amount of time such that we can't ignore backward
  compatibility.
 
 ...and then we have to do the whole thing again every time something
 new crops up.

Please give an example because I fail to see how.

 EAPI was supposed to solve this, and profile eapi and
 GLEP 55 finish the job. Repeatedly going back and saying oh, we have
 to wait another year or more again is unacceptable.

Had we found a compromise at the beginning of glep55, that extra year
would be over by now...


Alexis.


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 17:48:27 +0100
Alexis Ballier aball...@gentoo.org wrote:
  ...and then we have to do the whole thing again every time something
  new crops up.
 
 Please give an example because I fail to see how.

New version suffix rules. New bash versions. New package naming rules.
Partially composable EAPIs. Tree-provided internals. Consistent variable
namespacing. Metadata via function calls.

  EAPI was supposed to solve this, and profile eapi and
  GLEP 55 finish the job. Repeatedly going back and saying oh, we
  have to wait another year or more again is unacceptable.
 
 Had we found a compromise at the beginning of glep55, that extra year
 would be over by now...

And we'd be starting on the next batch of oh, we need to wait another
year. Had GLEP 55's necessity been accepted a year ago, we'd have a
whole bunch of requested features implemented by now.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Alec Warner
On Mon, Feb 23, 2009 at 7:53 AM, Ciaran McCreesh
ciaran.mccre...@googlemail.com wrote:
 On Mon, 23 Feb 2009 08:43:09 -0700
 Steve Dibb bean...@gentoo.org wrote:
 Plus, I don't really grasp the whole we have to source the whole
 ebuild to know the EAPI version argument.  It's one variable, in one
 line. Can't a simple parser get that and go from there?

 Not true. This is entirely legal:

 In pkg-1.ebuild:

EAPI=${PV}
printf -v EAPI '%s' 4
inherit foo
EAPI=2

 In foo.eclass:

EAPI=3

This is not legal, the devmanual[1] explicitly states that it is not
legal to set EAPI in an eclass.  If it was you would have an open and
shut case for g55 (since you could set EAPI based on PV in an eclass
and then inherit the eapi; requiring a bash parser).  But its illegal,
which makes your argument harder.

A bad argument is EAPI based on some PV logic that you can copy across
ebuilds that differ by version; which would fall into 'stupid' in my
book.

[1] http://devmanual.gentoo.org/ebuild-writing/eapi/index.html


 And in this case, the package manager has to know that EAPI=2, and it
 has to use EAPI 2's behaviour for performing the inherit.

 In fact, it gets worse if you consider that future EAPIs will probably
 allow per-package eclasses. So you could end up with this crazy
 situation:

 In pkg-1.ebuild:

require pkg

 In cat/pkg/pkg.eclass:

EAPI=3

 In global pkg.eclass:

EAPI=2

Also illegal, but I assume here you intend to change the legality of
things in your weird future example.


 So here you can't even use a faked pre-source EAPI. If you assume EAPI
 0 beforehand, the global pkg.eclass will be used, so EAPI will end up
 as 2. But if you assume EAPI 3 beforehand, the per-pkg eclass will be
 used, so the EAPI will end up as 3.

 It gets even crazier if you put EAPI=2 in the per-pkg eclass and
 EAPI=3 in the global one instead...

 And whilst this is clearly a deliberate example of how to create
 craziness, the only difference between this and the real world is that
 the craziness is obvious here. The current rules really are this
 complicated, and we can't retroactively fix them.

 --
 Ciaran McCreesh




Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 11:02:17 -0800
Alec Warner anta...@gentoo.org wrote:
  In foo.eclass:
 
 EAPI=3
 
 This is not legal, the devmanual[1] explicitly states that it is not
 legal to set EAPI in an eclass.

That's purely a QA thing, and it only applies to repositories that
follow Gentoo's QA rules. It's in the same category as rules about
what indenting style to use, not rules about how variables are
formatted.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ryan Hill
On Mon, 23 Feb 2009 08:43:09 -0700
Steve Dibb bean...@gentoo.org wrote:

 Richard Freeman wrote:
  I still don't see why we need to be encoding metadata in filenames.
  PERL doesn't care what a file extension is, python doesn't care,
  bzip2 doesn't care, tar doesn't care, gzip doesn't care, and even
  ld-linux.so doesn't care.  I'm sure that in at least some of these
  cases they end up parsing parts of the file twice - once to figure
  out what it is, and the second time to actually handle it.  I'm
  actually hard pressed to think of any unix-based software that uses
  the filename to store a mandatory file format versioning specifier
  of some kind.

$ ls /usr/lib

 I have to admit I'm in the same camp with Richard, and don't
 understand the necessity.  I'm also opposed to creating arbitrary
 suffixes to the ebuild extension, for cosmetic and compatibility
 reasons.
 
 Plus, I don't really grasp the whole we have to source the whole
 ebuild to know the EAPI version argument.  It's one variable, in one
 line. Can't a simple parser get that and go from there?

Not really.  Let's play Guess the EAPI. :o

1.
-
EAPI=1


2. (with myeclass.eclass containing EAPI=2)
-
EAPI=1
inherit myeclass
-

3. (with myeclass.eclass containing EAPI=2)
-
EAPI=5
inherit myeclass
-


1.  1  (simple enough)
2.  2  (because myeclass.eclass sets EAPI=2)
3.  5  (inherit was changed in EAPI 5 to not overwrite ${EAPI} if
already set in an ebuild)

So you see, it's not as easy as a grep command.  You need to source the
ebuild to know how things like inherit will affect the environment.
And without knowing the EAPI, you don't know which version of inherit to
call.

(i hope i have this right.  feel free to call me names if i don't)


-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Petteri Räty
Ciaran McCreesh wrote:
 On Mon, 23 Feb 2009 17:48:27 +0100
 Alexis Ballier aball...@gentoo.org wrote:
 ...and then we have to do the whole thing again every time something
 new crops up.
 Please give an example because I fail to see how.
 
 New version suffix rules. New bash versions. New package naming rules.
 Partially composable EAPIs. Tree-provided internals. Consistent variable
 namespacing. Metadata via function calls.
 
 EAPI was supposed to solve this, and profile eapi and
 GLEP 55 finish the job. Repeatedly going back and saying oh, we
 have to wait another year or more again is unacceptable.
 Had we found a compromise at the beginning of glep55, that extra year
 would be over by now...
 
 And we'd be starting on the next batch of oh, we need to wait another
 year. Had GLEP 55's necessity been accepted a year ago, we'd have a
 whole bunch of requested features implemented by now.
 

I doubt Portage would have gained new features any faster.

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 21:30:04 +0200
Petteri Räty betelge...@gentoo.org wrote:
  And we'd be starting on the next batch of oh, we need to wait
  another year. Had GLEP 55's necessity been accepted a year ago,
  we'd have a whole bunch of requested features implemented by now.
  
 
 I doubt Portage would have gained new features any faster.

Some useful things that are currently difficult become a lot easier to
implement with GLEP 55. Per-package eclasses, for example, are easy if
you don't have to care about the upgrade path, as is replacing
versionator with a package manager internal. The complexity for both of
those is in the upgrade path, not the implementation.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Re: bzr.eclass

2009-02-23 Thread Christian Faulhammer
Hi,

Ulrich Mueller u...@gentoo.org:

  On Fri, 20 Feb 2009, Christian Faulhammer wrote:
 
  $ time (bzr diff --old lp:bzr-gentoo-overlay \
  --new /media/disk/bzr-overlay/|diffstat)
 
  real0m50.088s
 
 This is prohibitive. Drop it completely, or enable it only if some
 environment variable is set.

 Dropped completely in my branch.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
URL:http://www.gentoo.org/proj/en/lisp/, #gentoo-lisp on FreeNode

URL:http://www.faulhammer.org/


signature.asc
Description: PGP signature


[gentoo-dev] Re: bzr.eclass

2009-02-23 Thread Christian Faulhammer
Hi,

René 'Necoro' Neumann li...@necoro.eu:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Jorge Manuel B. S. Vicetto schrieb:
  Hi.
  
  Christian Faulhammer wrote:
  Hi,
 
  a user maintained a Bazaar overlay for some time now and introduced
  some changes to bzr eclass, I would like to introduce into the
  tree. Please review the attached patch.
 
  V-Li
  
  I'm attaching a revised patch that tries to improve some issues in
  the current version in the tree, incorporates your changes and Peter
  Volkov's (pva) patch about sftp URIs.
  
  
 
 if [[ ${EBZR_REPO_URI} == */* ]]; then
   repository=${EBZR_REPO_URI}/${EBZR_BRANCH}
 elif [[ -n ${EBZR_BRANCH} ]] ; then
   ...
 else
   ...
 fi
 
 If I see this correctly, this appends EBZR_BRANCH if there is a slash
 in the REPO_URI ... what kind of guess is this supposed to be? I
 think, the second test (append iff EBZR_BRANCH is set) should be
 sufficient.

 Not sure, though I will investigate (and likely drop it).

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
URL:http://www.gentoo.org/proj/en/lisp/, #gentoo-lisp on FreeNode

URL:http://www.faulhammer.org/


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Luca Barbato

Ryan Hill wrote:

On Mon, 23 Feb 2009 08:43:09 -0700
Steve Dibb bean...@gentoo.org wrote:


Richard Freeman wrote:

I still don't see why we need to be encoding metadata in filenames.
PERL doesn't care what a file extension is, python doesn't care,
bzip2 doesn't care, tar doesn't care, gzip doesn't care, and even
ld-linux.so doesn't care.  I'm sure that in at least some of these
cases they end up parsing parts of the file twice - once to figure
out what it is, and the second time to actually handle it.  I'm
actually hard pressed to think of any unix-based software that uses
the filename to store a mandatory file format versioning specifier
of some kind.


$ ls /usr/lib


ldconfig ?


I have to admit I'm in the same camp with Richard, and don't
understand the necessity.  I'm also opposed to creating arbitrary
suffixes to the ebuild extension, for cosmetic and compatibility
reasons.

Plus, I don't really grasp the whole we have to source the whole
ebuild to know the EAPI version argument.  It's one variable, in one
line. Can't a simple parser get that and go from there?


Not really.  Let's play Guess the EAPI. :o

1.
-
EAPI=1


2. (with myeclass.eclass containing EAPI=2)
-
EAPI=1
inherit myeclass


Invalid


-

3. (with myeclass.eclass containing EAPI=2)
-
EAPI=5
inherit myeclass


Invalid


So you see, it's not as easy as a grep command.  You need to source the
ebuild to know how things like inherit will affect the environment.
And without knowing the EAPI, you don't know which version of inherit to
call.


It it isn't invalid already...



(i hope i have this right.  feel free to call me names if i don't)


Names!

lu

--

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero




Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 21:51:11 +0100
Luca Barbato lu_z...@gentoo.org wrote:
  2. (with myeclass.eclass containing EAPI=2)
  -
  EAPI=1
  inherit myeclass
 
 Invalid

QA violation, but legal and a pain in the ass.

  3. (with myeclass.eclass containing EAPI=2)
  -
  EAPI=5
  inherit myeclass
 
 Invalid

QA violation, but legal and a pain in the ass.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ryan Hill
On Mon, 23 Feb 2009 20:54:38 +
Ciaran McCreesh ciaran.mccre...@googlemail.com wrote:

 On Mon, 23 Feb 2009 21:51:11 +0100
 Luca Barbato lu_z...@gentoo.org wrote:
   2. (with myeclass.eclass containing EAPI=2)
   -
   EAPI=1
   inherit myeclass
  
  Invalid
 
 QA violation, but legal and a pain in the ass.

I didn't think it was a brainy thing to do, but I can't find anything
saying it isn't allowed.  It probably shouldn't be.

   3. (with myeclass.eclass containing EAPI=2)
   -
   EAPI=5
   inherit myeclass
  
  Invalid
 
 QA violation, but legal and a pain in the ass.
 

Can we ban eclasses from setting EAPI?  Is there any case where it
would be sane?


-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 16:15:25 -0600
Ryan Hill dirtye...@gentoo.org wrote:
 Can we ban eclasses from setting EAPI?  Is there any case where it
 would be sane?

It's already banned from a QA perspective, but from a package manager
perspective people have done it in the past and possibly still do do
it, and the spec doesn't forbid it.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ryan Hill
On Mon, 23 Feb 2009 16:15:25 -0600
Ryan Hill dirtye...@gentoo.org wrote:

 On Mon, 23 Feb 2009 20:54:38 +
 Ciaran McCreesh ciaran.mccre...@googlemail.com wrote:
 
  On Mon, 23 Feb 2009 21:51:11 +0100
  Luca Barbato lu_z...@gentoo.org wrote:
2. (with myeclass.eclass containing EAPI=2)
-
EAPI=1
inherit myeclass
   
   Invalid
  
  QA violation, but legal and a pain in the ass.
 
 I didn't think it was a brainy thing to do, but I can't find anything
 saying it isn't allowed.  It probably shouldn't be.

Ah now i did.  

-- 
gcc-porting,  by design, by neglect
treecleaner,  for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


[gentoo-dev] [RFC] global useflags

2009-02-23 Thread Markus Meier
server15
custom-cflags 10
logrotate 9
gsm   9
semantic-desktop  9
webkit8
html  7
multislot 7
nautilus  7
audacious 7
demo  7
editor6
sound 6
phonon6
tools 6
pango 6
dbi   6
qt3support6
dxr3  6
web   6
net   5
music 5
smtp  5
irc   5
policykit 5
mp4   5
clisp 5
spamassassin  5
serial5
nfs   5
midi  5
pcsc-lite 5
zvbi  5
http  5


proposals:

custom-cflags: Build with user-specified CFLAGS (unsupported)
as custom-cxxflags has been added (w/o discussion here)

semantic-desktop: Semantic desktop allows for storage of digital
information and its metadata to allow the user to express his personal
mental models, making all in formation become intuitively accessible

still pending is the global gsm useflag, no answer so far from the
mobile herd in bug #254677.


Markus


signature.asc
Description: PGP signature


Re: [gentoo-dev] [RFC] global useflags

2009-02-23 Thread Josh Sled
Markus Meier mae...@gentoo.org writes:
 semantic-desktop: Semantic desktop allows for storage of digital
 information and its metadata to allow the user to express his personal
 mental models, making all in formation become intuitively accessible

I find this description pretty content-free and hand-wavy.  I usually
care to know what the concrete effect of a use flag is, to know if it's
something I want to enable, in terms of features provided and the
dependencies implied.

To that end, please allow me to suggest:

Cross-KDE support for file metadata indexing via nepomuk and soprano.

If you don't want to couple the message to those particular packages,
then maybe just reference the NEPOMUK project instead.

(Also, I note in passing the existing kde-base/pykde4 use.local.desc has
a tyop of Nemomuk.)

-- 
...jsled
http://asynchronous.org/ - a=jsled; b=asynchronous.org; echo $...@${b}


pgpiWIEaslsSS.pgp
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Richard Freeman

Ryan Hill wrote:

Richard Freeman wrote:

I'm
actually hard pressed to think of any unix-based software that uses
the filename to store a mandatory file format versioning specifier
of some kind.


$ ls /usr/lib



I was referring to a file FORMAT versioning scheme - not a file CONTENT 
versioning scheme.  The formats of all the files in /usr/lib are 
generally identical.  Where they vary it has nothing to do with their 
filenames.  The reason for the version in the filenames is that the 
content is versioned.


The dynamic linker doesn't need to consult the filename to figure out 
how to parse a shared object.  It only consults the filename to figure 
out which shared object is needed.  That is actually analogous to 
putting the package name/version in the ebuild filename.


In any case, I'm not trying to say that these issues absolutely prevent 
the adoption of GLEP 55.  It just leaves a sour taste in my mouth, and 
keeps nagging at me that there must be a better way.


I'd rather see the number of filename variations be kept to a minimum. 
Sure, if we were talking about a one-time change from ebuild to ebuild2 
and in five years a change to ebuild3 then that would be one thing.  It 
seems like we could be up to ebuild-kde4-3.2 in six months.


And I don't mean to suggest that I don't think that efforts would be 
made to keep things sensible.  It just seems like once we start down 
that road it will be hard to turn around if we don't like where we end up.




Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 18:47:07 -0500
Richard Freeman ri...@gentoo.org wrote:
 It seems like we could be up to ebuild-kde4-3.2 in six months.

Why on earth do people think that? Of all the crazy being thrown
around, this is the only one wearing a tutu.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Richard Freeman

Ciaran McCreesh wrote:

On Mon, 23 Feb 2009 18:47:07 -0500
Richard Freeman ri...@gentoo.org wrote:

It seems like we could be up to ebuild-kde4-3.2 in six months.


Why on earth do people think that? Of all the crazy being thrown
around, this is the only one wearing a tutu.



I suppose I'm exaggerating a little deliberately to make a point.  It 
isn't so much that I don't think that people designing the extensions 
won't use sense, but that we're still potentially facing multiple new 
file extensions per year.  Maybe not 15, but certainly 1-3.  That can 
add up fast.  If we had been doing this all along then we'd probably 
expect there to be upwards of 10-20 file extensions in portage today.


It just seems like it isn't the best solution.  You can get the same 
effect by just sticking something in a comment line a few lines into the 
ebuild in a fixed position.  Sure, the file might need to be read twice, 
but unless the reading takes place widely separated in time the file is 
going to be in the cache the second time around.  With proper caching 
you only need to scan files that have changed - we can't have that many 
daily commits, can we?


I'll probably refrain from commenting further - I trust the council to 
weigh all the options and go with whatever makes the most sense. 
However, I did want to make it clear that I don't think that the folks 
advocating this approach are out to release 47 EAPI releases per year or 
anything...




Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Ciaran McCreesh
On Mon, 23 Feb 2009 19:17:19 -0500
Richard Freeman ri...@gentoo.org wrote:
 It just seems like it isn't the best solution.  You can get the same 
 effect by just sticking something in a comment line a few lines into
 the ebuild in a fixed position.

No you can't. It doesn't work with existing package managers, and it
doesn't let you change name or version rules.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Jim Ramsay
Alistair Bush ali_b...@gentoo.org wrote:
 Tiziano Müller wrote:
  Instead of switching file extension every time the eapi is changed
  you could also increment it only when a new EAPI breaks sourcing
  the ebuild compared to the requirements of the prior EAPI.
  (This way you'd in fact split EAPI into a major- and a
  minor-version.)
 
 Doesn't that just add extra complexity for no gain.

Actually, I think there would be a huge gain.

The gain would be that suddenly all those who oppose glep-55 because
they're afraid the filename suffix will change too often will suddenly
have nothing to worry about.

For those who think glep-55 is the right thing to do, it really
*is* glep-55, but with a small caveat that we shouldn't just change the
filename extension for every single little feature enhancement.

-- 
Jim Ramsay
Gentoo/Linux Developer (rox,gkrellm,fluxbox,vim)



Re: [gentoo-dev] Re: Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Richard Freeman

Ciaran McCreesh wrote:

On Mon, 23 Feb 2009 19:17:19 -0500
Richard Freeman ri...@gentoo.org wrote:
It just seems like it isn't the best solution.  You can get the same 
effect by just sticking something in a comment line a few lines into

the ebuild in a fixed position.


No you can't. It doesn't work with existing package managers,


Agreed.  This would require some delay in implementation and would 
require users to have some minimal package manager version to handle 
major changes in a repository.


 and it

doesn't let you change name or version rules.



Neither does putting the EAPI in the filename as far as I can tell.  It 
isn't like you want to have ebuild filenames like:


foo-1.1.ebuild-\{EAPI\=1\ \;\ if\ \[\[\ \$PV\ =\ 2.6\ \]\]\ \;\ then\ 
EAPI\=2\ \;\ fi\}


Putting the EAPI in the filename forces it to be a rigid constant for 
the purposes of determining how to parse the file.  Putting the EAPI in 
a comment line does the same.  Both allow for dynamic manipulation of 
the variable at a later stage of parsing, but this is after the package 
manager has committed to sourcing the file in some particular manner. 
If anything you get more flexibility putting it inside the file since at 
least you can make it very long without clogging up command lines.




Re: [gentoo-dev] [RFC] global useflags

2009-02-23 Thread Nirbheek Chauhan
On Tue, Feb 24, 2009 at 4:52 AM, Josh Sled js...@asynchronous.org wrote:
 (Also, I note in passing the existing kde-base/pykde4 use.local.desc has
 a tyop of Nemomuk.)


Oh, sweet irony :)


-- 
~Nirbheek Chauhan



Re: [gentoo-dev] [RFC] global useflags

2009-02-23 Thread Jorge Manuel B. S. Vicetto
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Josh Sled wrote:
 Markus Meier mae...@gentoo.org writes:
 semantic-desktop: Semantic desktop allows for storage of digital
 information and its metadata to allow the user to express his personal
 mental models, making all in formation become intuitively accessible
 
 I find this description pretty content-free and hand-wavy.  I usually
 care to know what the concrete effect of a use flag is, to know if it's
 something I want to enable, in terms of features provided and the
 dependencies implied.
 
 To that end, please allow me to suggest:
 
 Cross-KDE support for file metadata indexing via nepomuk and soprano.
 
 If you don't want to couple the message to those particular packages,
 then maybe just reference the NEPOMUK project instead.
 
 (Also, I note in passing the existing kde-base/pykde4 use.local.desc has
 a tyop of Nemomuk.)

Fixed. Thanks for the heads up.


- --
Regards,

Jorge Vicetto (jmbsvicetto) - jmbsvicetto at gentoo dot org
Gentoo- forums / Userrel / Devrel / SPARC / KDE
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkmjafAACgkQcAWygvVEyAIgSQCfRXEBkfwJvFxkC0ReDPux2rr1
LmsAoJ9SrNE0pws6FsNxv1wrLcMeiUF7
=i+3r
-END PGP SIGNATURE-



Re: [gentoo-dev] [RFC] global useflags

2009-02-23 Thread Maciej Mrozowski
On Tuesday 24 of February 2009 00:22:39 Josh Sled wrote:

 To that end, please allow me to suggest:
 Cross-KDE support for file metadata indexing via nepomuk and soprano.

 If you don't want to couple the message to those particular packages,
 then maybe just reference the NEPOMUK project instead.

Then maybe:
Cross-KDE support for semantic search and information retrieval.

As for particular packages, there are more of them (strigi is quite important 
for example), so maybe it's better to not specify any of them as suggested.

 (Also, I note in passing the existing kde-base/pykde4 use.local.desc has
 a tyop of Nemomuk.)

Good catch, source of this issue was in metadata.xml in overlay.

-- 
regards
MM


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-dev] bash-4.0 regression heads up (escaped semicolons in subshells)

2009-02-23 Thread Mike Frysinger
On Sunday 22 February 2009 18:03:23 Dawid Węgliński wrote:
 On Sunday 22 of February 2009 23:39:11 Mike Frysinger wrote:
  On Sunday 22 February 2009 17:30:09 Dawid Węgliński wrote:
   On Sunday 22 of February 2009 00:27:10 Mike Frysinger wrote:
looks like bash-4.0 has broken semicolon escaping in subshells.  this
comes up when using find's -exec like we do in a few places in
eclasses: ls=$(find $1 -name '*.po' -exec basename {} .po \;);
shift you can work around the issue in a couple of ways:
 - quote the semicolon:
 ';')
 - use backticks
`find  \;`
   
i'll tweak the eclasses to use quoting for now
  
   FYI. Not only find's semicolons are affected. It also happens in case
   ;; construction.
 
  embedded case statements in $(...) subshells have always been broken.
  bash-4.0 is supposed to fix that.  if you have some code that is broken,
  please post it so i can push it upstream.

 It wasn't me who experienced that, but a user:

 13:50  diabel-   dir /usr/share/doc/wxGTK-2.8.9.1-r3
 13:50  diabel-
 /var/tmp/binpkgs/x11-libs/wxGTK-2.8.9.1-r3/temp/environment: line 2989:
 błąd składni przy nieoczekiwanym znaczniku `;;'
 13:50  diabel-
 /var/tmp/binpkgs/x11-libs/wxGTK-2.8.9.1-r3/temp/environment: line 2989: `  
  ;;' * * ERROR: x11-libs/wxGTK-2.8.9.1-r3 failed.

 All it states is syntax error near double semicolons.

this is probably the same issue i pointed out originally.  re-emerge bash and 
it should work.
-mike


signature.asc
Description: This is a digitally signed message part.


[gentoo-dev] http://bugs.gentoo.org/show_bug.cgi?id=232084

2009-02-23 Thread Andrew D Kirch
I was looking to do a workaround on a per compiler basis.
I'm looking at toolchain-funcs.eclass, and specifically
${gcc-fullversion}.  I've got a broken ebuild (dhcdbd) which requires
-U_FORTIFY_SOURCE to compile correctly with GCC 4.3.3.  But reading
tells me that I should not use this eclass to set compiler settings
directly.  Will this work, and other than the merit of the fix is there
a more desirable structure for such a solution?


inherit flag-o-matic toolchain-funcs


if [ ${gcc-fullversion} -eq 4.3.3 ] #(or whatever the 4.3.3
$gcc-fullversion} outputs)
then
append-flags -U_FORTIFY_SOURCE
fi

Thanks for the help.




Re: [gentoo-dev] Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)

2009-02-23 Thread Luca Barbato

Luca Barbato wrote:

Ciaran McCreesh wrote:

Because your proposal addresses none of the underlying problems which
GLEP 55 was created to solve.


let's get some numbers to have an idea of the dimension of the problem.

domino portage # wc -l /dev/shm/eapi_files.list
2854 /dev/shm/eapi_files.list

domino portage # ls *-*/*/*.ebuild | wc -l
25761

domino portage # grep -l EAPI eclass/*.eclass | wc -l
22

domino portage # ls eclass/*.eclass | wc -l
240

there aren't eclasses setting EAPI directly.

eapi is set either using EAPI=X or EAPI=X

domino portage # time grep EAPI *-*/*/*.ebuild  /dev/shm/eapi_files.list

real0m1.019s
user0m0.608s
sys 0m0.412s

domino portage # time (for a in *-*/*/*.ebuild*; do echo ${A##*.ebuild}; 
done)  /dev/null


real0m0.916s
user0m0.764s
sys 0m0.152s

domino portage # time emerge --regen  /dev/shm/regen

real0m9.308s
user0m7.648s
sys 0m1.664s


Restricting eapi so it could surely parsed using something as
complex as grep would and using a two stage parsing would increase to 
about 1/9


Using a dumb way to extract the eapi from extension seems to take 1/10

Is there any technical merit in putting eapi in the file extension while 
we could restrict the format the same way in file and have about the 
same, negligible, performance hit? (I used warm cache since you need the 
file anyway so you don't spend time to look it up twice or put it in 
cache twice)


Please come up with other numbers or saner implementations to compare.

lu

--

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero




Re: [gentoo-dev] http://bugs.gentoo.org/show_bug.cgi?id=232084

2009-02-23 Thread Mike Frysinger
On Tuesday 24 February 2009 00:57:25 Andrew D Kirch wrote:
 I was looking to do a workaround on a per compiler basis.
 I'm looking at toolchain-funcs.eclass, and specifically
 ${gcc-fullversion}.  I've got a broken ebuild (dhcdbd) which requires
 -U_FORTIFY_SOURCE to compile correctly with GCC 4.3.3.

it's broken whenever fortify source is used, but gcc-4.3.3 is more of an issue 
because it's on by default.  however, this flag should not go in any dhcdbd 
ebuild considering the fix posted by Magnus to that bug is clearly correct.

 But reading
 tells me that I should not use this eclass to set compiler settings
 directly.  Will this work, and other than the merit of the fix is there
 a more desirable structure for such a solution?

 inherit flag-o-matic toolchain-funcs

 if [ ${gcc-fullversion} -eq 4.3.3 ] #(or whatever the 4.3.3
 $gcc-fullversion} outputs)
 then
 append-flags -U_FORTIFY_SOURCE
 fi

i'll just address style/usage issues here rather than is this change even 
correct ...

-eq is for numeric values, not strings.  so you'd want:
[[ $(gcc-fullversion) == 4.3.3 ]]  append-cppflags -U_FORTIFY_SOURCE
-mike


signature.asc
Description: This is a digitally signed message part.