Re: Differences between MakeMaker's old File::Spec methods and File::Spec.

2002-08-30 Thread Ken Williams


On Friday, August 30, 2002, at 04:35  PM, Michael G Schwern wrote:
 Either way, MakeMaker will still need wrappers to deal with older
 File::Specs. :(

Is it not kosher to have modern MakeMakers depend on some minimum 
version of File::Spec?

  -Ken




Re: Letting WriteMakefile determine test order (again)

2002-08-30 Thread Michael G Schwern

On Fri, Aug 30, 2002 at 03:47:26PM -0400, brian d foy wrote:
 even though BAIL_OUT isn't implemented

Oh, I thought I'd implemented that in Test::More.  Well, you can still do it
manually.

print Bail out!  We ran out of coffee.\n


 i'm asking for flexibility, not policy.  you don't have to do things in a
 way that you don't like, but you shouldn't keep people from doing the
 things that they would like to do either.  i want loose coupling and
 freedom.

So do I.  Unfortunately I have to make it work everywhere.

How about a TEST_FILTER variable instead which defaults to 
'sub { sort { $a cmp $b } @_ }' ?


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl Quality Assurance  [EMAIL PROTECTED] Kwalitee Is Job One
There is nothing wrong.  We have taken control of this sig file.  We will 
return it to you as soon as you are groovy.



Re: Why no .packlist for install_vendor ?

2002-08-30 Thread Michael G Schwern

On Fri, Aug 30, 2002 at 07:33:20PM +0100, Ed Avis wrote:
 Hmm.  So the answer to 'what is a packlist for?' is that it might one
 day be used for uninstalling, although at present it isn't.
 
 I would question whether packlists are the thing to use in 'make
 uninstall'.  Surely the makefile already knows what files are to be
 removed, and where, so it can uninstall the package without looking at
 the packlists.

It's sort of silly to require that you have a copy of the source code in
order to uninstall a module.  Having a make uninstall target wouldn't be
the canonical way to remove a module, simply a way to address the Shit!  I
didn't mean to install that there! problem.

So you still need some sort of list of what's installed in order to
uninstall things once the original source tarball is gone.


Why don't you just run from the assumption that packlists aren't such a hot
idea and implement something else?  Probably do it with Module::Build as I
have no plans to do any significant changes to MakeMaker.  And probably do
it with YAML so we have a decent data format.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl Quality Assurance  [EMAIL PROTECTED] Kwalitee Is Job One
I know you get this a lot, but you're breathtaking, like a vision of
simplicity



Re: Why no .packlist for install_vendor ?

2002-08-30 Thread Michael G Schwern

On Fri, Aug 30, 2002 at 11:05:46PM +0100, Ed Avis wrote:
 It's sort of silly to require that you have a copy of the source
 code in order to uninstall a module.
 
 I am not sure that it is silly.  It seems to be the convention to do
 things this way: for example when installing a GNU package there may
 be a 'make uninstall' but there is no way to automatically remove the
 package without having the source code.

Then it's a silly convention.  Anyway, we left the GNU tools in the dust
years ago.  :)


 If you do want the ability to uninstall then you use a package manager
 such as RPM, or such as GNU Stow, or any of the dozens of other
 packaging/uninstallation systems.

As has been pointed out in the past, MakeMaker  Module::Build are defacto
package managers.  [Along with the CPAN shells] they automate and normalize
the finding of, downloading, building, testing, installing and querying of
Perl modules as well as where and how they're installed.  If that's not a
package manager I don't know what is.

Now, as to whether or not it's a *good* package manager...


 The question is: should there be uninstall functionality with the
 package, which risks reinventing the wheel, or should it be up to the
 user to use whatever packaging tool he wishes, which risks annoying
 those users who don't want to bother with extra tools.

Both.

The various OS distributions will always want to wrap our stuff with their
package manager no matter how good we get.  It's just compatibility.
However, the better we get, the less work they have to do.


 (It starts to get hairier when you have upgrades from one version of a
 module to a later version, or configuration files which should not be
 changed during such an upgrade, or files shared between two different
 packages.  Fortunately such issues don't usually come up with Perl
 modules (so far), but they are bread and butter for programs like
 rpm.)

You'll probably want to look at how Debian's dpkg solves these problems, not
rpm.  You might want to read section 6 of the Debian FAQ Basics of the
Debian Package Management System and go from there.
http://www.debian.org/doc/FAQ/ch-pkg_basics.html


 Having a make uninstall target wouldn't be the canonical way to
 remove a module, simply a way to address the Shit!  I didn't mean
 to install that there! problem.
 
 It needs to be decided: should there be a canonical way to remove a
 module?

There are few things which are canonical in Perl.  There are merely things
people put lots of effort into and people liked enough to make it
ubiquitous.

In other words:  Just Do It Already


 and implement something else?  Probably do it with Module::Build as
 I have no plans to do any significant changes to MakeMaker.
 
 If you are saying that MakeMaker will not get a fancy packlist-based
 uninstaller, then there is no reason not to rip out packlists now.  Or
 at least quietly ignore them in new code.

As Nick pointed out, MakeMaker already has a packlist based uninstaller.
ExtUtils::Install::uninstall().  It even has an uninstall target which uses
it, but it's deprecated.  I forget why it's deprecated.  If someone wants to
investigate and undeprecate it I'd accept that.

Otherwise, I'd rather just leave packlists as they are and extend
Module::Build instead.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl Quality Assurance  [EMAIL PROTECTED] Kwalitee Is Job One
The truth is you suck!