Mon Aug 26 16:36:06 2019: Request 49433 was acted upon.
Transaction: Correspondence added by CORION
       Queue: Alien-wxWidgets
     Subject: [patch] make (e=2): The system cannot find the file specified.
   Broken in: 0.44
    Severity: (no value)
       Owner: Nobody
  Requestors: 
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=49433 >


Am Mo 25. Okt 2010, 20:09:40, dandv schrieb:
> On Fri Sep 04 12:33:33 2009, noreply wrote:
> > It wolud be helpful if win32 users were warned if
> >
> > mingw32-make.exe is missing from path
> > make.exe is present in path
> > sh.exe is present in path
> 
> Same for cc1.exe - see https://rt.cpan.org/Ticket/Display.html?id=62451

The attached patch works for me on Windows 10, with sh.exe in 
C:\Users\Corion\AppData\Local\Temp\sh.exe and 
C:\Users\Corion\AppData\Local\Temp in $ENV{PATH}.

This could additionally maybe close RT #87913, which seems to be the same 
problem, or really similar:

    process_begin: CreateProcess(NULL, -c "if not exist gcc_mswudll mkdir 
gcc_mswudll", ...) failed.

-max



>From d64302f8b45901d2b91b9f813f8c4de76cad1714 Mon Sep 17 00:00:00 2001
From: Max Maischein <cor...@corion.net>
Date: Tue, 27 Aug 2019 00:31:28 +0200
Subject: [PATCH] Bail out of building if sh.exe or cc1.exe are found on the
 path

This addresses # RT #49433 , RT #62451

The workaround is to adjust $PATH / $ENV{PATH} to exclude directories
in which sh.exe or cc1.exe is found. Another workaround is to set
$ENV{WX_IGNOREPATH} to a true value to disable this check.
---
 Build.PL | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 mode change 100755 => 100644 Build.PL

diff --git a/Build.PL b/Build.PL
old mode 100755
new mode 100644
index b0728a2..38046e0
--- a/Build.PL
+++ b/Build.PL
@@ -226,6 +226,33 @@ $build->notes( 'userpatch' => $build->args('wxWidgets-userpatch') || '' );
 $build->notes( 'graphicscontext' => $build->args('wxWidgets-graphicscontext') );
 
 if( $build_wx ) {
+    # RT #49433 , RT #62451
+    if( $^O eq 'MSWin32' ) {
+	    my @problematic = (qw(sh.exe cc1.exe));
+        my @problematic_path = map { My::Build::Base->awx_path_search( $_ ) } @problematic;
+                               My::Build::Base->awx_path_search( 'cc1.exe' ),
+                            ;
+        if( @problematic_path and not $ENV{WX_IGNOREPATH} ) {
+            local $" = "\n";
+            print <<EOT;
+The following programs were found in \$ENV{PATH}, and will break the build:
+@problematic_path
+
+PATH is
+
+$ENV{PATH}
+
+Please edit \$ENV{PATH} so these programs are not in it anymore and restart the
+installation. Alternatively, set \$ENV{WX_IGNOREPATH} to a true value and
+restart the installation:
+
+    set WX_IGNOREPATH=1
+
+EOT
+            exit 1;
+        }
+    };
+
     $wx_version = _askmulti( $build, 'wxWidgets-version',
                              'Which wxWidgets version?',
                              [ sort keys %VERSIONS ], $DEFAULT_VERSION );
-- 
2.22.0.windows.1

Reply via email to