← Previous day | Today | Next day → | Search | Index
All times shown according to UTC.
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 | about line 5431 | |
02:22 | do you see something to this effect: "print qq{{@ARGV}" -- | |
02:23 | notice the unclosed brace... | |
02:24 | gmcharlt | fbcit: not finding it -- what install mode are you using? |
02:24 | fbcit | single |
02:24 | it may be a strawberry thing... | |
02:24 | but it breaks all Win32 ports of make except cygwin... | |
02:25 | I can't figure out where its coming from | |
02:25 | or I'd fixit... :-\ | |
02:26 | gmcharlt | fbcit: might be strawberry indeed -- qq{{@ARGV} not generated on Debian |
02:26 | 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 | Here are the other three offending occurances... | |
02:30 | ECHO = $(ABSPERLRUN) -l -e "print qq{@ARGV}" -- | |
02:30 | ECHO_N = $(ABSPERLRUN) -e "print qq{@ARGV}" -- | |
02:30 | UNINST = 0 | |
02:30 | VERBINST = 0 | |
02:30 | MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e "install({@ARGV}, '$(VERBINST)', 0, '$(UNINST)');" -- | |
02:30 | note: I have s/// to fix in this instance manually. | |
02:31 | cygwin perl does not produce this problem | |
02:31 | AS perl may not either... but I don't have it installed | |
02:32 | 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 | comment starting around line 449 seems quite apropos | |
02:41 | fbcit | $text =~ s/{/{{/g; |
02:41 | $text =~ s/}}/}}}/g; | |
02:42 | 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 | # Win98's command.com | |
02:43 | $text =~ s{"}{\\"}g; | |
02:43 | # dmake eats '{' inside double quotes and leaves alone { outside double | |
02:43 | # quotes; however it transforms {{ into { either inside and outside double | |
02:43 | # quotes. It also translates }} into }. The escaping below is not | |
02:43 | # 100% correct. | |
02:44 | fbcit | k, we're on the same page... |
02:47 | gmcharlt: commenting out the body of sub quote_literal fixes the problem. | |
02:49 | 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 | other possibiliy is that the dmake behavior commented on is no longer correct | |
02:52 | 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 | which added to the confusion here. | |
02:55 | interesting... | |
02:55 | [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 | 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 | I'd be intrested to see a warn just before quote_literal returns | |
02:59 | [K] | *** part FreeNode!#koha: ru55el n=russel203-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 | aha! | |
03:01 | [Sun Dec 16 22:01:28 2007] Makefile.PL: text after $text =~ s{"}{\"}g;= print qq{@ARGV} | |
03:01 | [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 | hrmm... shall I just simply comment out the dmake escaping conditional? | |
03:03 | 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 | 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 | I wonder if dmake has changed in its behaviour since MM_Win32 was written? | |
03:16 | C:\Documents and Settings\Christopher\Local Settings\Temp\koha-3.00.00.035>dmake -V | |
03:16 | dmake - Version 4.5-20060619-SHAY (Windows / MS Visual C++) | |
03:17 | make -v says: | |
03:17 | 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 | 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 | 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 | w/ MAXLINELENGTH=300000 dmake says: dmake: makefile: line 8319: Error: -- Expecting macro or rule defn, found neither | |
03:22 | line 8319 set __DB_HOST__ = localhost | |
03:22 | 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 | dmake still balks on line 8319... I think it must fail farther up, though | |
03:28 | 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 | or alternatively, fall back to a gnu make | |
03:31 | which should be OK as far as install is concerned, since we don't need to wory about compiling XS with Koha | |
03:31 | but has slight problem that a GNU make does not come with Strawberry | |
03:32 | so better is to figure out how to make dmake happy | |
03:33 | 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 | dmake is default? | |
03:37 | gmcharlt | yes; it looks like they;re shipping mingw32-make so that wxwindows can be built |
03:37 | WxWidgets, rather | |
03:38 | so the following might work: | |
03:38 | 1. set MAKE=mingw32-make | |
03:38 | 2. perl Makefile.PL | |
03:38 | 3. mingw32-make | |
03:39 | and that way you don't need to patch MM_Win32.pm | |
03:39 | although I wonder if dmake still needs that bit in quote_literal | |
03:42 | fbcit | k |
03:42 | here it is | |
03:42 | dmake does need that bit | |
03:43 | 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 | 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 | permissions are also an issue on Win32 | |
03:49 | NTFS is really the only file system w/permissioning | |
03:50 | permissions can be managed from command line w/ CACLS... | |
03:50 | however, it may be better just to run the install as the koha user and leave it at that... | |
03:51 | 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 | sockets... | |
03:56 | 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 | 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 | 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 | I'm calling it a night... tnx for the help gmcharlt | |
04:09 | gmcharlt | you're welcome -- have a good night |
← Previous day | Today | Next day → | Search | Index