I am trying to configure OpenDDS library with Windows 11 and Visual Studio 2022.
I ran the configure file through the Visual Studio Command Prompt and I get the following error.
Downloading ACE+TAO 2.2a with latest patches
Extracting archive ACE+TAO-2.2a_with_latest_patches_NO_makefiles.zip
Use of uninitialized value $prop_value in scalar chomp at configure line 473.
Couldn't get submodule.tools/rapidjson.openddsConfigureCommit from .gitmodules
Stopped at configure line 475.
ERROR: configure failed with errorcode 1
The configure.cmd file has the following code
@echo off
:: Win32 configure script wrapper for OpenDDS
:: Distributed under the OpenDDS License.
:: See: http://www.opendds.org/license.html
for %%x in (perl.exe) do set PERLPATH=%%~dp$PATH:x
if "x%PERLPATH%"=="x" (
echo ERROR: perl.exe was not found. This script requires Perl.
exit /b 1
)
set PERLPATH=
perl configure %*
if %ERRORLEVEL% NEQ 0 (
echo ERROR: configure failed with errorcode %errorlevel%
exit /b %errorlevel%
)
if exist setenv.cmd call setenv.cmd
And I believe the configure file with perl is here https://github.com/objectcomputing/OpenDDS/blob/master/configure
I cross referenced this question "Use of uninitialized value in scalar chomp" in Perl, but I unfortunately do not code in Perl so I do not know how to solve this issue.
2
Answers
Like @TLP mentioned https://stackoverflow.com/a/74026678/8869703, it was indeed a failure with git.
The compressed file from OpenDDS did not contain a git package, so I could not rely on the file from https://opendds.org/downloads.html.
I followed the following steps that I found from the comments by @simpsont-oci here https://github.com/objectcomputing/OpenDDS/discussions/3784 :
git clone https://github.com/objectcomputing/OpenDDS.git
git submodule init
git submodule update
configure
This worked for me.
This is about a pipe file handle that has failed to read what it was supposed to, as described in the code you linked. Line 473 is inside this relatively brief subroutine:
The error message says nothing especially noteworthy, except that the function
chomp
is used on an undefined value. The "real" error message comes below it:In the code you can see it tries to open a pipe to a
git
process, which apparently did open (because it did not die there), but then does not read anything from the file handleWhich then causes the code to die.
What you need to investigate, perhaps, is why the
git
process did not read anything from the pipe.