Closed StarGate-One closed 2 years ago
Did you already inspect or remove D:/vcpkg-test/downloads/tools/msys2/7e05e7aa09f1709f
?
Can you share the config.log
file either from the x64-windows-dbg
folder or as config.log...
from buildtrees/libiconv
?
Did you already inspect or remove
D:/vcpkg-test/downloads/tools/msys2/7e05e7aa09f1709f
? fresh/clean clone of vcpkg for each version of vcpkg - both download and install the pre-requisite msys2 tools in the /downloads/tools/msys2 directory Can you share theconfig.log
file either from thex64-windows-dbg
folder or asconfig.log...
frombuildtrees/libiconv
? includedlibiconv.zip
file in the original post, above, but most of the files are 0 byte size..
I took 2 vanilla clones of vcpkg, download the 2022-03-03 vcpkg-tool in one 2022-02-24 vcpkg-tool in the vcpkg root - libconv and gettext fail to install in the clone containing 2022-03-03 vcpkg-tool and successfully install in the clone containing 2022-02-24 vcpkg-tool.
I then vcpkg remove the gettext and libiconv in the clone with the 2022-02-24 vcpkg-tool and replaced it with the 2022-03-03 vcpkg-tool and again the clone with 2022-02-24 successfully installed the 2 ports where the one now with the 2022-03-03 now fails install on the 2 ports.
If you wish not to download/unzip and inspect its content, you can always clone a vcpkg to another repo, download the 2022-03-03 vcpkg-tool and put in the vcpkg repo root and try to install libconv and gettext and see if you obtain the same results?
I discovered this issue while testing the vcpkg-tool with the latest commits, as I compile my own version of the vcpkg-tool with local customizations, so when these two ports failed, I first compiled the vcpkg-tool without my customizations and netted the same results... So I download the 2022-03-03 vcpkg-tool release and it again failed with these same 2 ports. I dropped down to the 2022-02-24 vcpkg-tool release and the 2 ports installed successfully.
The end result is for whatever reason the bash shell command(s) seems to be failing only on these 2 ports, like it is trying to execute the sed and expr from outside the bash shell itself.
I have run across, on these 2 port, but I only use a very small number of ports from vcpkg ports/features, so there could be others.
Again this is within the above zip file, in the file stdout-x64-windows.log
:
-- Configuring x64-windows-dbg CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:128 (message): Command failed: D:/vcpkg-test/downloads/tools/msys2/7e05e7aa09f1709f/usr/bin/bash.exe --noprofile --norc --debug -c > "V=1 CPP='compile cl.exe -E' CC='compile cl.exe' CC_FOR_BUILD='compile cl.exe' CXX='compile cl.exe' RC='windres-rc rc.exe' WINDRES='windres-rc rc.exe' AR='ar-lib lib.exe' LD='link.exe -verbose' RANLIB=':' STRIP=':' NM='dumpbin.exe -symbols -headers' DLLTOOL='link.exe -verbose -dll' CCAS=':' AS=':' ./../src/1.16-b0c41d3469.clean/configure --build=x86_64-pc-mingw32 \"--enable-extra-encodings\" \"--without-libiconv-prefix\" \"--without-libintl-prefix\" \"--enable-relocatable\" \"ac_cv_prog_ac_ct_STRIP=:\" \"gl_cv_double_slash_root=yes\" \"ac_cv_func_memmove=yes\" \"--disable-silent-rules\" \"--verbose\" \"--enable-shared\" \"--disable-static\" \"--prefix=/D/vcpkg-test/installed/x64-windows/debug\" \"--bindir=\${prefix}/../tools/libiconv/debug/bin\" \"--sbindir=\${prefix}/../tools/libiconv/debug/sbin\" \"--libdir=\${prefix}/lib\" \"--includedir=\${prefix}/../include\" \"--datarootdir=\${prefix}/share/libiconv\"" Working Directory: D:/vcpkg-test/buildtrees/libiconv/x64-windows-dbg Error code: 1 See logs for more information: D:\vcpkg-test\buildtrees\libiconv\config-x64-windows-dbg-err.log
Call Stack (most recent call first): scripts/cmake/vcpkg_configure_make.cmake:815 (vcpkg_execute_required_process) ports/libiconv/portfile.cmake:29 (vcpkg_configure_make) scripts/ports.cmake:145 (include)
Thank you for your time and have a wonderful day. /cc @ras0219-msft @BillyONeal @strega-nil-ms
- If you wish not to download/unzip and inspect its content, ...
I did that, but config.log*
isn't there.
...you can always clone a vcpkg to another repo, download the 2022-03-03 vcpkg-tool and put in the vcpkg repo root and try to install libconv and gettext and see if you obtain the same results?
No, I can't because I don't have Visual Studio. And the ports do build in vcpkg CI, so even if I did, I might not be able reproduce the issue.
Your issue is with tools from MSYS2. MSYS2 is sensitive to mixing different versions of the runtime. So I'm not curiuous about the vpkg tool versions but about other possible sources for these tools. And config.log
has details such as the PATH
seen inside of the configure
script.
- If you do not have the tools to work this issue, then why are you even involved?
I'm a friendly contributor with msys2 and gettext;x64-windows
experience. I'm sorry if you feel my help is inappropriate.
Ok, did this the hard way, started backing out commits until the vcpkg install libiconv
did not fail...
@dg0yt - Note on the failing libiconv, the .\buildtrees\libiconv\config-x64-windows-dbg-out.log is created as a 0 byte file, the .\buildtrees\libiconv\config-x64-windows-dbg-err.log is created with the sed and expr programs not found and to execute in a POSIX shell. The .\buildtrees\libiconv\x64-windows-dbg directory contains only a single 0 byte file name .lineno
.
The .\buildtrees\libiconv\x64-windows-dbg\config.h and config.status are not created.
@ras0219-msft @BillyONeal @strega-nil-ms - I studied the changes made in commit Use System32\tar.exe if present instead of 7zip for zip archives. (#406) but with my C/C++ not being that well, I could not identify the exact line(s) causing the failure.
Note these 2 ports use the vcpkg_configure_make
and vcpkg_install_make
cmake scripts, so I would theorize this may affect some other ports using these same script may also fail with the 2022-03-03 vcpkg-tool
version.
I apologize for closing accidently earlier, the purple "Close with Comment" just look more visually appealing the just the green "Comment" button.
Hope this helps, - I think I figured it out...
dir
from Windows cmd prompt, system32 is C:\Windows\system32
b. When I look at my environment variables, one of my path values is C:\Windows\system32
c. Comparing the output when I did the .\vcpkg install libiconv --debug
>.\somelogname.log 2>&1 when using the 2 different vcpkg versions there are the normal differences, time, process id, etc but the one that caught my attention was the PATH information output was different between the two, more specifically the 2022-02-24 version has C:\Windows\system32
and the 2022-03-03 version has C:\Windows\System32
- see the difference, the one working has lower case system32, the one broke, and upper case System32.cd /c/Windows/System32
and cd /c/Windows/system32
both work, but when I do cd /c/Windows
and do an ls -ald System*
I do get all the Windows/System directories, but when I do a ls -ald system*
I only get the file system.ini - no System directories. I am not familiar with MSYS2 bash (although git uses it also from my understanding) but git bash may had some additional scripts that allows it to find the Windows System versus Windows system directories.@StarGate-One Thanks for the very detailed information.
I think case is the reason for this issue.
In Windows, the system is not case-sensitive. However in mingW this behavior may be broken. This will cause all port builds that use vcpkg_configure_make
in Windows to fail.
Can you please make a PR to https://github.com/microsoft/vcpkg-tool/pulls to fix this?
Thanks!
Could not be repro in CI - closing.
Should wait for next release.
This is fixed now, I close.
Host Environment
To Reproduce Steps to reproduce the behavior:
./vcpkg install libiconv:x64-windows
./vcpkg install gettext:x64-windows
Failure logs -Cut and paste the appropriate build messages from the console output - in zip file -Please attach any additional failure logs mentioned in the console output - in zip file Included port libiconv console log along with the complete .\buildtrees\libiconv folder minus the src libiconv.zip
Additional context It seems a change made in between these 2 release versions of the vcpkg-tool something has caused the bash command to fail somehow? The bootstrap-vcpkg.bat is still downloading the 2022-02-24 version of vcpkg-tool, but I was testing the 2022-03-03 version.