Skip to content
This repository has been archived by the owner on Aug 23, 2022. It is now read-only.

Building in WSLv1 hangs at CPackRPM: #743

Open
xrkk opened this issue Mar 24, 2021 · 4 comments
Open

Building in WSLv1 hangs at CPackRPM: #743

xrkk opened this issue Mar 24, 2021 · 4 comments
Labels

Comments

@xrkk
Copy link

xrkk commented Mar 24, 2021

WSLv1 with Ubuntu 20.04, building follow instructions, and hangs at command ./remill/scripts/build.sh --llvm-version 9 --download-dir ./.
Last logs:

-- Installing: /home/xxx/mcsema/remill-build/install/usr/local/bin/remill-lift-9
-- Installing: /home/xxx/mcsema/remill-build/install/usr/local/lib/cmake/remill/remillTargets.cmake
-- Installing: /home/xxx/mcsema/remill-build/install/usr/local/lib/cmake/remill/remillTargets-relwithdebinfo.cmake
+ cpack -D REMILL_DATA_PATH=/home/xxx/mcsema/remill-build/install -R ec3dee7b42fabbd0c84d429f3d5f028b03dae56.eec3dee --config /home/xxx/mcsema/remill/packaging/main.cmake
CPack: Create package using TGZ
CPack: Install projects
CPack: - Install directory: /home/xxx/mcsema/remill-build/install
CPack: Create package
CPack: - package: /home/xxx/mcsema/remill-build/remill-ec3dee7b42fabbd0c84d429f3d5f028b03dae56.eec3dee-x86_64.tar.gz generated.
CPack: Create package using DEB
CPack: Install projects
CPack: - Install directory: /home/xxx/mcsema/remill-build/install
CPack: Create package
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/Internal/CPack/CPackDeb.cmake:383 (message):
  CPackDeb: Debian package versioning ([<epoch>:]<version>[-<release>])
  should confirm to "^([0-9]+:)?[0-9][A-Za-z0-9.+~-]*$" regex in order to
  satisfy Debian packaging rules.
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/Internal/CPack/CPackDeb.cmake:763 (cpack_deb_prepare_package_vars)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.
CPack: - package: /home/xxx/mcsema/remill-build/remill-ec3dee7b42fabbd0c84d429f3d5f028b03dae56.eec3dee-x86_64.deb generated.
CPack: Create package using RPM
CPack: Install projects
CPack: - Install directory: /home/xxx/mcsema/remill-build/install
CPack: Create package
CPackRPM: Will use GENERATED spec file: /home/xxx/mcsema/remill-build/_CPack_Packages/RPM/SPECS/remill.spec

Any suggestions?

@alessandrogario
Copy link
Contributor

Hello @xrkk

thanks for the bug report! The packages are not really required to build mcsema, so as a quick workaround you could comment out the Package function in the remill build script.

It does seem like the packaging is causing the script to get stuck; in order to troubleshoot this, we could try to restart the packaging procedure manually so that we can increase verbosity of the CPack build step:

1 - Install remill

Here we create a temporary directory where we can install the library using the DESTDIR environment variable:

mkdir remill_install
export DESTDIR="$(realpath remill_install)"

cmake --build remill_build --target install

2 - Run CPack

The CPack project only needs the path where remill was installed and the library version. For this test, we will just pass a dummy version field

cpack --trace-expand \
      -D REMILL_DATA_PATH="${DESTDIR}" \
      -R 1.0.0 \
      --config remill_source_dir/packaging/main.cmake

The log should help us get more insight on what is happening. An additional flag that can come in useful, if the log does not seem to produce enough output, is --debug.

@xrkk
Copy link
Author

xrkk commented Mar 24, 2021

Comment out Package function in remill build script does making building process pass. Thank you.
When run cpack --trace-expand -D REMILL_DATA_PATH=remill_install -R 1.0.0 --config remill/packaging/main.cmake --debug, last output:

/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1756):  if(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE )
/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1763):  if(CPACK_RPM_USER_BINARY_SPECFILE )
/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1768):  else()
/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1770):  message(CPackRPM: Will use GENERATED spec file: /home/xxx/mcsema/_CPack_Packages/RPM/SPECS/remill.spec )
CPackRPM: Will use GENERATED spec file: /home/xxx/mcsema/_CPack_Packages/RPM/SPECS/remill.spec
/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1772):  configure_file(/home/xxx/mcsema/_CPack_Packages/RPM/SPECS/remill.spec.in /home/xxx/mcsema/_CPack_Packages/RPM/SPECS/remill.spec @ONLY )
/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1775):  if(NOT GENERATE_SPEC_PARTS )
/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1776):  if(RPMBUILD_EXECUTABLE )
/usr/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake(1778):  execute_process(COMMAND /usr/bin/rpmbuild -bb --define _topdir /home/xxx/mcsema/_CPack_Packages/RPM --buildroot %_topdir/remill-1.0.0-x86_64 --target x86_64 /home/xxx/mcsema/_CPack_Packages/RPM/SPECS/remill.spec WORKING_DIRECTORY /home/xxx/mcsema/_CPack_Packages/RPM/remill-1.0.0-x86_64 RESULT_VARIABLE CPACK_RPMBUILD_EXEC_RESULT ERROR_FILE /home/xxx/mcsema/_CPack_Packages/RPM/rpmbuildremill.err OUTPUT_FILE /home/xxx/mcsema/_CPack_Packages/RPM/rpmbuildremill.out )

Still hangs. (I executed above command right after Step 2 provided in the Readme).

@alessandrogario
Copy link
Contributor

Hello @xrkk

thanks for testing this! It does seem to be a problem related to the rpmbuild execution. Is there anything of value logged into the stderr and stdout files?

@xrkk
Copy link
Author

xrkk commented Mar 25, 2021

Full stdout list:
https://gist.github.com/xrkk/9703a4b9d309363cc13f1fba8dad461d

I searched stdout for keyword error and found last line: CPACK_RPMBUILD_EXEC_RESULT ERROR_FILE /home/xxx/mcsema/_CPack_Packages/RPM/rpmbuildremill.err OUTPUT_FILE /home/xxx/mcsema/_CPack_Packages/RPM/rpmbuildremill.out ), but both rpmbuildremill.err and rpmbuildremill.out are empty files with no content.
And 56 Warning in the log.

BTW: the hanging process can't be terminated with Ctrl+C.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants