de2af4d74d
The upstream commit 1e422ed of python-keyring moved non-preferred keyring backends to separated package "keyrings.alt", so adding the keyrings.alt and porting the patches related to non-preferred keyring backends to keyrings.alt. Patches are not up to our standard. Bringing them up to standard is future work, tracked by: https://bugs.launchpad.net/starlingx/+bug/1950506. Related-Bug: 1950506 Building successfully. Installing python3-keyrings.alt, python3-keyring and the dependence package tsconfig successfully. Booting up ISO successfully on qemu. Story: 2009221 Task: 43438 Signed-off-by: Yue Tao <yue.tao@windriver.com> Change-Id: I4b70927709f0cc968e32af1d0e2a9402f47b2fe9
52 lines
1.6 KiB
Diff
52 lines
1.6 KiB
Diff
The upstream commit 1e422ed of keyring moves non-preferred keyring
|
|
backends to keyrings.alt package, so porting lock_keyring_file.patch
|
|
to package keyrings.alt
|
|
|
|
Index: keyring-5.3/keyrings/alt/file_base.py
|
|
===================================================================
|
|
--- keyring-5.3.orig/keyrings/alt/file_base.py
|
|
+++ keyring-5.3/keyrings/alt/file_base.py
|
|
@@ -2,6 +2,7 @@ from __future__ import with_statement
|
|
|
|
import os
|
|
import abc
|
|
+import time
|
|
import configparser
|
|
from base64 import encodebytes, decodebytes
|
|
|
|
@@ -138,6 +139,17 @@ class Keyring(FileBacked, KeyringBackend
|
|
config = configparser.RawConfigParser()
|
|
config.read(self.file_path)
|
|
|
|
+ # obtain lock for the keyring file
|
|
+ lock = ''
|
|
+ i = 60
|
|
+ while i:
|
|
+ if not os.path.isfile('/tmp/.keyringlock'):
|
|
+ lock = open('/tmp/.keyringlock', 'w')
|
|
+ break
|
|
+ else:
|
|
+ time.sleep(0.500)
|
|
+ i=i-1
|
|
+
|
|
service = escape_for_ini(service)
|
|
key = escape_for_ini(key)
|
|
|
|
@@ -146,9 +158,13 @@ class Keyring(FileBacked, KeyringBackend
|
|
config.add_section(service)
|
|
config.set(service, key, value)
|
|
|
|
- # save the keyring back to the file
|
|
- with open(self.file_path, 'w') as config_file:
|
|
- config.write(config_file)
|
|
+ if i:
|
|
+ # save the keyring back to the file
|
|
+ with open(self.file_path, 'w') as config_file:
|
|
+ config.write(config_file)
|
|
+ lock.close()
|
|
+ os.remove('/tmp/.keyringlock')
|
|
+
|
|
|
|
def _ensure_file_path(self):
|
|
"""
|