Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/update-notifier/ |
#!/usr/bin/python3
import fnmatch
import logging
import os
import sys
import apt
import UbuntuDrivers.detect
from gi.repository import GLib
import apt_pkg
STAMP_FILE = os.path.join(GLib.get_user_runtime_dir(), "ubuntu-drivers-oem.package-list")
def any_oem_metapackages_installed(cache):
installed_oem_packages = (
pkg
for pkg in cache
if fnmatch.fnmatch(pkg.name, "oem-*-meta") and pkg.is_installed
)
# Empty if there are no installed OEM packages
return any((True for _ in installed_oem_packages))
def write_oem_metapackage_list(cache, filename):
packages = UbuntuDrivers.detect.system_device_specific_metapackages(
apt_cache=cache
)
if not packages:
return
with open(STAMP_FILE, "w") as f:
f.write("\n".join(packages))
if __name__ == "__main__":
if os.path.exists(STAMP_FILE):
sys.exit(0)
try:
cache = apt.Cache()
except apt_pkg.Error: # broken things in sources.list, or corrupted list files
print(
"ERROR: Can't look into APT cache. Check your sources.list file(s), run `apt update` and try again",
file=sys.stderr,
)
sys.exit(0)
if any_oem_metapackages_installed(cache):
sys.exit(0)
write_oem_metapackage_list(cache, STAMP_FILE)