diff options
| author | Massimiliano Minella <massimiliano.minella@se.com> | 2026-06-03 18:36:18 +0200 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-06-10 18:17:10 +0000 |
| commit | 9d0007a369deb4a6346f5ab7a9e6d432a8ed14fe (patch) | |
| tree | c8eb06864b873b03baee90704e491ad4ffac22cb | |
| parent | 69efbf20980323bf0602ed85d44c0cc19ef5c6bf (diff) | |
| download | meta-virtualization-scarthgap.tar.gz | |
libvirt: fix python3 compatibility in hook_support.pyscarthgap
By default Popen expects all the streams to be bytes-like objects but,
in the Popen.communicate() function call, the "input" argument is a
string, making the call fail with the error:
qemu hook error: a bytes-like object is required, not 'str'
Fix the error by setting text mode to True in the subprocess creation.
Also fix the "SyntaxWarning: invalid escape sequence '\w'" in the regex
used to match script names.
Signed-off-by: Massimiliano Minella <massimiliano.minella@se.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit fb1d9123351c86d7804e78e1518788913fb7c672)
| -rwxr-xr-x | recipes-extended/libvirt/libvirt/hook_support.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/recipes-extended/libvirt/libvirt/hook_support.py b/recipes-extended/libvirt/libvirt/hook_support.py index 7c5e2a94..63e78b79 100755 --- a/recipes-extended/libvirt/libvirt/hook_support.py +++ b/recipes-extended/libvirt/libvirt/hook_support.py | |||
| @@ -35,7 +35,7 @@ def main(): | |||
| 35 | stdin_save = sys.stdin.readlines() | 35 | stdin_save = sys.stdin.readlines() |
| 36 | # Match the name name of the hook + a dash + atleast | 36 | # Match the name name of the hook + a dash + atleast |
| 37 | # one alpha-numeric character. | 37 | # one alpha-numeric character. |
| 38 | matcher = re.compile( "%s-\w+" % hook_name ) | 38 | matcher = re.compile( rf"%s-\w+" % hook_name ) |
| 39 | for file_name in sorted( os.listdir( hook_dir ) ): | 39 | for file_name in sorted( os.listdir( hook_dir ) ): |
| 40 | file_path = os.path.join( hook_dir, file_name ) | 40 | file_path = os.path.join( hook_dir, file_name ) |
| 41 | if matcher.match( file_name ) \ | 41 | if matcher.match( file_name ) \ |
| @@ -43,7 +43,7 @@ def main(): | |||
| 43 | and os.path.isfile( file_path ) \ | 43 | and os.path.isfile( file_path ) \ |
| 44 | and return_value == 0: | 44 | and return_value == 0: |
| 45 | cmd = [ file_path ] + hook_args | 45 | cmd = [ file_path ] + hook_args |
| 46 | p = subprocess.Popen( cmd, stdin=subprocess.PIPE ) | 46 | p = subprocess.Popen( cmd, stdin=subprocess.PIPE, text=True ) |
| 47 | p.communicate( input = ''.join( stdin_save ) )[0] | 47 | p.communicate( input = ''.join( stdin_save ) )[0] |
| 48 | return_value = p.wait() | 48 | return_value = p.wait() |
| 49 | except Exception as e: | 49 | except Exception as e: |
