A milestone for Alien::Base

I have been working on a set of base classes intended to make creating a new Alien:: distribution for some library as easy as making a simple Module::Build based distro. So far the code isn’t on CPAN yet, follow its progress on GitHub.

I haven’t been feeling so well today, so I have been sitting around watching movies (which I own on DVD) on TV. Of course I can’t sit still that long without doing anything so Alien::Base saw a burst of activity today.

Along with testing I am also keeping an Alien::Base-based Alien::GSL (which provides the Gnu Scientific Library) in the examples folder. The big news today is that this example distro can now query the GNU FTP server, pick the newest version of the library. It then downloads, extracts and builds the library in a temporary folder. Finally it “installs” the library in a File::ShareDir directory in the Alien::GSL root/share directory. Even this isn’t as cool as how it does this:

It does it entirely from the Build.PL configuration!

It is my hope that most small/self-contained libraries can be wrapped in this simple way. In this way I hope to increase the number of Alien:: modules available on CPAN.

Of course its still needs much more functionality, lots more tests, and all the documentation. All of that is coming however, so keep watching!

3 Comments

This looks really good. I have been wanting to write an Alien:: module, but always been put off by the effort.

Really looking forward to giving this a go!

I want to wrap a something called AtomicParsley (http://atomicparsley.sourceforge.net/). Its kinda selfish - I am using it as part of my project to import DVD’s into iTunes, and I want a nice install experience for anyone else who uses my tools.

I think you are probably focusing on the right things. As long as you can do a http/ftp get, then a make configure install, it should handle a lot of libraries. If someone needs more they can subclass A::B to get the behaviour they want.

Leave a comment

About Joel Berger

user-pic As I delve into the deeper Perl magic I like to share what I can.