IRC log for #koha, 2007-12-17

All times shown according to UTC.

Time S 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\sit​e\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

| Channels | #koha index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary