Re: Essential [Re: Switching /bin/sh to dash (part two)]

2009-07-22 Thread Sven Joachim
On 2009-07-22 18:06 +0200, Giacomo A. Catenazzi wrote:

> mawk is alway installed (required and a dependency of an essential package).

Wrong, you can easily remove mawk if you like, as long as you have
another package that provides awk:

,
| % LANG=C aptitude -s remove mawk
| Reading package lists... Done
| Building dependency tree   
| Reading state information... Done
| Reading extended state information  
| Initializing package states... Done
| Reading task descriptions... Done  
| The following packages will be REMOVED:
|   mawk 
| 0 packages upgraded, 0 newly installed, 1 to remove and 22 not upgraded.
| Need to get 0B of archives. After unpacking 233kB will be freed.
| Would download/install/remove packages.
`

But you cannot remove _all_ packages providing awk: 

,
| % LANG=C aptitude -s remove mawk gawk original-awk
| Reading package lists... Done
| Building dependency tree   
| Reading state information... Done
| Reading extended state information  
| Initializing package states... Done
| Reading task descriptions... Done  
| The following packages are BROKEN:
|   base-files dictfmt tla 
| The following packages will be REMOVED:
|   gawk mawk original-awk 
| 0 packages upgraded, 0 newly installed, 3 to remove and 22 not upgraded.
| Need to get 0B of archives. After unpacking 2466kB will be freed.
| The following packages have unmet dependencies:
|   base-files: PreDepends: awk which is a virtual package.
|   tla: Depends: gawk but it is not installable
|   dictfmt: Depends: gawk but it is not installable
| The following actions will resolve these dependencies:
| 
| Keep the following packages at their current version:
| gawk [1:3.1.6.dfsg-3 (unstable, now)]
| 
| Score is -9939
| 
| Accept this solution? [Y/n/q/?] q
| Abandoning all efforts to resolve these dependencies.
| Abort.
`

Sven


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: Essential [Re: Switching /bin/sh to dash (part two)]

2009-07-22 Thread Russ Allbery
"Giacomo A. Catenazzi"  writes:
> Russ Allbery wrote:

>> awk is essential.  Specific awk implementations are not, but the
>> interface is essential.  This is something that we've discussed many
>> times over the years and I'm absolutely certain that statement is
>> correct.

> awk is a virtual package, so it could not be essential. Virtual packages
> have not package flags.

I'm not sure what I can say here other than "you're wrong."

-- 
Russ Allbery (r...@debian.org)   


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: Essential [Re: Switching /bin/sh to dash (part two)]

2009-07-22 Thread Giacomo A. Catenazzi

Russ Allbery wrote:

"Giacomo A. Catenazzi"  writes:

Russ Allbery wrote:



libc is essential from a Policy perspective.  It's just not marked that
way in the packaging system in case the SONAME changes, but it's
essential in the same way that awk is.  Note that dependencies on awk
are not required (and indeed are a Lintian warning).



No! ;-)  Unfortunately "essential" has two meanings:



- packages which are always required on every Debian system.
  - note: there is also the priority "Required"


Which is not the same thing.


  - note: mawk has priority required, it is not essential,
  but an essential package (base-files) predepends on it.


awk is essential.  Specific awk implementations are not, but the interface
is essential.  This is something that we've discussed many times over the
years and I'm absolutely certain that statement is correct.


awk is a virtual package, so it could not be essential. Virtual packages
have not package flags.

mawk is alway installed (required and a dependency of an essential package).
mawk provides awk, but mawk is not essential.




- package who should not be written in the dependency list (but
  on versioned dependencies).


awk should not be written into the dependency list, because it is
essential.


not with the "essential flag"


so if we replace mawk with gawk (a trully virtual example) we know where
to test the changes (because it not essential by the second rule).


Not if you need to check all the packages that depend on awk.


hmm. Your sentence is not so good ;-)  Do you mean "depend implicitly"?


I think the best way to resolve the confusion is for you to bring your
internal interpretation of essential in line with the definition the rest
of the project uses.  :)


Maybe. But now you enlarged the interpretation of 3.8 with indirect essential
packages ;-)  "awk" has no explicit "Essential" flag!

ciao
cate


--
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: Essential [Re: Switching /bin/sh to dash (part two)]

2009-07-22 Thread Russ Allbery
"Giacomo A. Catenazzi"  writes:
> Russ Allbery wrote:

>> libc is essential from a Policy perspective.  It's just not marked that
>> way in the packaging system in case the SONAME changes, but it's
>> essential in the same way that awk is.  Note that dependencies on awk
>> are not required (and indeed are a Lintian warning).

> No! ;-)  Unfortunately "essential" has two meanings:

> - packages which are always required on every Debian system.
>   - note: there is also the priority "Required"

Which is not the same thing.

>   - note: mawk has priority required, it is not essential,
>   but an essential package (base-files) predepends on it.

awk is essential.  Specific awk implementations are not, but the interface
is essential.  This is something that we've discussed many times over the
years and I'm absolutely certain that statement is correct.

> - package who should not be written in the dependency list (but
>   on versioned dependencies).

awk should not be written into the dependency list, because it is
essential.

> I want to solve this question:
> "What packages really depends on bash?"
>
> Note: nine packages depends on mawk,

If they need mawk in particular, they need to depend on it, but if they
just need awk, they should not have a dependency.

> so if we replace mawk with gawk (a trully virtual example) we know where
> to test the changes (because it not essential by the second rule).

Not if you need to check all the packages that depend on awk.

> So for my point of view [weight on second interpretation], mawk, glibc are
> not really "essential" package.

> But I see your confusion, so I propose a change in policy:
> - essential will have only the first meaning
> - policy must explicitly enumerate the packages which don't require
>   explicit dependencies.
>   [for obvious reason these deb should be in the subset of essential or
>   essential-like packages]

I think the best way to resolve the confusion is for you to bring your
internal interpretation of essential in line with the definition the rest
of the project uses.  :)

-- 
Russ Allbery (r...@debian.org)   


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Essential [Re: Switching /bin/sh to dash (part two)]

2009-07-22 Thread Giacomo A. Catenazzi

Russ Allbery wrote:

"Giacomo A. Catenazzi"  writes:


Why?
"Always installed" is different to "essential", see e.g. libc.


libc is essential from a Policy perspective.  It's just not marked that
way in the packaging system in case the SONAME changes, but it's essential
in the same way that awk is.  Note that dependencies on awk are not
required (and indeed are a Lintian warning).


No! ;-)  Unfortunately "essential" has two meanings:

- packages which are always required on every Debian system.
  - note: there is also the priority "Required"
  - note: mawk has priority required, it is not essential,
  but an essential package (base-files) predepends on it.

- package who should not be written in the dependency list (but
  on versioned dependencies).

I want to solve this question:
"What packages really depends on bash?"

Note: nine packages depends on mawk, so if we replace mawk with gawk
(a trully virtual example) we know where to test the changes (because
it not essential by the second rule). With bash we don't have such info.

I accept that bash is required on every Debian system, but I would
like to have explicit dependencies on bash.

So for my point of view [weight on second interpretation], mawk, glibc are
not really "essential" package.

But I see your confusion, so I propose a change in policy:
- essential will have only the first meaning
- policy must explicitly enumerate the packages which don't require
  explicit dependencies.
  [for obvious reason these deb should be in the subset of essential or
  essential-like packages]

ciao
cate


--
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org