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\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=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 |
|
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 |