The proposed change breaks extraction for drivers without -open.

A more appropriate fix is to regex extract the version number:
```
version = int(re.findall("[0-9]+", package_name)[0]
```

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to ubuntu-drivers-common in Ubuntu.
https://bugs.launchpad.net/bugs/1993019

Title:
  UnboundLocalError: local variable 'version' referenced before
  assignment

Status in ubuntu-drivers-common package in Ubuntu:
  Confirmed

Bug description:
  Hello, we received a drive-by complaint about the ubuntu-drivers
  autoinstall tool:

  < Fhazal> hye i have problem with ubuntu 22.04 nvidia auto install command
  < Fhazal> this error appear when i try to auto install recommended driver
  < Fhazal> https://pastebin.com/ydZVFT24

  The contents of the pastebin:

  Traceback (most recent call last):
    File "/usr/bin/ubuntu-drivers", line 513, in <module>
      greet()
    File "/usr/lib/python3/dist-packages/click/core.py", line 1128, in __call__
      return self.main(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/click/core.py", line 1053, in main
      rv = self.invoke(ctx)
    File "/usr/lib/python3/dist-packages/click/core.py", line 1659, in invoke
      return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "/usr/lib/python3/dist-packages/click/core.py", line 1395, in invoke
      return ctx.invoke(self.callback, **ctx.params)
    File "/usr/lib/python3/dist-packages/click/core.py", line 754, in invoke
      return __callback(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/click/decorators.py", line 84, in 
new_func
      return ctx.invoke(f, obj, *args, **kwargs)
    File "/usr/lib/python3/dist-packages/click/core.py", line 754, in invoke
      return __callback(*args, **kwargs)
    File "/usr/bin/ubuntu-drivers", line 432, in autoinstall
      command_install(config)
    File "/usr/bin/ubuntu-drivers", line 187, in command_install
      UbuntuDrivers.detect.nvidia_desktop_pre_installation_hook(to_install)
    File "/usr/lib/python3/dist-packages/UbuntuDrivers/detect.py", line 839, in 
nvidia_desktop_pre_installation_hook
      with_nvidia_kms = version >= 470
  UnboundLocalError: local variable 'version' referenced before assignment

  
  Skimming the version on my system it sure feels plausible:

  def nvidia_desktop_pre_installation_hook(to_install):
      '''Applies changes that need to happen before installing the NVIDIA 
drivers'''
      with_nvidia_kms = False

      # Enable KMS if nvidia >= 470
      for package_name in to_install:
          if package_name.startswith('nvidia-driver-'):
              try:
                  version = int(package_name.split('-')[-1])
              except ValueError:
                  pass
              finally:
                  with_nvidia_kms = version >= 470

      if with_nvidia_kms:
          set_nvidia_kms(1)


  If there was an exception splitting, indexing, or converting to an
  int, that 'version' variable may not have a value.

  Thanks

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-drivers-common/+bug/1993019/+subscriptions


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to