From 77fef1ee3314c3e20799f6bc53e27c9f938770a3 Mon Sep 17 00:00:00 2001 From: alx Date: Thu, 22 Oct 2020 21:56:46 +0100 Subject: [PATCH 1/2] Prefs Read/Write Fix Fix to preference read/write, following removal of plistlib.readPlist() and plistlib.writePlist() from Python 3.8. --- Makefile | 4 ++-- pkgroot/usr/local/outset/outset | 25 ++++++++++++++++--------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index ba1c616..19de729 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,12 @@ PKGTITLE="outset" -PKGVERSION="3.0.1" +PKGVERSION="3.0.2" PKGID=com.github.outset PROJECT="outset" ################################################# ##Help - Show this help menu -help: +help: @fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//' ## clean - Clean up temporary working directories diff --git a/pkgroot/usr/local/outset/outset b/pkgroot/usr/local/outset/outset index 45e4bdb..d738fcd 100755 --- a/pkgroot/usr/local/outset/outset +++ b/pkgroot/usr/local/outset/outset @@ -317,7 +317,8 @@ def process_items(path, delete_items=False, once=False, override={}): if once: try: - d = plistlib.readPlist(run_once_plist) + with open(run_once_plist, 'rb') as fp: + d = plistlib.load(fp) except: d = {} @@ -367,8 +368,8 @@ def process_items(path, delete_items=False, once=False, override={}): cleanup(script) if d: - plistlib.writePlist(d, run_once_plist) - + with open(run_once_plist, 'wb') as fp: + plistlib.dump(d, fp) def main(): """Main method""" @@ -447,7 +448,8 @@ def main(): prefs = {} if os.path.exists(outset_preferences): - prefs = plistlib.readPlist(outset_preferences) + with open(outset_preferences, 'rb') as fp: + prefs = plistlib.load(fp) network_wait = prefs.get("wait_for_network", True) network_timeout = prefs.get("network_timeout", 180) ignored_users = prefs.get("ignored_users", []) @@ -495,7 +497,8 @@ def main(): prefs["network_timeout"] = network_timeout prefs["ignored_users"] = ignored_users prefs["override_login_once"] = override_login_once - plistlib.writePlist(prefs, outset_preferences) + with open(outset_preferences, 'wb') as fp: + plistlib.dump(prefs, fp) logging.info("Boot processing complete") @@ -578,7 +581,8 @@ def main(): users_to_ignore = list(set(users_to_add)) if users_to_add else None if users_to_ignore: prefs["ignored_users"] = users_to_ignore - plistlib.writePlist(prefs, outset_preferences) + with open(outset_preferences, 'wb') as fp: + plistlib.dump(prefs, fp) if args.remove_ignored_user: if os.getuid() != 0: @@ -590,7 +594,8 @@ def main(): for user in users_to_remove: if user in prefs["ignored_users"]: prefs["ignored_users"].remove(user) - plistlib.writePlist(prefs, outset_preferences) + with open(outset_preferences, 'wb') as fp: + plistlib.dump(prefs, fp) if args.add_override: if os.getuid() != 0: @@ -611,7 +616,8 @@ def main(): prefs["override_login_once"].update(override_items) else: prefs["override_login_once"] = override_items - plistlib.writePlist(prefs, outset_preferences) + with open(outset_preferences, 'wb') as fp: + prefs = plistlib.dump(fp) if args.remove_override: if os.getuid() != 0: @@ -624,7 +630,8 @@ def main(): script = os.path.join(login_once_dir, script) if script in prefs["override_login_once"]: del prefs["override_login_once"][script] - plistlib.writePlist(prefs, outset_preferences) + with open(outset_preferences, 'wb') as fp: + prefs = plistlib.dump(fp) if args.version: print(__version__) From c1f375432fc40dc27f8b129b25d4f93e28b194af Mon Sep 17 00:00:00 2001 From: alx Date: Fri, 23 Oct 2020 00:05:46 +0100 Subject: [PATCH 2/2] plist Write issue fix Had forgotten to pass prefs to plistlib.dump(). --- pkgroot/usr/local/outset/outset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgroot/usr/local/outset/outset b/pkgroot/usr/local/outset/outset index d738fcd..21afb27 100755 --- a/pkgroot/usr/local/outset/outset +++ b/pkgroot/usr/local/outset/outset @@ -617,7 +617,7 @@ def main(): else: prefs["override_login_once"] = override_items with open(outset_preferences, 'wb') as fp: - prefs = plistlib.dump(fp) + plistlib.dump(prefs, fp) if args.remove_override: if os.getuid() != 0: @@ -631,7 +631,7 @@ def main(): if script in prefs["override_login_once"]: del prefs["override_login_once"][script] with open(outset_preferences, 'wb') as fp: - prefs = plistlib.dump(fp) + plistlib.dump(prefs, fp) if args.version: print(__version__)