From 02032ddf6cbbc4fdeb28ebbe7ae744e6a6001532 Mon Sep 17 00:00:00 2001 From: tyleraharrison Date: Thu, 16 Dec 2021 06:05:31 -0600 Subject: [PATCH 1/6] Fix for PopOS os_release problem Fixes issue #276 --- auto_cpufreq/core.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index 6ab60ae5..671f8607 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -78,7 +78,20 @@ def get_config(config_file=''): return get_config.dict # get distro name -dist_name = distro.id() +try: + dist_name = distro.id() +except PermissionError: + # Current work-around for distros like Pop!_OS where symlink causes permission issues + print("Warning: Cannot get distro name. Attempting to change symlink to hard link for /etc/os-release") + yN = input("Continue? [y/N] ") + if yN.lower() == "y": + # Backup /etc/os-release + os.system("sudo mv /etc/os-release /etc/os-release-backup") + # Create hard link to /etc/os-release + os.system("sudo ln /etc/pop-os/os-release /etc/os-release") + else: + print("Aborting...") + sys.exit(1) # display running version of auto-cpufreq def app_version(): @@ -1085,4 +1098,4 @@ def running_daemon(): exit(1) elif os.getenv("PKG_MARKER") == "SNAP" and dcheck == "enabled": daemon_running_msg() - exit(1) \ No newline at end of file + exit(1) From 2788c33324c95446890dcea20236767cf3906a5e Mon Sep 17 00:00:00 2001 From: tyleraharrison Date: Sat, 18 Dec 2021 15:35:30 -0600 Subject: [PATCH 2/6] Added Pop!_OS detection --- auto_cpufreq/core.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index 671f8607..df4e25e9 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -82,7 +82,15 @@ def get_config(config_file=''): dist_name = distro.id() except PermissionError: # Current work-around for distros like Pop!_OS where symlink causes permission issues - print("Warning: Cannot get distro name. Attempting to change symlink to hard link for /etc/os-release") + print("Warning: Cannot get distro name") + if os.path.exists("/etc/pop-os/os-release"): + print("Pop!_OS detected") + print("Pop!_OS uses a symbolic link for the os-release file, this causes issues \ + and can be fixed by converting to a hard link") + print("Attempting to change symlink to hard link for /etc/os-release -> /etc/pop-os/os-release") + else: + print("Aborting...") + sys.exit(1) yN = input("Continue? [y/N] ") if yN.lower() == "y": # Backup /etc/os-release From 5988c860dab04baa357a6fb621de5243d54265b8 Mon Sep 17 00:00:00 2001 From: tyleraharrison Date: Sat, 18 Dec 2021 16:48:52 -0600 Subject: [PATCH 3/6] Removed redundant abort code in Pop!_OS detection --- auto_cpufreq/core.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index df4e25e9..e5394b03 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -88,15 +88,13 @@ def get_config(config_file=''): print("Pop!_OS uses a symbolic link for the os-release file, this causes issues \ and can be fixed by converting to a hard link") print("Attempting to change symlink to hard link for /etc/os-release -> /etc/pop-os/os-release") - else: - print("Aborting...") - sys.exit(1) - yN = input("Continue? [y/N] ") - if yN.lower() == "y": - # Backup /etc/os-release - os.system("sudo mv /etc/os-release /etc/os-release-backup") - # Create hard link to /etc/os-release - os.system("sudo ln /etc/pop-os/os-release /etc/os-release") + + yN = input("Continue? [y/N] ") + if yN.lower() == "y": + # Backup /etc/os-release + os.system("sudo mv /etc/os-release /etc/os-release-backup") + # Create hard link to /etc/os-release + os.system("sudo ln /etc/pop-os/os-release /etc/os-release") else: print("Aborting...") sys.exit(1) From 694c021adaea45661b6f4ed3014daba960c0dd17 Mon Sep 17 00:00:00 2001 From: tyleraharrison Date: Sat, 18 Dec 2021 17:38:06 -0600 Subject: [PATCH 4/6] Added exit case for pressing 'N' or not pressing anything Also fixed weird whitespace issue with backslash --- auto_cpufreq/core.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index e5394b03..b36e5339 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -85,8 +85,7 @@ def get_config(config_file=''): print("Warning: Cannot get distro name") if os.path.exists("/etc/pop-os/os-release"): print("Pop!_OS detected") - print("Pop!_OS uses a symbolic link for the os-release file, this causes issues \ - and can be fixed by converting to a hard link") + print("Pop!_OS uses a symbolic link for the os-release file, this causes issues and can be fixed by converting to a hard link") print("Attempting to change symlink to hard link for /etc/os-release -> /etc/pop-os/os-release") yN = input("Continue? [y/N] ") @@ -95,6 +94,9 @@ def get_config(config_file=''): os.system("sudo mv /etc/os-release /etc/os-release-backup") # Create hard link to /etc/os-release os.system("sudo ln /etc/pop-os/os-release /etc/os-release") + else: + print("Aborting...") + sys.exit(1) else: print("Aborting...") sys.exit(1) From 9c8920ed4c86319ec633c264f274fd140fbb51d9 Mon Sep 17 00:00:00 2001 From: tyleraharrison Date: Sat, 18 Dec 2021 17:39:37 -0600 Subject: [PATCH 5/6] Changed to "Operation aborted by user" for 'N' --- auto_cpufreq/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index b36e5339..a37910e7 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -95,7 +95,7 @@ def get_config(config_file=''): # Create hard link to /etc/os-release os.system("sudo ln /etc/pop-os/os-release /etc/os-release") else: - print("Aborting...") + print("Operation aborted by user") sys.exit(1) else: print("Aborting...") From ddce46f284667c10742886b6bbf0bdb8e19e9150 Mon Sep 17 00:00:00 2001 From: tyleraharrison Date: Sat, 18 Dec 2021 17:43:46 -0600 Subject: [PATCH 6/6] Update auto_cpufreq/core.py Co-authored-by: bobslept <38557801+bobslept@users.noreply.github.com> --- auto_cpufreq/core.py | 1 + 1 file changed, 1 insertion(+) diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index a37910e7..24bda03a 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -90,6 +90,7 @@ def get_config(config_file=''): yN = input("Continue? [y/N] ") if yN.lower() == "y": + print("Creating hard link for /etc/os-release") # Backup /etc/os-release os.system("sudo mv /etc/os-release /etc/os-release-backup") # Create hard link to /etc/os-release