Skip Menu |
 
Report information
Id: 78214
Status: resolved
Priority: 0/
Queue: perl6

Owner: Nobody
Requestors: ronaldxs <ronaldxs [at] software-path.com>
Cc:
AdminCc:

Severity: (no value)
Tag: Patch
Platform: (no value)
Patch Status: (no value)
VM: (no value)



Subject: [PATCH] Allow more windows environments with git to work correctly with build process
Date: Mon, 04 Oct 2010 22:01:29 -0400
To: rakudobug [...] perl.org
From: Ronald Schmidt <ronaldxs [...] software-path.com>
Download Configure.pl.patch
text/plain 931b

Message body is not shown because sender requested not to inline it.

Message body is not shown because sender requested not to inline it.

Download Makefile.in.patch
text/plain 276b

Message body is not shown because sender requested not to inline it.

Download root.in.patch
text/plain 459b

Message body is not shown because sender requested not to inline it.

Download (untitled) / with headers
text/plain 1.6k
Rakudo now depends on git for both its own source and its tests.  For the time being it also depends on a program called curl for pushing spectest_smolder results to the smolder server.  These programs are available for Windows, but several installation configurations that make them available easily also put a "sh.exe" program on the path which crashes the build process on Windows.  The attached patches allow the build process to work correctly on Windows with a "sh" program on the path and also work around one known problem with Cygwin and subversion on Windows Vista.  At a higher level they allow a windows user to get access to git, subversion, and curl by installing Cygwin with those programs and putting "\Cygwin\bin" on their dos path or, alternatively, they can install msys git and Slik subversion and put "\Program Files\Git\bin" and the Slik subversion bin directory on their dos path.

In my previous ticket, RT 78152, I described a working Windows build environment with msys git, Slik subversion and a curl from http://curl.haxx.se.  These patches extend that work and add several more, easier to install, build environments for Windows.  We still lack, I believe, a document describing good build environments for Windows, but that may be easier to write after these patches are applied and we can describe a better set of environments.

One of the patches here, the one for root.in, is actually a one line patch to a Parrot file.  After this ticket is open, unless there are objections,  I will open a Parrot trac ticket and cross reference the two patch tickets.

Hoping this helps,
Ron Schmidt
RT-Send-CC: perl6-compiler [...] perl.org
Download (untitled) / with headers
text/plain 629b
Show quoted text
> One of the patches here, the one for root.in, is actually a one line > patch to a Parrot file. After this ticket is open, unless there are > objections, I will open a Parrot trac ticket and cross reference the > two patch tickets.
The Parrot ticket was created and the related patch has been applied to Parrot closing the ticket. The (closed) Parrot ticket is #1865 (http://trac.parrot.org/parrot/ticket/1865). Parrot has also now moved to git simplifying the patch for Rakudo needed to get the intended result. I have attached the new set of patches as a single file for convenience - win32_cmd_line_git.patch.
diff --git a/Configure.pl b/Configure.pl index 15cfcef..bcb75c1 100644 --- a/Configure.pl +++ b/Configure.pl @@ -174,13 +174,17 @@ END # Generate a Makefile from a configuration sub create_makefile { my ($makefile_timing, %config) = @_; + my $is_win32 = $^O eq 'MSWin32'; my $maketext = slurp( 'build/Makefile.in' ); $config{'stagestats'} = $makefile_timing ? '--stagestats' : ''; - $config{'win32_libparrot_copy'} = $^O eq 'MSWin32' ? 'copy $(PARROT_BIN_DIR)\libparrot.dll .' : ''; + $config{'win32_libparrot_copy'} = $is_win32 ? 'copy $(PARROT_BIN_DIR)\libparrot.dll .' : ''; + $config{'win32_force_shell'} = $is_win32 ? 'SHELL = cmd' : ''; + $maketext =~ s/@(\w+)@/$config{$1}/g; - if ($^O eq 'MSWin32') { + + if ($is_win32) { $maketext =~ s{/}{\\}g; $maketext =~ s{\\\*}{\\\\*}g; $maketext =~ s{(?:git|http):\S+}{ do {my $t = $&; $t =~ s'\\'/'g; $t} }eg; diff --git a/build/Makefile.in b/build/Makefile.in index d1e2ac7..21d0cde 100644 --- a/build/Makefile.in +++ b/build/Makefile.in @@ -11,6 +11,7 @@ PARROT_LIB_DIR = @libdir@$(PARROT_VERSION) PARROT_SRC_DIR = @srcdir@$(PARROT_VERSION) HAS_ICU = @has_icu@ +@win32_force_shell@ CC = @cc@ CFLAGS = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @gc_flag@ EXE = @exe@
Download (untitled) / with headers
text/plain 254b
在 2011-03-09 02:14:25 星期三 时,jimmy 写到: Show quoted text
> I sent a pull request https://github.com/rakudo/rakudo/pull/19 . >
it's applied as https://github.com/rakudo/rakudo/commit/e3bd9aaa62bbecc09b347585105e957d 49804d12 this ticket can be closed.
Download (untitled) / with headers
text/plain 120b
On Tue Mar 15 03:55:57 2011, jimmy wrote: Show quoted text
> > this ticket can be closed.
wfm and we seem to be closing tickets today.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org