New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow more windows environments with git to work correctly with build process #2208
Comments
From @ronaldxs Rakudo now depends on git for both its own source and its tests. For In my previous ticket, RT 78152 One of the patches here, the one for root.in, is actually a one line Hoping this helps, |
From @ronaldxsConfigure.pl.patchdiff --git a/Configure.pl b/Configure.pl
index 9562c7e..6036c10 100644
--- a/Configure.pl
+++ b/Configure.pl
@@ -162,13 +162,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;
|
From @ronaldxsgen_parrot.pl.patchdiff --git a/build/gen_parrot.pl b/build/gen_parrot.pl
index 63173a3..21ad17a 100644
--- a/build/gen_parrot.pl
+++ b/build/gen_parrot.pl
@@ -44,7 +44,8 @@ close $REQ;
}
print "Checking out Parrot r$reqsvn via svn...\n";
-system_or_die(qw(svn checkout -r), $reqsvn , qw(https://svn.parrot.org/parrot/trunk parrot));
+svn_checkout( qw(svn checkout -r), $reqsvn ,
+ qw(https://svn.parrot.org/parrot/trunk parrot) );
chdir('parrot') || die "Can't chdir to 'parrot': $!";
@@ -86,3 +87,20 @@ sub system_or_die {
system( @cmd ) == 0
or die "Command failed (status $?): @cmd\n";
}
+
+sub svn_checkout {
+ my @svn_cmd = @_;
+
+ # detect and cope with cygwin/vista/svn problem
+ # see http://www.cygwin.com/ml/cygwin/2010-01/msg01102.html
+ if ( ($^O eq 'MSWin32') &&
+ (my ($rep_url) = map { m!(https://\S+)! } @svn_cmd)
+ ) {
+ if (not length(`svn info $rep_url`) and length(`svn --version`)) {
+ print "Working around cygwin vista svn issue\n";
+ return system_or_die('sh', '-c', qq/"@svn_cmd"/); # -------->
+ }
+ }
+
+ system_or_die(@svn_cmd); # "old" path through code
+}
|
From @ronaldxsMakefile.in.patchdiff --git a/build/Makefile.in b/build/Makefile.in
index 437ab2f..4e18c67 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -1,6 +1,7 @@
# Copyright (C) 2006-2010, The Perl Foundation.
# $Id$
+@win32_force_shell@
PARROT_ARGS =
# values from parrot_config
|
From @ronaldxsroot.in.patchIndex: parrot/config/gen/makefiles/root.in
===================================================================
--- parrot/config/gen/makefiles/root.in (revision 49387)
+++ parrot/config/gen/makefiles/root.in (working copy)
@@ -16,6 +16,7 @@
#
###############################################################################
+#IF(win32):SHELL = cmd
DEVEL = @DEVEL@
VERSION = @VERSION@$(DEVEL)
SOVERSION = @VERSION@
|
From @ronaldxs
The Parrot ticket was created and the related patch has been applied to |
From @ronaldxswin32_cmd_line_git.patchdiff --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@
|
@ronaldxs - Status changed from 'new' to 'open' |
From @zhuomingliangI sent a pull request rakudo/rakudo#19 . |
From @zhuomingliang在 2011-03-09 02:14:25 星期三 时,jimmy 写到:
it's applied as this ticket can be closed. |
From @ronaldxsOn Tue Mar 15 03:55:57 2011, jimmy wrote:
wfm and we seem to be closing tickets today. |
@ronaldxs - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#78214 (status was 'resolved')
Searchable as RT78214$
The text was updated successfully, but these errors were encountered: