packages with executables #84
Comments
I think that executables should be the territory of something like Alien::App::*, with executables ending up in a global type of bin dir, not squirreled away in lib/perl5/.../bin. By all means let's support that with Alien::Base, but this technique doesn't seem like it's properly designed yet. |
I guess what is compelling to me about this pattern is that you can use a tool for a specific purpose without imposing it on the end user, which is why I am not crazy about installing it in the regular bin directory. |
I'm not keen on pretending an executable is a library, nor on manipulating the PATH. Executables live in bin. I see Alien as being about libraries. If we make it be about executables, that should be handled in an idiomatic way, hence my proposal about *::App. |
I am okay with that if Alien::App extends Alien::Base, otherwise you will be duplicating a lot of effort. |
But again, I think if a user wanted to install nasm, he would have installed it himself. if you just need it to build this one Perl module, it does not belong in the global bin directory. |
The only place I see this being used in a Build.PL and I don't really see that manipulating the PATH for an install is not really a big deal. |
|
I definitely think that support of Alien::GNUmake and other similar |
It makes sense to me to have a module specific bin directory for the An example from PDL, we use a pipe to ffmpeg to generate video It should also be possible to detect and use an existing system On Wed, Sep 24, 2014 at 11:29 AM, Chris Marshall devel.chm.01@gmail.com wrote:
|
One place where this pattern is useful is The interface is up for discussion. With @zmughal I think some cases the wrapper you @devel-chm btw- the intent of edit clarify |
Let me just reiterate that it was my PRIMARY design goal that you do not change anything beyond your local perl (meaning you do not change the system) when A::B-based modules are installed. With that same thought in mind, any executables that would be exposed should also be limited to the scope of your local perl (and indeed local::lib if used). If that means that A::B should expose some hooks for calling those executables then so be it, but just remember, installing a perl module should NEVER change the system globally. |
I have in mind the instances where perl distribs install scripts, like |
I have been going trough cpan testers failures of Alien::Base reverse dependencies to find low hanging fruit. A common problem is missing non-Perl dependencies. Library dependencies are tricky to address as has already been discussed elsewhere. Tool dependencies are pretty easy, as I have demonstrated with |
I sent a dev release to CPAN with this feature as 0.005_04 |
Some useful packages could be alienized that have executables instead of (or in addition to) libraries. Here is how I was able to get this to work for
Alien::nasm
:https://github.com/plicease/Alien-nasm/blob/master/lib/Alien/nasm.pm#L23
This as an option (default to off) would be a useful feature.
The text was updated successfully, but these errors were encountered: