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!
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!
Thanks Andrew! Just curious, what library would you wrap? I am trying to keep an eye on the needs of libraries that people are interested in, because I need to be sure that
A::B
is sufficiently abstracted to allow as many libraries as possible. My focus is on the GSL, but I am keeping an eye on Glib (not Glibc) for Jeffrey Kegler and some others for the PDL porters.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.