Skip Menu |

This queue is for tickets about the Module-Install CPAN distribution.

Report information
The Basics
Id: 17731
Status: rejected
Priority: 0/
Queue: Module-Install

People
Owner: Nobody in particular
Requestors: john.beppu [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: 0.55
Fixed in: (no value)



Subject: Customizing the Installation Process
CPAN-styled distributions work great if all you want to do is install some perl modules and maybe a command-line utility, but it doesn't work as well for installing full-blown applications. Unlike libraries, applications typically have more things to install. An application may want to install configuration files in $PREFIX/etc and data files in $PREFIX/share/$application_name. Web applications might want to no where the DocumentRoot is. Unfortunately, CPAN-styled distributions don't have a standard way of expressing this. That's not to say it can't be done. With ExtUtils::MakeMaker, you could emit a Makefile fragment to perform extra actions during the `make install` phase. With Module::Build, you could subclass it and override the sub that handles the `./Build install` part. With Module::Install... I'm not sure what you're supposed to do, but I'd also like to take a step back and make an observation. '''The vast majority of the time, installing is the act of copying files from one place to another.''' Unfortunately, we don't have a vocabulary/API to express the act of copying files in a general way. CPAN-styled distributions can handle files that should go into bin, lib, and man just fine, but if you want file to go into etc, share, htdocs, or whatever.... you end up having to write code, and this sucks for people who want to package up applications as CPAN-styled distributions. If Module::Install could provide a way to say, "copy this from here to there," people who write applications in Perl would be in a better place.
Show quoted text
> Unfortunately, we don't have a vocabulary/API to express the act of > copying files in a general way. CPAN-styled distributions can handle > files that should go into bin, lib, and man just fine, but if you want > file to go into etc, share, htdocs, or whatever.... you end up having > to write code, and this sucks for people who want to package up > applications as CPAN-styled distributions. > > If Module::Install could provide a way to say, "copy this from here to > there," people who write applications in Perl would be in a better place.
Well, for the record (since we've spoken about this seperately) Perl also provides the capability for share installation. This is a Perl-specific share capability, seperate from that of the operating systems of the 100+ platforms that Perl runs on. See Module::Install::Share and File::ShareDir for details.
From: dekimsey [...] gmail.com
On Sat Feb 18 18:51:09 2006, guest wrote: Show quoted text
> > If Module::Install could provide a way to say, "copy this from here
to Show quoted text
> > there," people who write applications in Perl would be in a better
place. I'd like to add that this would definitely be a feature my team would love to have. The previous poster mentioned that File::ShareDir supports similar abilities, the issue I have with ti is that some things cannot be placed in a 'share'd directory. Specifically, files such as cgi's need to be executable from within public_html, symlinks are disallowed on my server as they are a security risk ( I am not the admin ). Additionally, files such as css, js, and images we'd also want to have set up so that they can be accessed from a static url. Though symlinks could be used here, again there doesn't appear to be a way to say I need a symlink created from that directory into say, public_html. Summarily, I simply want the ability to say in Makefile.PL that one of my source directories need to be installed in a specific sub-directory location given $PREFIX or the like.
Hi. I understand what you want, but it doesn't need to be a core feature at all (as this is, as the name suggests, a tool to help install modules after all). However, it'd be nice to write your custom extension to work with Module::Install, such as Module::Install::CustomInstallationPath. Or, you might want to use something like Module::CGI::Install. Anyway, I close this ticket as "wontfix." Thanks. On 2008-7-07 Mon 16:13:45, dekimsey wrote: Show quoted text
> On Sat Feb 18 18:51:09 2006, guest wrote:
> > > If Module::Install could provide a way to say, "copy this from
here Show quoted text
> to
> > > there," people who write applications in Perl would be in a
better Show quoted text
> place. > > I'd like to add that this would definitely be a feature my team would > love to have. The previous poster mentioned that File::ShareDir > supports similar abilities, the issue I have with ti is that some > things cannot be placed in a 'share'd directory. Specifically, files > such as cgi's need to be executable from within public_html, symlinks > are disallowed on my server as they are a security risk ( I am not
the Show quoted text
> admin ). Additionally, files such as css, js, and images we'd also > want to have set up so that they can be accessed from a static url. > Though symlinks could be used here, again there doesn't appear to be
a Show quoted text
> way to say I need a symlink created from that directory into say, > public_html. > > Summarily, I simply want the ability to say in Makefile.PL that one
of Show quoted text
> my source directories need to be installed in a specific sub-
directory Show quoted text
> location given $PREFIX or the like.