From f28935f8fe9b44ccc07cd2d68263242ee4c4d4a2 Mon Sep 17 00:00:00 2001 From: Lee Miller Date: Sun, 5 May 2024 19:24:04 +0300 Subject: [PATCH] Avoid recursion when trying to build bitmsghash lib in environments where prebuilt one is unusable and make doesn't work. --- src/proofofwork.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/proofofwork.py b/src/proofofwork.py index 49e86f59..5e157db9 100644 --- a/src/proofofwork.py +++ b/src/proofofwork.py @@ -5,11 +5,11 @@ Proof of work calculation import ctypes import os +import subprocess # nosec B404 import sys import tempfile import time from struct import pack, unpack -from subprocess import call # nosec B404 import highlevelcrypto import openclpow @@ -278,18 +278,26 @@ def buildCPoW(): try: if "bsd" in sys.platform: # BSD make - call(["make", "-C", os.path.join(paths.codePath(), "bitmsghash"), - '-f', 'Makefile.bsd']) # nosec B607, B603 + subprocess.check_call([ # nosec B607, B603 + "make", "-C", os.path.join(paths.codePath(), "bitmsghash"), + '-f', 'Makefile.bsd']) else: # GNU make - call([ # nosec B607, B603 + subprocess.check_call([ # nosec B607, B603 "make", "-C", os.path.join(paths.codePath(), "bitmsghash")]) - if os.path.exists(os.path.join(paths.codePath(), "bitmsghash", "bitmsghash.so")): + if os.path.exists( + os.path.join(paths.codePath(), "bitmsghash", "bitmsghash.so") + ): init() notifyBuild(True) else: notifyBuild(True) + except (OSError, subprocess.CalledProcessError): + notifyBuild(True) except: # noqa:E722 + logger.warning( + 'Unexpected exception rised when tried to build bitmsghash lib', + exc_info=True) notifyBuild(True)