Re: [Fink-devel] pm dependencies

2003-07-28 Thread jfm
On Monday, Jul 28, 2003, at 12:18 Europe/Brussels, Daniel Macks wrote:

I'm not sure I understand, so this paragraph could be irrelevant, 
but...
That sounds like it would mean that every perl I have would have the 
same
modules installed. That might be nice in that no matter which perl I 
used,
I'd have everything present, but that's not always desireable. For 
large
slow-building ones that I only need to use (vs. develop against) and 
with
a simple dependency tree, all I need is *some* version that has it 
(that's
the whole point of unversioned -pm deps). And it's not even always
possible (may not work with an old perl, etc.). More importantly, this
would mean that building a new perl on one's machine would somehow 
have to
force building of all the -pm that are already existing for other 
versions
for the new one.
1) It are just the 'xyz' pm's that have to be rebuild for a new perl 
version.
Eg, there are only 36 pm580's, out of a total of maybe close to 200 
pm's.
2) And in fact, you can still cut this down rather sharply _ to just 
those among
them on which some other unversioned pm you have installed would Depend
_ by not installing the corresponding bundle-pm for the others.
3) And if this is still too much _ that you are content to have eg a 
perl580
for occasional experimenting, and basically 'naked', doing most of your
work with some other version _, then just install perl580-core, not 
perl580,
and you're completely free.

Consider a package for
pure-perl program (that can run under any perl) foo that needs a 
compiled
perl module bar.pm. I really want to have
  foo: Depends: bar-pm
This is exactly what is proposed..
foo.pm remains simple, exactly as you write here, and the 36 or bar-pm's
get a dependency scheme ensuring that you will indeed use bar-pmxyz
whenever using perlxyz.
Hoping this helps to clarify things a bit,

Jean-Francois



---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel


Re: [Fink-devel] pm dependencies

2003-07-28 Thread Daniel Macks
jfm said:
: 
: There is, if I'm not mistaken, a problem of correct deps
: for a multi-perl fink installation.
: Recall that some pm's (roughly, those installing a bundle)
: must have "Type: Perl x.y.z" in their info file, and be built
: with perlx.y.z, to be usable with perlx.y.z _ and those packages
: get a name like foo-pmxyz.
: If other, non-versioned, pm's have to Depend on those, one
: needs an additional package foo-pm (Type: bundle), so the
: dependency can get listed as just on foo-pm.
: 
: The problem is how to express correctly the dependency of
: foo-pm on the different foo-pmxyz's: the effect should be that
: foo-pm being installed is a certificate, for whatever perlx.y.z is
: running, that the corresponding foo-pmxyz is there (and not just
: some foo-pmx'y'z').

I'm not sure I understand, so this paragraph could be irrelevant, but...
That sounds like it would mean that every perl I have would have the same
modules installed. That might be nice in that no matter which perl I used,
I'd have everything present, but that's not always desireable. For large
slow-building ones that I only need to use (vs. develop against) and with
a simple dependency tree, all I need is *some* version that has it (that's
the whole point of unversioned -pm deps). And it's not even always
possible (may not work with an old perl, etc.). More importantly, this
would mean that building a new perl on one's machine would somehow have to
force building of all the -pm that are already existing for other versions
for the new one.

This brings up a recent annoyance of mine, though (and it may be a simple
rephrasing of the original or else somewhat related or else not at all).
The current system seems to require multiple versions of a package to
satisfy underlying dependency differences. Consider a package for
pure-perl program (that can run under any perl) foo that needs a compiled
perl module bar.pm. I really want to have
  foo: Depends: bar-pm
I don't care which perl, so I don't care whether I get bar-pm561 or
bar-pm580. But because I could have both perl561 and perl580 concurrently,
and bar-pm merely requires "some present perl version" to have bar.pm
I need to have foo.info fix #!perl to to point to a perl executable
version for which the module is there. Thus I would
  foo-perl561: Depends: bar-pm561
  foo-perl580: Depends: bar-pm580
that install alternatives for bin/foo, and
  foo: Depends: foo-perl561 | foo-perl580
It feels kinda clunky. And I have to make sure I know whether my depended-
on modules are versioned or not (a status which has been known to change,
albeit rarely). I'm not sure what if anything can be done, nor even if 
anything sould be done, but the topic triggered this train of thought:)

dan

-- 
Daniel Macks
[EMAIL PROTECTED]
http://www.netspace.org/~dmacks



---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel


Re: [Fink-devel] pm dependencies

2003-07-25 Thread jfm
On Friday, Jul 25, 2003, at 15:22 Europe/Brussels, jfm wrote:

With those, switching back to a previously used version is just
doing fink install perlxyz _ the corresponding -not package
gets automatically moved out of the way as a conflict, and nothing
else has to be done since the deps of all pm's are already satisfied
by appropriate pmxyz's, since the version was used before.
Sorry, I meant that the (system-)perlxyz packages also have
an appropriate Conflict + Replaces for perlxyz-not.
(It is probably best not to put a Replaces in perlxyz-not _ wouldn't 
help
there anuway _, in order not to make it too easy for an unwary or 
curious
user to end up with a broken fink. True that he can anywau do "fink 
remove
perlxyz" to the same effect ...)

Jean-Francois



---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel


Re: [Fink-devel] pm dependencies

2003-07-25 Thread jfm
On Friday, Jul 25, 2003, at 14:46 Europe/Brussels, David R. Morrison 
wrote:

Hi.  This is indeed a tricky problem.  Ideally, people might want to 
have
several different versions of the perl-core packages installed, and 
might
want the ability to easily switch back and forth among them.  So I am a
bit concerned that the "perl-core-not" packages you propose would 
interfere
with this.
Hi Dave _ There seems to be a little misunderstanding here :
I didn't propose perlx.y.z-core-not packages, but perlx.y.z-not
packages.
With those, switching back to a previously used version is just
doing fink install perlxyz _ the corresponding -not package
gets automatically moved out of the way as a conflict, and nothing
else has to be done since the deps of all pm's are already satisfied
by appropriate pmxyz's, since the version was used before.
It is only the install of a new version which is heavier.

The distinction is crucial also for the scheme to work at all:
remember the "legal path" when doing fink install of a new version , 
say 580:
1) build perl580
2) install perl580-core
3) build and install in build-order all foo-pm580 for which foo-pm is 
installed
4) remove perl580_not
5) install perl580

This works because all the (Build)Depends  in (3) are _ thanks to you ! 
_
only on perl580-core.
If the package would have been a  perl580-core-not , everything would 
break down:
perl580-core cannot be installed w/o removing that, and hence making 
the deps of
all pm-bundles not satisfied.

Best,

Jean-Francois



---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel


Re: [Fink-devel] pm dependencies

2003-07-25 Thread David R. Morrison
Hi.  This is indeed a tricky problem.  Ideally, people might want to have
several different versions of the perl-core packages installed, and might
want the ability to easily switch back and forth among them.  So I am a
bit concerned that the "perl-core-not" packages you propose would interfere
with this.

However, I also agree that people can end up with a dependency that really
doesn't work properly, because the proper x.y.z package for the perl 
module isn't installed.  I hope we could find a solution to this problem
that doesn't interfere with easy switching between perl versions, though...

  -- Dave


---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel


[Fink-devel] pm dependencies

2003-07-24 Thread jfm
There is, if I'm not mistaken, a problem of correct deps
for a multi-perl fink installation.
Recall that some pm's (roughly, those installing a bundle)
must have "Type: Perl x.y.z" in their info file, and be built
with perlx.y.z, to be usable with perlx.y.z _ and those packages
get a name like foo-pmxyz.
If other, non-versioned, pm's have to Depend on those, one
needs an additional package foo-pm (Type: bundle), so the
dependency can get listed as just on foo-pm.
The problem is how to express correctly the dependency of
foo-pm on the different foo-pmxyz's: the effect should be that
foo-pm being installed is a certificate, for whatever perlx.y.z is
running, that the corresponding foo-pmxyz is there (and not just
some foo-pmx'y'z').
So here is a proposal:

We introduce for each xyz a package 'perlxyz_not' that conflicts
with perlxyz (where perlxyz is _ like eg perl580 _ a package that
basically just does "ln -fs `which perlx.y.z`%p/bin/perl" _ hence
conflicts with all other perlx'y'z') and with system-perlxyz: then we
can let all foo-pm depend on " perlxyz_not | foo-pmxyz " for all xyz.
This will require the user to install foo-pmxyz for all bundles
foo-pm and all perl versions x.y.z he has installed _ but there
are not that many bundles, and it seems a condition for a
reliable system.
Note that the 'perlxyz_not' packages are not logically necessary in
this proposal, they are just a shorthand to simplify the writing of the
Deps in the foo-pm packages : else each 'perlxyz_not' in those Deps
should be replaced by the alternative that some other perlx'y'z' is 
installed.

The system has some defects: eg, a user who would not install
perlxyz, just perlxyz-core, and try to use that _ either by using 
explicitly
"perlx.y.z" as command or by doing "ln -s `which 
perlx.y.z`/usr/local/bin/perl"
would not be protected.

Also, I'm afraid manual intervention will be required eg when a
user, who has nothing of say perl580 installed, and hence has 
perl580_not
installed, issues 'fink install perl580' : the logic is that
- since the user explicitly asks to install a package that conflicts 
with perl580_not,
the latter package will have to go.
- since there is a legal way to satisfy the user's request without 
removing any other
package, that's what should be done
[ The legal way: 1) build perl580
2) install perl580-core  3) build and install in build-order all 
foo-pm580
for which foo-pm is installed  4) remove perl580_not  5) install 
perl580 ]

But I don't think fink or dpkg's dependency engines are capable of this
(maybe apt-get ?), and some manual guidance  will be required here..
Comments ? Improvements or other suggestions ?

Jean-Francois Mertens



---
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01
___
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel