Skip Menu |

This queue is for tickets about the Marpa-R2 CPAN distribution.

Report information
The Basics
Id: 81057
Status: resolved
Priority: 0/
Queue: Marpa-R2

People
Owner: jkegl [...] cpan.org
Requestors: feratilbeau [...] hotmail.com
Cc:
AdminCc:

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



Subject: autoconf dependency in CPAN package preventing installation on Win32 at least
Hello, I want to install Marpa::R2 on a box that does not have (or with great difficulties to get it running - I gave up) autoconf, namely Win32 of course -; I succeeded in a portable way to remove entirely autoconf or any other binary (like tar) dependency in the CPAN package using: - Config::AutoConf - Archive::Tar - ExtUtils::MakeMaker (the latter only because Module::Build does not permit to build a static library). That is Marpa::R2 builds and install fine on Windows in addition to my debian box, this solves a Marpa::R2 installation issue IMHO. After cloning Marpa--R2's git there are two different autoconf dependencies, it seems: - the develoment phase up to the packaging which relies quite heavily on it, and which is fine, this is how it is on your box and how Marpa::R2 grows -; - the published package on CPAN, which contains a tiny, but fatal on Win32 (+ perhaps other OSes), autoconf dependency My question is if you would agree to move to Config::AutoConf+Archive::Tar+ExtUtils::MakeMaker alternative, that would affect the following files (I used the structure of CPAN package, not the one on git): - Build.PL - inc/Marpa/R2/Build_Me.pm - inc/Marpa/R2/Config.pm and if yes, how you would like to see the patch: as a diff done on CPAN package, or a git diff. Thanks, Regards, Jean-Damien. ps: minor thing, I guess there is a missing #include "config.h" in avl.c, an issue with the 'inline' that is '__inline' or whatever when not using gcc.
I am very much in your debt. There's been a lot of talk about porting to Windows, but you are the one who finally did the work. I do not have access to a Windows box as of this writing. I'd very much like to see your patch. Is the github repository convenient for you? If not, I'd like to see it whatever form is convenient. As for bringing Windows support into the main distribution, I'd like to, consistent with the following thoughts: 1.) I don't want to introduce any new dependencies that will affect non-Windows users. That is, I'm open to "requiring" the three packages you suggest, but I do not want to make them general CPAN requirements. There are ways to accomplish this in a Build.PL. 2.) I think in the Windows environment, binaries are possible and expected -- they will usually not want to install from CPAN. One approach is to make the changes needed for Windows "downstream", then push them up to me. I then incorporate them in a way that does not affect POSIX/UNIX installs. This makes the build code more complex for all users but, unlike the extra dependencies, this is a price I am willing to pay. It also risks breaking the install for POSIX/UNIX users, but that risk can be controlled with testing. Thanks, jeffrey On Thu Nov 08 17:38:47 2012, jddfr74 wrote: Show quoted text
> Hello, > > I want to install Marpa::R2 on a box that does not have (or with great > difficulties to get it running - I gave up) autoconf, namely Win32 of > course -; > > I succeeded in a portable way to remove entirely autoconf or any other > binary (like tar) dependency in the CPAN package using: > - Config::AutoConf > - Archive::Tar > - ExtUtils::MakeMaker (the latter only because Module::Build does not > permit to build a static library). > > That is Marpa::R2 builds and install fine on Windows in addition to my > debian box, this solves a Marpa::R2 installation issue IMHO. > > After cloning Marpa--R2's git there are two different autoconf > dependencies, it seems: > - the develoment phase up to the packaging which relies quite heavily on > it, and which is fine, this is how it is on your box and how Marpa::R2 > grows -; > - the published package on CPAN, which contains a tiny, but fatal on > Win32 (+ perhaps other OSes), autoconf dependency > > My question is if you would agree to move to > Config::AutoConf+Archive::Tar+ExtUtils::MakeMaker alternative, that > would affect the following files (I used the structure of CPAN package, > not the one on git): > - Build.PL > - inc/Marpa/R2/Build_Me.pm > - inc/Marpa/R2/Config.pm > and if yes, how you would like to see the patch: as a diff done on CPAN > package, or a git diff. > > Thanks, Regards, Jean-Damien. > > ps: minor thing, I guess there is a missing #include "config.h" in > avl.c, an issue with the 'inline' that is '__inline' or whatever when > not using gcc.
Looking more at this, two of the 3 dependencies you use are core -- these are fairly safe to add to the required dependency list. The one that is non-core is Config::Autoconf. Windows is presumably a single autoconf target (or a small set of them), so it may be possible to include the post-configuration files for Windows in the distribution. That means Config::Autoconf will only be used at development time. On Thu Nov 08 18:13:49 2012, JKEGL wrote: Show quoted text
> I am very much in your debt. There's been a lot of talk about porting > to Windows, but you are > the one who finally did the work. > > I do not have access to a Windows box as of this writing. I'd very > much like to see your patch. > Is the github repository convenient for you? If not, I'd like to see > it whatever form is > convenient. > > As for bringing Windows support into the main distribution, I'd like > to, consistent with the > following thoughts: > > 1.) I don't want to introduce any new dependencies that will affect > non-Windows users. That > is, I'm open to "requiring" the three packages you suggest, but I do > not want to make them > general CPAN requirements. There are ways to accomplish this in a > Build.PL. > > 2.) I think in the Windows environment, binaries are possible and > expected -- they will > usually not want to install from CPAN. > > One approach is to make the changes needed for Windows "downstream", > then push them up > to me. I then incorporate them in a way that does not affect > POSIX/UNIX installs. This makes > the build code more complex for all users but, unlike the extra > dependencies, this is a price I > am willing to pay. It also risks breaking the install for POSIX/UNIX > users, but that risk can be > controlled with testing. > > Thanks, jeffrey > > On Thu Nov 08 17:38:47 2012, jddfr74 wrote:
> > Hello, > > > > I want to install Marpa::R2 on a box that does not have (or with
> great
> > difficulties to get it running - I gave up) autoconf, namely Win32
> of
> > course -; > > > > I succeeded in a portable way to remove entirely autoconf or any
> other
> > binary (like tar) dependency in the CPAN package using: > > - Config::AutoConf > > - Archive::Tar > > - ExtUtils::MakeMaker (the latter only because Module::Build does
> not
> > permit to build a static library). > > > > That is Marpa::R2 builds and install fine on Windows in addition to
> my
> > debian box, this solves a Marpa::R2 installation issue IMHO. > > > > After cloning Marpa--R2's git there are two different autoconf > > dependencies, it seems: > > - the develoment phase up to the packaging which relies quite
> heavily on
> > it, and which is fine, this is how it is on your box and how
> Marpa::R2
> > grows -; > > - the published package on CPAN, which contains a tiny, but fatal on > > Win32 (+ perhaps other OSes), autoconf dependency > > > > My question is if you would agree to move to > > Config::AutoConf+Archive::Tar+ExtUtils::MakeMaker alternative, that > > would affect the following files (I used the structure of CPAN
> package,
> > not the one on git): > > - Build.PL > > - inc/Marpa/R2/Build_Me.pm > > - inc/Marpa/R2/Config.pm > > and if yes, how you would like to see the patch: as a diff done on
> CPAN
> > package, or a git diff. > > > > Thanks, Regards, Jean-Damien. > > > > ps: minor thing, I guess there is a missing #include "config.h" in > > avl.c, an issue with the 'inline' that is '__inline' or whatever
> when
> > not using gcc.
> >
From: feratilbeau [...] hotmail.com
Jeffrey, About Config::AutoConf, not sure. The several distributions can be be gcc/dmake based (e.g. strawberry), cl/nmake based (e.g. ActiveState), etc. This means a config.h is not a static OS thing, per-se this depends on the compiler used behing, not on the OS. Perl itself says everything, and Module::Build, ExtUtils:xxx are just frontend on that. Anyway, I will send you the patch this week-end, you will see what I mean. Tested it on: - strawberry perl-5.12 (gcc/dmake) - hand-made perl-5.14 (cl/nmake) - strawberry perl-5.16 (gcc/dmake) - debian/unstable perl-5.14 (gcc/make) Regards, Jean-Damien.
I notice you've joined the mailing list. Thanks for doing that. It may be best to move this discussion there. I expect others on the list can help, offer advice, etc., etc. My fast answer on the the strawberry, Activestate thing is it's up to the people doing the work -- in this case you. But also, now that you've led the way, the people maintaining those Perl distros may take over the packaging. This is what happened with Fedora -- Marpa::XS ships with Fedora, and I never lifted a finger -- they just grabbed my source and did it. -- jeffrey On Fri Nov 09 12:06:06 2012, jddfr74 wrote: Show quoted text
> Jeffrey, > > About Config::AutoConf, not sure. > The several distributions can be be gcc/dmake based (e.g. strawberry), > cl/nmake based (e.g. ActiveState), etc. This means a config.h is not a > static OS thing, per-se this depends on the compiler used behing, not on > the OS. > > Perl itself says everything, and Module::Build, ExtUtils:xxx are just > frontend on that. > > Anyway, I will send you the patch this week-end, you will see what I mean. > > Tested it on: > - strawberry perl-5.12 (gcc/dmake) > - hand-made perl-5.14 (cl/nmake) > - strawberry perl-5.16 (gcc/dmake) > - debian/unstable perl-5.14 (gcc/make) > > Regards, Jean-Damien.
The discussion moved to the Marpa parser mailing list. An patch from Jean-Damien was taken upstream and included in Marpa-R2-2.025_003. With it, Marpa::R2 installs "out of the box" on all Windows boxes tested so far. I believe this degree of progress justifies marking this ticket "resolved".