Time  Nick     Message
20:35 masonj   morning #koha
20:37 chris    hey mason
02:21 fbcit    gmcharlt: u around?
02:21 gmcharlt fbcit: yep
02:21 fbcit    Check something for me in the makefile generted by Makefile.PL...
02:22 fbcit    about line 5431
02:22 fbcit    do you see something to this effect: "print qq{{@ARGV}" --
02:23 fbcit    notice the unclosed brace...
02:24 gmcharlt fbcit: not finding it -- what install mode are you using?
02:24 fbcit    single
02:24 fbcit    it may be a strawberry thing...
02:24 fbcit    but it breaks all Win32 ports of make except cygwin...
02:25 fbcit    I can't figure out where its coming from
02:25 fbcit    or I'd fixit... :-\
02:26 gmcharlt fbcit: might be strawberry indeed -- qq{{@ARGV} not generated on Debian
02:26 gmcharlt Makefile.PL is fairly badly hacking EU::MM -- so if Strawberry has added hacks of their own, there may be a bad collision
02:27 fbcit    :-)
02:27 gmcharlt what Makefile target is the offending line in?
02:28 fbcit    It occurs in all of the pm_to_blib maps
02:28 gmcharlt hmm -- could you paste in a few lines of context around 5431?
02:29 fbcit    Check line 6472 and later for blib {{@ARGV}
02:30 fbcit    Here are the other three offending occurances...
02:30 fbcit    ECHO = $(ABSPERLRUN) -l -e "print qq{@ARGV}" --
02:30 fbcit    ECHO_N = $(ABSPERLRUN)  -e "print qq{@ARGV}" --
02:30 fbcit    UNINST = 0
02:30 fbcit    VERBINST = 0
02:30 fbcit    MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e "install({@ARGV}, '$(VERBINST)', 0, '$(UNINST)');" --
02:30 fbcit    note: I have s/// to fix in this instance manually.
02:31 fbcit    cygwin perl does not produce this problem
02:31 fbcit    AS perl may not either... but I don't have it installed
02:32 fbcit    so although the installer puts the files in place on Win32, koha won't run just yet.
02:39 gmcharlt fbcit: line 442 of c:\strawberry-perl\perl\site\lib\ExtUtils\MM_Win32.pm looks like it might be a good place to start debugging
02:40 gmcharlt comment starting around line 449 seems quite apropos
02:41 fbcit            $text =~ s/{/{{/g;
02:41 fbcit            $text =~ s/}}/}}}/g;
02:42 fbcit    what is some context around 449?
02:43 gmcharlt     # I don't know if this is correct, but it seems to work on
02:43 gmcharlt     # Win98's command.com
02:43 gmcharlt     $text =~ s{"}{\\"}g;
02:43 gmcharlt     # dmake eats '{' inside double quotes and leaves alone { outside double
02:43 gmcharlt     # quotes; however it transforms {{ into { either inside and outside double
02:43 gmcharlt     # quotes.  It also translates }} into }.  The escaping below is not
02:43 gmcharlt     # 100% correct.
02:44 fbcit    k, we're on the same page...
02:47 fbcit    gmcharlt: commenting out the body of sub quote_literal fixes the problem.
02:49 fbcit    maybe $text picks up a { from using the braces as separators in the regex substitution?
02:49 gmcharlt maybe; try tossing in a warn and see
02:52 gmcharlt other possibiliy is that the dmake behavior commented on is no longer correct
02:52 gmcharlt although I wonder why this wouldn't cause any attempt to install an EU:MM-based module from failing in strawberry?
02:54 fbcit    I'm not sure, but I have installed many CPAN modules inside of strawberry w/o issues
02:54 fbcit    which added to the confusion here.
02:55 fbcit    interesting...
02:55 fbcit    [Sun Dec 16 21:55:17 2007] Makefile.PL: text = print qq{@ARGV}
02:56 gmcharlt so then going through regex result should be 'text = print qq{{@ARGV}'
02:56 fbcit    yet in the resulting makefile... print qq{{@ARGV}
02:57 fbcit    but make is not dmake...
02:57 gmcharlt where was your warn -- before or after the text replacements?
02:57 fbcit    after     $text =~ s{"}{\\"}g;
02:58 gmcharlt I though strawberry's make *was* dmake?
02:58 gmcharlt I'd be intrested to see a warn just before quote_literal returns
02:59 [K]      *** part FreeNode!#koha: ru55el n=russel@203-118-134-114.netspace.net.nz
03:00 fbcit    I installed unixtutils which is a Win32 port of several unix utils including gcc make.
03:01 fbcit    aha!
03:01 fbcit    [Sun Dec 16 22:01:28 2007] Makefile.PL: text after $text =~ s{"}{\"}g;= print qq{@ARGV}
03:01 fbcit    [Sun Dec 16 22:01:28 2007] Makefile.PL: text after $text =~ s/{/{{/g;= print qq{{@ARGV}
03:02 gmcharlt yep
03:02 fbcit    so regardless, MM believes I am running dmake...
03:03 fbcit    hrmm... shall I just simply comment out the dmake escaping conditional?
03:03 fbcit    I hate to just hack up the code
03:13 gmcharlt fbcit: it might be defaulting to dmake because that's what Strawberry uses (and so 'dmake' might work)
03:13 gmcharlt it appears to pick up from MAKE environment variable -- so if you need to use a different make, try changing that
03:15 fbcit    dmake errors out on the {{ as well...
03:16 fbcit    I wonder if dmake has changed in its behaviour since MM_Win32 was written?
03:16 fbcit    C:\Documents and Settings\Christopher\Local Settings\Temp\koha-3.00.00.035>dmake -V
03:16 fbcit    dmake - Version 4.5-20060619-SHAY (Windows / MS Visual C++)
03:17 fbcit    make -v says:
03:17 fbcit    GNU Make version 3.78.1, by Richard Stallman and Roland McGrath.
03:17 gmcharlt possibly; but after you generate the Makefile (using the default MM_Win32.pm), does dmake do the right thing
03:19 fbcit    no, it errors out
03:19 fbcit    hold on, I'll post the error...
03:19 gmcharlt it looks like it's picking the default make from perl\lib\Config_heavy.pl
03:20 fbcit    dmake says: dmake:  makefile:  line 21:  Error: -- Input line too long, increase MAXLINELENGTH
03:20 fbcit    I have increased MAXLINELENGTH to 300000 and still no joy
03:20 gmcharlt what's at line 21 -- the pm_to_blib target?
03:21 fbcit     PREREQ_PM =>
03:21 fbcit    w/ MAXLINELENGTH=300000 dmake says: dmake:  makefile:  line 8319:  Error: -- Expecting macro or rule defn, found neither
03:22 fbcit    line 8319 set __DB_HOST__ = localhost
03:22 fbcit    DOS hence 'set' rather that 'export'...
03:24 gmcharlt right -- so after changing that, is dmake happy?
03:26 fbcit    no, but I found another DOS syntax foible... hold on...
03:27 fbcit    dmake still balks on line 8319... I think it must fail farther up, though
03:28 fbcit    dmake does not work even with the {{ changed to {...
03:29 gmcharlt checking a manpage for dmake, it looks like way to do it is just have them as regular macros (i.e., __DB_HOST__ = whatever) then run dmake with -x flag
03:30 gmcharlt or alternatively, fall back to a gnu make
03:31 gmcharlt which should be OK as far as install is concerned, since we don't need to wory about compiling XS with Koha
03:31 gmcharlt but has slight problem that a GNU make does not come with Strawberry
03:32 gmcharlt so better is to figure out how to make dmake happy
03:33 gmcharlt is that a metric zillionth or an imperial one ;-)
03:34 fbcit    dmake -x MAXLINELENGTH=300000 seems to make dmake happy now
03:36 gmcharlt fbcit: I was mistaken: Strawberry does come with a GNU make: mingw\bin\mingw32-make.exe is GNU make 3.81
03:36 fbcit    w/ the offending lines commented out of MM_Win32....
03:37 fbcit    dmake is default?
03:37 gmcharlt yes; it looks like they;re shipping mingw32-make so that wxwindows can be built
03:37 gmcharlt WxWidgets, rather
03:38 gmcharlt so the following might work:
03:38 gmcharlt 1. set MAKE=mingw32-make
03:38 gmcharlt 2. perl Makefile.PL
03:38 gmcharlt 3. mingw32-make
03:39 gmcharlt and that way you don't need to patch MM_Win32.pm
03:39 gmcharlt although I wonder if dmake still needs that bit in quote_literal
03:42 fbcit    k
03:42 fbcit    here it is
03:42 fbcit    dmake does need that bit
03:43 fbcit    and with -x MAXLINELENGTH=300000 it works fine... so far....
03:44 gmcharlt fbcit: are you still changing the 'export' lines as well?
03:44 fbcit    yes, they now have no command preceeding them
03:44 fbcit    as you suggested with the -x
03:45 gmcharlt ok -- so acid test will be whether blib/KOHA_CONF_DIR/koha-conf.xml is correct
03:45 fbcit    how sound is the usage of $^O for determining platform?
03:47 gmcharlt fbcit: sound enough, it appears -- EU:MM uses it
03:48 fbcit    I'm using it in Makefile.PL to create conditionals to control syntax.
03:48 gmcharlt but according to man perlvar, on Windows $^O always returns "MSWin32" -- you need to call other functions to distinguish between different versions of Windows
03:48 fbcit    right
03:49 fbcit    permissions are also an issue on Win32
03:49 fbcit    NTFS is really the only file system w/permissioning
03:50 fbcit    permissions can be managed from command line w/ CACLS...
03:50 fbcit    however, it may be better just to run the install as the koha user and leave it at that...
03:51 fbcit    of course many people may not run NTFS in which case the door is wide open
03:54 gmcharlt fbcit: yeah, probably will need to start simple re windows permissions
03:55 fbcit    gmcharlt: koha-conf.xml looks beautiful...
03:55 gmcharlt ok, great -- that confirms that dmake -x is indeed working
03:55 fbcit    <listen id="biblioserver" >unix:C:\progra~1\koha\var\run\zebradb/bibliosocket</listen>
03:55 fbcit    sockets...
03:56 fbcit    yea, I can echo the env's from cmd as well...
03:59 gmcharlt well, for windows we almost certainly want to tell users to always download the msi/install exe whatever is needed
03:59 gmcharlt possibily even go so far as to bundle strawberry, apache, zebra, etc.
04:01 fbcit    I have been using the single mode because it seems that most *nix ports to Win32 stick everything in a single dir under 'Program Files'
04:02 fbcit    I lack six pm's, zebra and yaz to have koha3 running on Win32... I think
04:06 gmcharlt anyway, re unix-domain sockets on windows: Zebra can use TCP sockets as well, so that's what the installer for Windows should produce in koha-conf.xml
04:08 fbcit    well, yaz blows up bad when trying to compile....
04:09 fbcit    I'm calling it a night... tnx for the help gmcharlt
04:09 gmcharlt you're welcome -- have a good night