Re: A new way to specify versionned dependencies may be needed

2003-10-08 Thread Nicolas Boullis
Hi,

On Tue, Oct 07, 2003 at 05:03:19AM +1000, Anthony Towns wrote:
> On Sat, Oct 04, 2003 at 01:46:08AM +0200, Nicolas Boullis wrote:
> > Moreover, that does not answer to my real question: is there a good 
> > reason not to implement such an extended syntax for versionned 
> > relationships. 
> 
> Probably not; but there needs to be a good reason to do it. It has to
> be implemented in dpkg, apt, testing, and everything else that worries
> about conflicts, and to ensure upgrades work okay, can't be used for
> a release after it's rolled out (so, assuming a release once a year,
> not until early 2006). Do you care enough?

I perfectly know that such a thing can't be available before sarge+1 at 
best. But AFAICS, such a thing would also be useful for "positive 
relationship" (depends, recommends, suggest).

People currently specify things as "Depends: foo (>= 1.0.0-1), foo (< 
1.0.1)". But that will break if more than one version of foo can coexist 
at a time. That's currently impossible, but that may become possible 
when versionned provides are available (if they ever become available).
That is if foo-bar 0.9.9-1 "Provides: foo (= 0.9.9-1)" and foo-baz 
1.0.1-1 "Provides: foo (= 1.0.1-1)", then having both would (wrongly) 
satisfy the "Depends: foo (>= 1.0.0-1), foo (< 1.0.1)" condition.

Did I miss something obvious?


Regards,

Nicolas




Re: A new way to specify versionned dependencies may be needed

2003-10-07 Thread Anthony Towns
On Sat, Oct 04, 2003 at 01:46:08AM +0200, Nicolas Boullis wrote:
> Moreover, that does not answer to my real question: is there a good 
> reason not to implement such an extended syntax for versionned 
> relationships. 

Probably not; but there needs to be a good reason to do it. It has to
be implemented in dpkg, apt, testing, and everything else that worries
about conflicts, and to ensure upgrades work okay, can't be used for
a release after it's rolled out (so, assuming a release once a year,
not until early 2006). Do you care enough?

Cheers,
aj

-- 
Anthony Towns <[EMAIL PROTECTED]> 
I don't speak for anyone save myself. GPG signed mail preferred.

Australian DMCA (the Digital Agenda Amendments) Under Review!
-- http://azure.humbug.org.au/~aj/blog/copyright/digitalagenda


pgpf9xg4L1rQs.pgp
Description: PGP signature


Re: A new way to specify versionned dependencies may be needed

2003-10-03 Thread Brian May
On Fri, Oct 03, 2003 at 04:06:42PM -0400, Daniel Jacobowitz wrote:
> The best extant solution to this is just to Conflicts: foo (<= B). 
> Forcing an upgrade isn't such a bad thing...

It could be a bad thing if it means upgrading a stable package to
unstable.

The stable version of the package might work fine.
-- 
Brian May <[EMAIL PROTECTED]>




Re: A new way to specify versionned dependencies may be needed

2003-10-03 Thread Nicolas Boullis
(Sorry Daniel for first sending this e-mail to you only by mistake.)

Hi,

On Fri, Oct 03, 2003 at 04:06:42PM -0400, Daniel Jacobowitz wrote:
> On Fri, Oct 03, 2003 at 09:55:09PM +0200, Nicolas Boullis wrote:
> > Hi,
> > 
> > On Fri, Oct 03, 2003 at 09:19:39AM +0200, Dagfinn Ilmari Mannsåker wrote:
> > 
> > > > So I'd like my package to conflict with versions A to B of foo. I tried 
> > > > to specify it with "Conflicts: foo (>> A), foo (<< B)" but, as I 
> > > > feared, 
> > > > it does not work since it now conflicts both with all versions >> A and 
> > > > with all versions << B (as A << B, that means all versions).
> > > 
> > > How about "Depends: foo (<< A) | foo (>> B)"?
> > 
> > No, my package does not depend in any way on foo. Depending on foo only 
> > to prevent a few specific versions of foo to be installed would be evil, 
> > AFAICS...
> 
> The best extant solution to this is just to Conflicts: foo (<= B). 
> Forcing an upgrade isn't such a bad thing...

Well, that depends. For example, if testing as a version << A of foo, 
and we are getting close to a release, conflicting with that version for 
no good reason would be somewhat broken. (That's roughly the current 
situation with foo=dvb-dev, A=1.0.0, B=1.0.1 and my 
package=em8300-headers.)

Moreover, that does not answer to my real question: is there a good 
reason not to implement such an extended syntax for versionned 
relationships. If there is no good reason, I might try to implement such 
a thing and provide it to the maintainers of dpkg...


Regards,

Nicolas




Re: A new way to specify versionned dependencies may be needed

2003-10-03 Thread Daniel Jacobowitz
On Fri, Oct 03, 2003 at 09:55:09PM +0200, Nicolas Boullis wrote:
> Hi,
> 
> On Fri, Oct 03, 2003 at 09:19:39AM +0200, Dagfinn Ilmari Mannsåker wrote:
> 
> > > So I'd like my package to conflict with versions A to B of foo. I tried 
> > > to specify it with "Conflicts: foo (>> A), foo (<< B)" but, as I feared, 
> > > it does not work since it now conflicts both with all versions >> A and 
> > > with all versions << B (as A << B, that means all versions).
> > 
> > How about "Depends: foo (<< A) | foo (>> B)"?
> 
> No, my package does not depend in any way on foo. Depending on foo only 
> to prevent a few specific versions of foo to be installed would be evil, 
> AFAICS...

The best extant solution to this is just to Conflicts: foo (<= B). 
Forcing an upgrade isn't such a bad thing...

-- 
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer




Re: A new way to specify versionned dependencies may be needed

2003-10-03 Thread Nicolas Boullis
Hi,

On Fri, Oct 03, 2003 at 09:19:39AM +0200, Dagfinn Ilmari Mannsåker wrote:

> > So I'd like my package to conflict with versions A to B of foo. I tried 
> > to specify it with "Conflicts: foo (>> A), foo (<< B)" but, as I feared, 
> > it does not work since it now conflicts both with all versions >> A and 
> > with all versions << B (as A << B, that means all versions).
> 
> How about "Depends: foo (<< A) | foo (>> B)"?

No, my package does not depend in any way on foo. Depending on foo only 
to prevent a few specific versions of foo to be installed would be evil, 
AFAICS...

> > Currently, there's no need for such a feature for positive dependencies 
> > (Depends, Recommends and Suggests), because there is a workaround:
> > "Depends: foo (>> A), foo (<< B)" works for "Depends: foo (>> A, << B)",
> > but it only works because only one version of foo can be installed at a 
> > time. If versionned provides are ever implemented, it may become 
> > possible to have several versions of a package at a time, thus breaking 
> > this workaround.
> 
> The above will also break if versioned provides are implemented.

Which "The abobe"? Your "Depends: foo (<< A) | foo (>> B)"? Or my 
"Depends: foo (>> A, << B)"? I can't see why mine would be broken. Did I 
miss something?


Regards,

Nicolas




Re: A new way to specify versionned dependencies may be needed

2003-10-03 Thread Dagfinn Ilmari MannsÃker
Nicolas Boullis <[EMAIL PROTECTED]> writes:

> Hi,
>
> One package of mine needs to conflict with a few consecutive versions 
> of a package. Let's say that the package foo introduced a feature that 
> conflicts with my package in version A and removed it in version B.
>
> So I'd like my package to conflict with versions A to B of foo. I tried 
> to specify it with "Conflicts: foo (>> A), foo (<< B)" but, as I feared, 
> it does not work since it now conflicts both with all versions >> A and 
> with all versions << B (as A << B, that means all versions).

How about "Depends: foo (<< A) | foo (>> B)"?

> Currently, there's no need for such a feature for positive dependencies 
> (Depends, Recommends and Suggests), because there is a workaround:
> "Depends: foo (>> A), foo (<< B)" works for "Depends: foo (>> A, << B)",
> but it only works because only one version of foo can be installed at a 
> time. If versionned provides are ever implemented, it may become 
> possible to have several versions of a package at a time, thus breaking 
> this workaround.

The above will also break if versioned provides are implemented.

-- 
ilmari




A new way to specify versionned dependencies may be needed

2003-10-02 Thread Nicolas Boullis
Hi,

One package of mine needs to conflict with a few consecutive versions 
of a package. Let's say that the package foo introduced a feature that 
conflicts with my package in version A and removed it in version B.

So I'd like my package to conflict with versions A to B of foo. I tried 
to specify it with "Conflicts: foo (>> A), foo (<< B)" but, as I feared, 
it does not work since it now conflicts both with all versions >> A and 
with all versions << B (as A << B, that means all versions).

Is there a way to specify such a conflict? Listing all the versions 
would work, but that's not really convenient... Any suggestion is 
welcome.

Hence, I think a new way to specify versionned relationship between 
packages might be useful. For example, the conflict I need might be 
written as "Conflicts: foo (>> A, << B)". Is such a feature planned for 
the future? It's certainly too late to have something for sarge, so it 
certainly won't be implemented before sarge+1, and we won't be able to 
use it before sarge+2.

Currently, there's no need for such a feature for positive dependencies 
(Depends, Recommends and Suggests), because there is a workaround:
"Depends: foo (>> A), foo (<< B)" works for "Depends: foo (>> A, << B)",
but it only works because only one version of foo can be installed at a 
time. If versionned provides are ever implemented, it may become 
possible to have several versions of a package at a time, thus breaking 
this workaround.


Any comment?

Nicolas