Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-21 Thread Paul de Vrieze
On Sunday 21 May 2006 05:44, Brian Harring wrote:
 So... where's the standard? :)
 Right, no doc yet that's official, thus at this juncture, what's
 there now (portage) is the effective standard.

 Said in the last thread, chunking out a formal EAPI=0 definition from
 the tree/portage implementation, tiz a good thing.  But until that's
 done (and folks agree it's the standard), portage (primary manager)
 rules, thus doc it out (as I've suggested to ciaran for the
 slot value and use/slot dep restrictions he's added) if you're after
 changing the existing definition.

 Not saying I like it, but it's the reality of current situation- the
 intention of the glep is to prevent lock in, and to keep the tree
 unified in terms of support (avoid fracturing of the env the tree has
 been written against), either a doc standard is created for EAPI=0, or
 portage defines the standard (since it's primary).

I have just committed my current revision. It includes some things about this. 
That the standard is not only the implementation, but also guidelines etc. 
This section is intended to convey that the maintainers of the primary 
package manager can define (keeping the gentoo processes into account) new 
extensions to the standard, or a new EAPI=1 version.

  The process should go like this:
 
  1. Standars are set (by the council or whatever).
  2. They are implemented in the official package manager.
  3. Other package managers follow suit.

 Council really shouldn't be involved sans big changes imo, and big
 changes imo should require gleps (both from an archive standpoint, and
 from fitting the council in via existing process of gleps).

I agree with this.

 One concern out of all of this is ensuring that their isn't
 ping/ponging back and forth as to which manager is 'official'; arms
 race in terms of features supported by each manager is a good thing
 imo, but need to keep that from causing chaos for devs in terms of
 changing standards.

The point indeed.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


pgpgGaeK6rzWV.pgp
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Ferris McCormick

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

I have not read this carefully.  There is a lot to work through.  At first 
reading, I like it a lot.


Regards,
Ferris

- --
Ferris McCormick (P44646, MI) [EMAIL PROTECTED]
Developer, Gentoo Linux (Devrel, Sparc)
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.2.2-ecc0.1.6 (GNU/Linux)

iD8DBQFEbxbHQa6M3+I///cRAo9yAJsEF/hxaLrztTnBlNH6I2ZE/pR5hACghqhY
DUyfxAlIDVdWBU70tre3nYg=
=tvyX
-END PGP SIGNATURE-
--
gentoo-dev@gentoo.org mailing list



Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Dan Meltzer

A secondary package manager is a package manager that instead of

directly aiming

at replacing  portage as  primary package manager.

What does it do instead?


The first restriction is that no packages in the tree must rely on

the secondary

package  manager. While packages  may provide  a level  of support

(while being

compatible  with  the  primary  package  manager)  this  may  not

result  in  a

significant increase  of features.


Why can a certain ebuild not DEPEND specifically on a third party
package manager?

I think you raise some good points in this email, however I think the
overall aim is flawed.  The package manager should be just as
switching as the compiler, the libc, the baselayout, or the kernel.
None of these require anywhere near as many hoops to jump through to
be supported in gentoo, and they all have their own fixes that need to
be made.  No changes should be made to the tree which directly impedes
the ability of the primary package manager to do its job, but at the
same time, no changes should be made which impede other package
managers from outperforming the primary package manager.  Forcing
package managers to stay even with all of portages ideosyncrocies is
just holding back new package managers from making progress.

On 5/20/06, Paul de Vrieze [EMAIL PROTECTED] wrote:


The promissed glep on package manager requirements. Please comment on it.
There are some parts that may be controversial (portage has in the past not
provided support for reverting to stable either), but please keep the
discussion on topic.

Paul

--
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


GLEP: 49
Title: Alternative Package Manager requirements
Version: $Revision: 2214 $
Last-Modified: $Date: 2006-05-20 14:51:41 +0200 (Sat, 20 May 2006) $
Author: Paul de Vrieze [EMAIL PROTECTED],
Status: Draft
Type: Standards Track
Content-Type: text/x-rst
Created: 18-May-2006
Post-History: 19-May-2006


Abstract


This GLEP describes four classes of package managers. What the requirements for
them are, and what support they can receive.


Motivation
==

To set a standard that package managers that seek gentoo project approval and
support should adhere to.


Rationale
=

Currently portage is  showing its age. The  code of portage does not  seem to be
salvageable for new  versions. There are two known  alternative package managers
that claim a  level of portage compatibility. These  alternatives are `paludis`_
and `pkgcore`_.  Before these alternatives are developed further, a set of rules
should be created to level the  playing field and ensuring that decisions can be
made clearly.


Backwards Compatibility
===

Not a problem for this GLEP. There is no previous standard as the issue did not
exist before. This GLEP is to prevent future compatibility issues.


Categories of package managers
==

We distinguish four categories of package managers. While a package manager can
transition from one category to another, it can not be in two categories at the
same time. It can be in a state of transition though.

*Primary Package Manager*
   There  is one primary  package manager.  Currently this  position is  held by
   portage.  The primary  package manager  is assigned  by the  council  and all
   packages in the official tree must be installable by a useable version of the
   primary package manager.

*Candidate Primary Package Managers*
   A candidate  Primary Package Manager does  aim, or show an  aim, at replacing
   the current primary package manager. At  a point where the package manager is
   deemed stable  a decision  must be made  whether this package  manager should
   become the  new primary package manager.  At that point  the `primary package
   manager transition phase`_ starts.

*Secondary Package Managers*
   A  secondary package  manager is  a package  manager that  coexists  with the
   primary package  manager, while  not aiming to  replace it.  Package managers
   that would fall into this category are:

   - Experimental package managers. Package managers  whose purpose it is to try
 out new features.

   - Focussed package  managers. For example  a package manager that  allows the
 use of rpm formatted binary packages would be an example.


*Third Party Package Managers*
   A third party  package manager is any package  manager that lacks recognition
   from gentoo as being in any other category. A third party package manager may
   or may not have a gentoo package, but is not supported beyond that.


Package manager requirements


As  a  package  manager is  in  a  state  of  higher  support there  are  higher
requirements to it. The purpose of  these requirements is to ensure the unity of
the distribution and the package tree.  For this purpose it is needed that there
is only one primary package manager.


primary package manager requirements

Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Thomas Cort
On Sat, 20 May 2006 14:54:18 +0200
Paul de Vrieze [EMAIL PROTECTED] wrote:
 *Primary Package Manager*  
There  is one primary  package manager.

Gentoo has always been about choice, could you explain what is the rationale 
behind having only one primary package manager?

 All ebuilds in the tree must function with the primary package
 manager.

I definitely see this is as a requirement. One thing I am wondering is, who is 
responsible for testing the over 24,000 ebuilds in the tree to make sure that 
they work with the new package manager? Is it the package manager team, arch 
teams, package/herd maintainers, arch/herd testers, or others?

 The primary package manager is maintained on official gentoo infrastructure,
 under control of gentoo developers.

I don't really see this as a requirement. Many Linux distributions use package 
managers that they don't have direct control over. Ubuntu uses apt, Mandrake 
uses rpm, etc.

~tcort


pgp64t2IttlC2.pgp
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Stephen Bennett
I agree with the basic intent here, but remain unconvinced that this is
the best way to solve the problems at hand. See below for comments on
particular parts, and for what I believe could be a more elegant
solution. It's not a complete proposal and will be rather rough around
the edges, being more of a brain dump at the moment, but as far as I
can see it addresses all the issues that need to be.


On Sat, 20 May 2006 14:54:18 +0200
Paul de Vrieze [EMAIL PROTECTED] wrote:

 Backwards Compatibility
 ===

 Not a problem for this GLEP. There is no previous standard as the
 issue did not exist before. This GLEP is to prevent future
 compatibility issues.

There's a strong argument for saying that converting Portage to fit
the proposed standards for a primary package manager is a backwards
compaibility consideration. Or, with my below suggestion, making sure
that all existing ebuilds conform to the formalised ebuild
specification.

 The primary package  manager is the package manager that  sets the
 standards for the  tree. All  ebuilds  in the  tree  must function
 with  the primary  package manager. As  the primary package manager
 sets  the standard it does  not have to maintain compatibility with
 other package managers.

The current 'Portage defines the tree format' is IMO a cause of a lot
of problems at the moment. It would be better, I think, to define in a
package-manager-agnostic document just what the current ebuild format
(EAPI 0) means. If at any point in the future the primary package
manager changes in what it supports and/or requires, a new EAPI spec is
written. The council, or some other body, can then define which EAPI
formats may be used by ebuilds in the tree.

 The primary package manager is maintained on official gentoo
 infrastructure, under control of gentoo developers.

Reasoning behind this requirement? I can understand the sentiment, but
if gentoo developers have a sufficient degree of control over the
codebase, does it matter where it is hosted? If the worst comes to the
worst, require that any supported package manager be licensed under
GPL-2 and a group of Gentoo developers can simply pick up the latest
version available and fork if it is required. 


 candidate primary package manager requirements
 
 
 A  candidate  primary  package  manager  aims to  replace  the
 primary  package manager.  The council  is responsible  for deciding
 whether this  is  done. The requirements are  there to ensure that it
 is actually possible  to transition a candidate primary package
 manager into the primary package manager.

To throw out a potentially controversial question: is there any reason
behind the implicit assumption that there can only be one fully
supported primary package manager? If, as I suggested above, the ebuild
format and environment is formally defined in such a manner, it should
be entirely possible to support two or more alternative package
managers. Currently this would be impractical at best because of the
possibility of ebuilds working with one and not the other, but with a
formal specification of the ebuild environment it becomes possible to
define in such a case whether it is a package manager bug or whether
the ebuild is making assumptions that are not valid according to the
specification.

 First of all,  there must exist a  transition path. This means that
 the on disk data of  the primary package manager  can be used  by (or
 converted to  a format usable by) the candidate primary package
 manager.

This requirement seems perfectly reasonable.

 Second, there  must be a test  path. It must  be possible for the
 developers to test out  the candidate primary package  manager on
 their  working systems. This means that  the transition path  must
 exist. This  also means that there  are no serious obstacles for
 reverting to the current primary package manager.

It strikes me that this, as well as the next requirement, can easily be
achieved by chrooting, regardless of any compatibility or lack thereof
between the two package managers.

 Fourth, there must  be support. This means that the  package manager
 is actively maintained  under  control  of  gentoo.  If  it  is  not
 maintained  on  gentoo infrastructure, the  means must be there  to
 move the package  manager, with its change history, to gentoo
 infrastructure.  This means that it must be maintained on a  gentoo
 supported versioning system,  or on a version  system whose history
 can be converted to a gentoo supported versioning system.

Define under control of gentoo. Also see above comment regarding
Gentoo infrastructure.

 A secondary package manager is a package manager that instead of
 directly aiming at replacing  portage as  primary package manager.  As
 such a  secondary package manager does not set  the standard on the
 tree, but follows  the standard set by the primary package manager.

Can't follow the meaning in the first sentence. 

Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Paul de Vrieze
On Saturday 20 May 2006 15:47, Dan Meltzer wrote:
 A secondary package manager is a package manager that instead of directly
 aiming at replacing  portage as  primary package manager.

 What does it do instead?

I've just committed a new revision, but it cooperates. A slip up on my part.

 The first restriction is that no packages in the tree must rely on the
 secondary package  manager. While packages  may provide  a level  of
 support (while being compatible  with  the  primary  package  manager) 
 this  may  not result  in  a significant increase  of features.

 Why can a certain ebuild not DEPEND specifically on a third party
 package manager?

Basically if an official ebuild requires a third party package manager, this 
means that gentoo has a requirement on that package manager. If such a 
package manager at the same time offers support for all packages that the 
primary package manager supports, this means that in fact users will consider 
this secondary package manager to be their primary package manager. This 
leads to a decision by default as the council can at such a point only rubber 
stamp things. My aim is to make things such that the council can still make a 
real decision.

 I think you raise some good points in this email, however I think the
 overall aim is flawed.  The package manager should be just as
 switching as the compiler, the libc, the baselayout, or the kernel.
 None of these require anywhere near as many hoops to jump through to
 be supported in gentoo, and they all have their own fixes that need to
 be made.  No changes should be made to the tree which directly impedes
 the ability of the primary package manager to do its job, but at the
 same time, no changes should be made which impede other package
 managers from outperforming the primary package manager.  Forcing
 package managers to stay even with all of portages ideosyncrocies is
 just holding back new package managers from making progress.

A package manager is not a compiler. To put it in a compiler setting, imagine 
that only a C or a C++ compiler can be installed at one point. The primary 
compiler for all files is C. At some point someone comes around and says. 
I've got this very nice compiler and it uses the C++ language that is more or 
less compatible with C. Then some code maintainers run of and use all the 
additional features of C++. If this code is then to be a consistent whole, 
this means that all code must be compiled with this C++ compiler. In effect 
replacing C as default language by C++.

It is very hard to revert back to C from C++. The leaders of the group had no 
say in whether it was good to go to C++ (maybe the compilation time is a 
serious issue), but have to accept it at this point because keeping the old C 
compiler is a race long lost.

--

I do not think that alternative package managers should be limited in what 
they do. What I think is that their additional features should not be used in 
the official tree (overlays is another point) to avoid the situation where 
the council can no longer make the decision to go for the better package 
manager.

There are many changes that can be made without hitting this problem. Multilib 
systems can work in such a way that portage just sees it as one package while 
the multilib package manager knows that it is a package consisting of 3 parts 
(32bit part, shared part, and 64 bit part). It is also possible to have a 
functionally equivalent package database that has a higher speed, or no 
longer needs a cache, than the portage compatible one.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


pgpJzZ0bXo3Kp.pgp
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Paul de Vrieze
On Saturday 20 May 2006 11:51, Thomas Cort wrote:
 On Sat, 20 May 2006 14:54:18 +0200

 Paul de Vrieze [EMAIL PROTECTED] wrote:
  *Primary Package Manager*
 There  is one primary  package manager.

 Gentoo has always been about choice, could you explain what is the
 rationale behind having only one primary package manager?

Ok, I'll go along the various situations with two primary package managers 
that can exist (it has to do with network effects):

- There are two primary package managers, A and B. Package manager B accepts 
ebuilds that package manager A does not accept. At this point package manager 
B is the most useful. As there is no problem with using package manager B, 
all authors who need package manager B features use it. They forget about 
package manager A. As a result, it will not be long before a significant part 
of the tree does no longer work with package manager A. It is only a matter 
of time before the (often highly complex, and in need of such features) core 
packages that everyone needs is in this set. Effectively obsoleting package 
manager A.

- There are two primary package managers, C and D. Each one supports features 
the other one doesn't. While this situation seems different, it actually 
isn't that different. In the beginning they each have 50% of the packages 
that are not usable by both. At some point this 50% will change. At that time 
ebuild authors have to choose when they need a new feature. In most cases 
they will choose for that package manager (D) that is used by most people. 
This increases the incentives for users to use package manager D. This again 
leads more ebuild authors into using package manager D, etc. Again leading to 
one package manager to be obsoleted.

The situations described above are what is called a network effect. They show 
why everyone uses internet instead of some people using compuserve, some 
people america online, some people internet, and yet some other people still 
using bbs systems. It also explains why windows is by nature a monopoly and 
why linux has such problems being an alternative operating system (see the 
interaction between features, compatibility and amount of users).

  All ebuilds in the tree must function with the primary package
  manager.

 I definitely see this is as a requirement. One thing I am wondering is, who
 is responsible for testing the over 24,000 ebuilds in the tree to make sure
 that they work with the new package manager? Is it the package manager
 team, arch teams, package/herd maintainers, arch/herd testers, or others?

The other package manager team is responsible for initial testing. At a point 
where a package manager is accepted as candidate replacement or secondary 
package manager, it is acceptable that bugs are filed against packages that 
do not work with the other package manager. If they are caused by the 
standard (written standard, not things that are accepted by the primary by 
accident) not being accepted by the secondary or candidate replacement 
package manager this is a bug on that package manager, otherwise on the 
violating package. For a secondary package manager this only, when its usage 
makes sense on the package in the first place.

  The primary package manager is maintained on official gentoo
  infrastructure, under control of gentoo developers.

 I don't really see this as a requirement. Many Linux distributions use
 package managers that they don't have direct control over. Ubuntu uses apt,
 Mandrake uses rpm, etc.

Those are binary distributions. Even they have extensions in their own package 
managers. Binary distribution is easier than from source. One of the 
strengths of Gentoo is formed by the package manager. If the package manager 
is out of control of gentoo, this means that Gentoo no longer has control 
over its future or its features.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


pgpyE9SbwJp4b.pgp
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Alec Warner

Paul de Vrieze wrote:
The promissed glep on package manager requirements. Please comment on it. 
There are some parts that may be controversial (portage has in the past not 
provided support for reverting to stable either), but please keep the 
discussion on topic.


Paul




s/primary/official/g

This primary business is silly IMHO.  GCC is Gentoo's official compiler, 
 baselayout is the official init system, etc...


There is precedent here, and you are ignoring it.

Basically this whole GLEP is a reactive farse.  I realize thats not your 
intention, you seriously want a defined manner in which many package 
managers can live.  However reading the GLEP it seems to be built 
completely against Paludis; stacking the deck as it were.  However I 
left other comments below ;)








[Gentoo] http://www.gentoo.org/ 	[*Gentoo Linux Home 
http://www.gentoo.org/*] [*GLEP Index 
http://www.gentoo.org/proj/en/glep*] [*GLEP Source 
http://www.gentoo.org/proj/en/glep/glep-0049.txt*]


GLEP:   49
Title:  Alternative Package Manager requirements
Version:2214
Last-Modified:	2006-05-20 14:51:41 +0200 (Sat, 20 May 2006) 
http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0049.txt?cvsroot=gentoo 


Author: Paul de Vrieze pauldv at gentoo.org,
Status: Draft
Type:   Standards Track
Content-Type:   text/x-rst glep-0002.html
Created:18-May-2006
Post-History:   19-May-2006



Contents

* Abstract #abstract
* Motivation #motivation
* Rationale #rationale
* Backwards Compatibility #backwards-compatibility
* Categories of package managers #categories-of-package-managers
* Package manager requirements #package-manager-requirements
  o primary package manager requirements
#primary-package-manager-requirements
  o candidate primary package manager requirements
#candidate-primary-package-manager-requirements
  o secondary package manager requirements
#secondary-package-manager-requirements
  o third party package manager requirements
#third-party-package-manager-requirements
* transition phases #transition-phases
  o primary package manager transition phase
#primary-package-manager-transition-phase
  o Secondary package manager to candidate primary package
manager transition

#secondary-package-manager-to-candidate-primary-package-manager-transition
  o Third party to other transition
#third-party-to-other-transition
* References #references
* Copyright #copyright


  Abstract #id7

This GLEP describes four classes of package managers. What the 
requirements for them are, and what support they can receive.



  Motivation #id8

To set a standard that package managers that seek gentoo project 
approval and support should adhere to.



  Rationale #id9

Currently portage is showing its age. The code of portage does not seem 
to be salvageable for new versions. There are two known alternative 
package managers that claim a level of portage compatibility. These 
alternatives are paludis http://paludis.berlios.de/ [1] #id1 and 
pkgcore http://gentooexperimental.org/~ferringb/bzr/pkgcore/ [2] 
#id3. Before these alternatives are developed further, a set of rules 
should be created to level the playing field and ensuring that decisions 
can be made clearly.



  Backwards Compatibility #id10

Not a problem for this GLEP. There is no previous standard as the issue 
did not exist before. This GLEP is to prevent future compatibility issues.



If there is Official and 'everything else I think this whole section 
can be dropped.



  Categories of package managers #id11

We distinguish four categories of package managers. While a package 
manager can transition from one category to another, it can not be in 
two categories at the same time. It can be in a state of transition though.


/Primary Package Manager/
There is one primary package manager. Currently this position is
held by portage. The primary package manager is assigned by the
council and all packages in the official tree must be installable by
a useable version of the primary package manager.
/Candidate Primary Package Managers/
A candidate Primary Package Manager does aim, or show an aim, at
replacing the current primary package manager. At a point where the
package manager is deemed stable a decision must be made whether
this package manager should become the new primary package manager.
At that point the primary package manager transition phase
#primary-package-manager-transition-phase starts.
/Secondary Package Managers/

A secondary package manager is a package manager that coexists with
the primary package manager, while not aiming to replace it. Package
managers 

Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Marius Mauch
On Sat, 20 May 2006 15:41:37 +0100
Stephen Bennett [EMAIL PROTECTED] wrote:

  The primary package  manager is the package manager that  sets the
  standards for the  tree. All  ebuilds  in the  tree  must function
  with  the primary  package manager. As  the primary package manager
  sets  the standard it does  not have to maintain compatibility with
  other package managers.
 
 The current 'Portage defines the tree format' is IMO a cause of a lot
 of problems at the moment. It would be better, I think, to define in a
 package-manager-agnostic document just what the current ebuild format
 (EAPI 0) means. If at any point in the future the primary package
 manager changes in what it supports and/or requires, a new EAPI spec
 is written. The council, or some other body, can then define which
 EAPI formats may be used by ebuilds in the tree.

Full ACK on this one, though EAPI itself is insufficient, it would only
define the ebuild format, but you also have to look at the repo itself
(see past -portage-dev discussions about this), e.g. for the Manifest
or profile formats.
It's not that easy to conform to a spec that doesn't really exist
(unless you consider the implementation as spec).

Marius

-- 
Public Key at http://www.genone.de/info/gpg-key.pub

In the beginning, there was nothing. And God said, 'Let there be
Light.' And there was still nothing, but you could see a bit better.


signature.asc
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Paul de Vrieze
On Saturday 20 May 2006 19:45, Marius Mauch wrote:
 On Sat, 20 May 2006 15:41:37 +0100

 Stephen Bennett [EMAIL PROTECTED] wrote:
   The primary package  manager is the package manager that  sets the
   standards for the  tree. All  ebuilds  in the  tree  must function
   with  the primary  package manager. As  the primary package manager
   sets  the standard it does  not have to maintain compatibility with
   other package managers.
 
  The current 'Portage defines the tree format' is IMO a cause of a lot
  of problems at the moment. It would be better, I think, to define in a
  package-manager-agnostic document just what the current ebuild format
  (EAPI 0) means. If at any point in the future the primary package
  manager changes in what it supports and/or requires, a new EAPI spec
  is written. The council, or some other body, can then define which
  EAPI formats may be used by ebuilds in the tree.

 Full ACK on this one, though EAPI itself is insufficient, it would only
 define the ebuild format, but you also have to look at the repo itself
 (see past -portage-dev discussions about this), e.g. for the Manifest
 or profile formats.
 It's not that easy to conform to a spec that doesn't really exist
 (unless you consider the implementation as spec).

I have no problem with this. In principle it is unavoidable that a package 
manager deviates in certain points with the actual standard. This is already 
true for portage. While there is no formal standard, a partial description 
can be found in the various authoring guides. The point of the part in the 
glep is more to say that the maintainers of the primary package manager have 
control over the format. I will add text to this effect to the GLEP.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net


pgpnVVa4IO6v7.pgp
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Paul de Vrieze
On Saturday 20 May 2006 18:00, Alec Warner wrote:
 Paul de Vrieze wrote:
  The promissed glep on package manager requirements. Please comment on it.
  There are some parts that may be controversial (portage has in the past
  not provided support for reverting to stable either), but please keep the
  discussion on topic.
 
  Paul

 s/primary/official/g

 This primary business is silly IMHO.  GCC is Gentoo's official compiler,
   baselayout is the official init system, etc...

There might be multiple official package manager. Only one has the lead 
position from a gentoo point of view. Please also be aware that the term 
primary is from the point of view of gentoo, not from user point of view. 
This GLEP does not mean that there can not be multiple package managers that 
could play the role of primary package manager for a system.


 There is precedent here, and you are ignoring it.

 Basically this whole GLEP is a reactive farse.  I realize thats not your
 intention, you seriously want a defined manner in which many package
 managers can live.  However reading the GLEP it seems to be built
 completely against Paludis; stacking the deck as it were.  However I
 left other comments below ;)

I am not against paludis at all. I want to set the playing field on which 
alternate package managers can thrive. This way there would be a way in which 
package managers can live along eachother and better gentoo. I realise this 
should have been written earlier, preventing wasted efforts, and I am sorry I 
did not do it before.

On design quality I'd like to say that design quality is not only formed by 
how well the design is on itself. It is even much more how well a system fits 
in its environment. Ignoring what is already there is the easy way out. A way 
in which a transition can be made without breaking what is there, and still 
ensuring a good design after the transition. That is really great design.

I'll react on your comments below.

 
  Not a problem for this GLEP. There is no previous standard as the issue
  did not exist before. This GLEP is to prevent future compatibility
  issues.

 If there is Official and 'everything else I think this whole section
 can be dropped.

The thing is that there are possibilities in between them. They might not be 
used, but we owe it to current and future package manager designers to allow 
this possibility. A secondary package manager that installs rpm packages 
(perhaps for LSB compatibility) can very well be official, but not even able 
to set the standard on packages (hell it uses rpm's).

cut
  As a package manager is in a state of higher support there are higher
  requirements to it. The purpose of these requirements is to ensure the
  unity of the distribution and the package tree. For this purpose it is
  needed that there is only one primary package manager.

 One official package manager, but many can be used.

Certainly true. I've added something to this extend to the next revision.


  primary package manager requirements #id13
 
  The primary package manager is the package manager that sets the
  standards for the tree. All ebuilds in the tree must function with the
  primary package manager. As the primary package manager sets the
  standard it does not have to maintain compatibility with other package
  managers.

 This outlook inhibits innovation in the tree.  I agree with stephen, in
 that the tree should set the standard.  If you want a new feature in the
 tree, I think a proposal would be good ( not a GLEP necessarily, but a
 tree proposal ).  I think crap goes in that is not discussed in advance...

 One could say, the official package manager sets the standard such that
 someone needs to have support in the package manager for it to operate
 properly.

Look at this way. It is only a standard when it is supported in a testing 
version of the primary package manager.

 However in many industries you find the opposite.  First a standard is
 set, then a prototype (reference board, whathaveyou) is created, then it
   is released for companies to use.  Here you want the opposite.  The
 feature as an idea is created, portage implements it, then the other
 package managers copy it?  Sounds silly ;)

Package managers may implement anything they want. Packages (not package 
managers) may only use it when the primary package manager supports it. I 
have got clarified it in the new revision that not only the implementation 
determines the standard, but also the existing guidelines, qa tools, etc. As 
example paludis would be perfectly right in not supporting all kinds of 
toplevel magic. Even though portage will not complain it is accepted as 
something that must not be done.


  The primary package manager does however have the responsibility that it
  must be very stable. The primary package manager must maintain
  compatibility with old versions of itself for extended periods of time.
  This compatibilty time is set by the council. The suggested time would
  

Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Thomas Cort
On Sat, 20 May 2006 17:11:57 +0200
Paul de Vrieze [EMAIL PROTECTED] wrote:
   The primary package manager is maintained on official gentoo
   infrastructure, under control of gentoo developers.
 
  I don't really see this as a requirement. Many Linux distributions use
  package managers that they don't have direct control over. Ubuntu uses apt,
  Mandrake uses rpm, etc.
 
 Those are binary distributions. Even they have extensions in their own 
 package 
 managers. Binary distribution is easier than from source. One of the 
 strengths of Gentoo is formed by the package manager. If the package manager 
 is out of control of gentoo, this means that Gentoo no longer has control 
 over its future or its features.

I definitely agree that Gentoo needs a team of people to deal with the primary 
package manager, it is one of the most important tools in a Linux system. It is 
especially important in Gentoo where the package manager is, at this point in 
time, required to install a standard desktop system. I disagree that the 
package manager needs to be directly maintained by Gentoo. Since Gentoo will 
never depend upon a piece of non-Free software[1], it is safe to assume that 
the package manager is Free software (aka open source). Because of this, we 
will never be locked-in, helpless, or under the control of an external project. 
If we dislike the direction in which it is going or want to add our own 
features, then we are free to do so either by submitting patches upstream, 
adding our own custom gentoo patches to the stock sources, or by forking the 
project entirely.

So what I suggest is the following:

While it is desirable that the primary package manager be maintained on 
official gentoo infrastructure, under the control of gentoo developers, it is 
not required. During the path to becoming the primary package manager, the 
package manager maintainers must be asked if they would like their project to 
be an official Gentoo project. The package manager maintainers have the right 
to refuse such an offer if there is a team of at least 3 Gentoo developers that 
understand the package manager source code and are willing to deal with bugs, 
testing, feature enhancements, modifications, and integration.

I hope the above is an acceptable compromise. It aims at making the project an 
official Gentoo project while still allowing package managers that aren't under 
Gentoo's direct control. In that case there are still Gentoo developers who 
have a handle on the code and can make any modifications / enhancements / 
feature changes that are required by Gentoo.

[1] http://www.gentoo.org/main/en/contract.xml


pgpMG26YbC1mC.pgp
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Georgi Georgiev
Just two points:

- standards should not be set by the primary package manager
- the primary package manager does not have to be developed by Gentoo.

More about it below:

maillog: 20/05/2006-14:54:18(+0200): Paul de Vrieze types
 The primary package  manager is the package manager that  sets the
 standards for the  tree.  All  ebuilds  in the  tree  must function
 with  the primary  package manager.  As  the primary package manager
 sets  the standard it does  not have to maintain compatibility with
 other package managers.

I pesonally hate the way this sounds. It implies that the package
manager comes before the standards while it should be the other way
around. Plus, it would not solve the main problem -- that there are no
set standards for the tree. You accept the GLEP like this and there will
continue to be no standards.

The process should go like this:

1. Standars are set (by the council or whatever).
2. They are implemented in the official package manager.
3. Other package managers follow suit.

Take the application servers as a good example. You have Java Servlet
Technology, and JavaServer Pages Technology. So far, so good. These are
developed by Sun. And you also have Apache Tomcat which is the official
reference implementation.  So you have the standards set by Sun, and you
have an open community implementing them in the official container
*later*. And pay attention that these are not maintained by the same
organization.

And what about the web. You have the W3C that sets the standards for web
pages. And you have no single browser to implement them all. So, in
order for a package manager to be recognized by Gentoo it should not
implement *all* standards. I.e. if you have news delivered with the
tree, you could support a package manager that cannot read the news as
primary.  After all this is not a major feature and does not contradict
All ebuilds should work with the primary package manager. And you can
have a separate news reader the cooperates with the primary package
manager or not.

-- 
\Georgi Georgiev   \  Ignorance is when you don't know anything  \
/ [EMAIL PROTECTED]/  and somebody finds it out. /
\  http://www.gg3.net/ \ \


pgpaPJU9FXtoj.pgp
Description: PGP signature


Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements

2006-05-20 Thread Brian Harring
On Sun, May 21, 2006 at 12:10:40PM +0900, Georgi Georgiev wrote:
 Just two points:
 
 - standards should not be set by the primary package manager
 - the primary package manager does not have to be developed by Gentoo.
 
 More about it below:
 
 maillog: 20/05/2006-14:54:18(+0200): Paul de Vrieze types
  The primary package  manager is the package manager that  sets the
  standards for the  tree.  All  ebuilds  in the  tree  must function
  with  the primary  package manager.  As  the primary package manager
  sets  the standard it does  not have to maintain compatibility with
  other package managers.
 
 I personally hate the way this sounds. It implies that the package
 manager comes before the standards while it should be the other way
 around. Plus, it would not solve the main problem -- that there are no
 set standards for the tree. You accept the GLEP like this and there will
 continue to be no standards.

snipping lots of good reasons about why implementation should not 
define standards

So... where's the standard? :)
Right, no doc yet that's official, thus at this juncture, what's 
there now (portage) is the effective standard.

Said in the last thread, chunking out a formal EAPI=0 definition from 
the tree/portage implementation, tiz a good thing.  But until that's 
done (and folks agree it's the standard), portage (primary manager) 
rules, thus doc it out (as I've suggested to ciaran for the 
slot value and use/slot dep restrictions he's added) if you're after 
changing the existing definition.

Not saying I like it, but it's the reality of current situation- the 
intention of the glep is to prevent lock in, and to keep the tree 
unified in terms of support (avoid fracturing of the env the tree has 
been written against), either a doc standard is created for EAPI=0, or 
portage defines the standard (since it's primary).


 The process should go like this:
 
 1. Standars are set (by the council or whatever).
 2. They are implemented in the official package manager.
 3. Other package managers follow suit.

Council really shouldn't be involved sans big changes imo, and big 
changes imo should require gleps (both from an archive standpoint, and 
from fitting the council in via existing process of gleps).

One concern out of all of this is ensuring that their isn't 
ping/ponging back and forth as to which manager is 'official'; arms 
race in terms of features supported by each manager is a good thing 
imo, but need to keep that from causing chaos for devs in terms of 
changing standards.

~harring


pgpa1x9wBpjMZ.pgp
Description: PGP signature