Alien::Base Grant Report November
This month featured lots of work in the latter parts of Alien::Base. These improve library detection logic, pkg-config functionality and packlist support.
I was especially pleased to get a bug report filed by bpo regular Toby Inkster. He is writing a provisional Alien::LibXML based on Alien::Base. He noticed some odd behaviors that we are still trying to work out. This feedback led to more improvements than just his, so please keep the bug reports coming!
This month I released three dev versions, the latest being released this evening. I also released Acme::Ford::Prefect again, this time the tests shouldn’t fail on CPANtesters computers who don’t actually install the dependent modules for the one that they are testing. This module is one of the “downstream” modules that are part of the test system for Alien::Base (along with Acme::Alien::DontPanic). These are needed since some of the magic happens during the final installation so tests have to occur AFTER installation of the module in question.
I was saddened this month to learn that Strawberry Perl doesn’t include a Bash interpreter with its build environment. I was under that impression since Strawberry is built on MinGW (compiler) and also includes make, that meant that it bundled MinGW’s MSYS environment. Unfortunately this isn’t true, Strawberry bundles its own make, but not the other tools provided by MSYS, like Bash, and thus it cannot run configure scripts. Oh well, I always planned on pre-built binaries for Windows, guess I’m back to that.
I know I say this regularly, but the system is very close to completion! I’m not going to claim this month again, but sometime very soon!
You could detect the presence of Cygwin on native MSWin32 and use its tool to try and do configure stuff. :)
That sounds like an excellent idea! I have no experience with Cygwin (in fact, I have precious little with compiling anything on Windows and then always with MinGW+MSYS). This may have to wait for a future release, but I hope that it can be added. Of course you are welcome to clone and work on it if you want, but I don’t expect you to. :-)
Using an external Cygwin to build a module for Strawberry? Just crazy.
You could add a Windows only dependency on Config::AutoConf, which implements some of Autoconf’s macros in pure perl.
https://www.metacpan.org/module/Config::AutoConf
I have seen that module and stared at it longingly. I think its a wonderful project, but as far as I can tell, it isn’t quite there for what I need yet.
Can it actually parse that autoconf files or does it just reimplement its purposes? Can it write the Makefile?
It is also important to support other flavors of win32 perl as well as native MS compilers. Strawberry perl includes a lot of libraries that make its environment much more unix-ish to support it’s goal of a “real perl” for MSWin platforms.
In my experience with windows dependencies, you’ll want to avoid autoconf builds where possible. In some cases, this just needs an upstream push of a working makefile to the library codebase.
Binary distributions will probably be the simplest approach in many cases.
A minimum MSYS/MinGW local install (Alien::MSYS?) could be used to pull in more complete GNU build support if required or desired.
I expect to have more thoughts on this as I start working on some Alien modules to support Perl OpenGL and PDL. Getting Alien::Base working on non-unix platforms is a key feature as almost all the unix-ish platforms do have system level package managers that turn installs into ‘get this that the_other’. I’m excited to see the progress and hope to help with some of the MSWin platform issues going forwards.