Arch linux terminal displaying an error message from pikaur with a Arch Linux ascii logo aligned right.

Pikaur System Update Returns TypeError

  • Adam Douglas

A few days ago I tried to upgrade my home theatre PC (HTPC) running Arch Linux using pikaur. To my surprise pikaur failed with a TypeError message, for the most part this just simply doesn’t happen. I didn’t think much of it as I just re-install pikaur and carried on my way. The next day I experienced the same issue again on my main system. This time I decided I would venture out to understand the situation better.

Environment

Tested using the following…

  • Arch Linux x86_64
  • Fish v3.5.1
  • GNU bash v5.1.16
  • Pikaur v1.13.2

Assumptions

  • Steps prefixed with a “$” (dollar sign) represents the CLI (command-line interface) prompt
  • The text after the “$” is to be entered at the CLI
  • Understanding how to use an AUR helper (e.g. Pikaur)

Problem

When running the following pikaur command a TypeError message is returned.

$ pikaur -Syu                                       1634ms  2022-11-30 13:04:32 - m:Nov d:Wed w:48
[sudo] password for adam:
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community                                               7.2 MiB  6.85 MiB/s 00:01 [###############################################] 100%
 multilib is up to date

:: Starting full AUR upgrade...
Reading repository package databases...
Reading local package database...
Reading AUR packages info...
Traceback (most recent call last):
  File "/usr/bin/pikaur", line 36, in <module>
    main()
  File "/usr/lib/python3.10/site-packages/pikaur/main.py", line 328, in main
    cli_entry_point()
  File "/usr/lib/python3.10/site-packages/pikaur/main.py", line 245, in cli_entry_point
    run_with_sudo_loop(pikaur_operation)
  File "/usr/lib/python3.10/site-packages/pikaur/core.py", line 365, in run_with_sudo_loop
    raise catched_exc
  File "/usr/lib/python3.10/site-packages/pikaur/core.py", line 359, in run_with_sudo_loop
    result = main_thread.get()
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 774, in get
    raise self._value
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/usr/lib/python3.10/site-packages/pikaur/main.py", line 91, in cli_install_packages
    InstallPackagesCLI()
  File "/usr/lib/python3.10/site-packages/pikaur/install_cli.py", line 163, in __init__
    self.main_sequence()
  File "/usr/lib/python3.10/site-packages/pikaur/install_cli.py", line 170, in main_sequence
    self.get_all_packages_info()
  File "/usr/lib/python3.10/site-packages/pikaur/install_cli.py", line 251, in get_all_packages_info
    self.install_info = InstallInfoFetcher(
  File "/usr/lib/python3.10/site-packages/pikaur/install_info_fetcher.py", line 69, in __init__
    self.get_all_packages_info()
  File "/usr/lib/python3.10/site-packages/pikaur/install_info_fetcher.py", line 211, in get_all_packages_info
    self.get_aur_pkgs_info(self.not_found_repo_pkgs_names)
  File "/usr/lib/python3.10/site-packages/pikaur/install_info_fetcher.py", line 464, in get_aur_pkgs_info
    aur_updates_list, not_found_aur_pkgs = find_aur_updates()
  File "/usr/lib/python3.10/site-packages/pikaur/updates.py", line 122, in find_aur_updates
    aur_pkgs_info, not_found_aur_pkgs = find_aur_packages(package_names)
  File "/usr/lib/python3.10/site-packages/pikaur/aur.py", line 176, in find_aur_packages
    results = [request.get() for request in requests]
  File "/usr/lib/python3.10/site-packages/pikaur/aur.py", line 176, in <listcomp>
    results = [request.get() for request in requests]
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 774, in get
    raise self._value
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/usr/lib/python3.10/site-packages/pikaur/aur.py", line 135, in aur_rpc_info_with_progress
    result = aur_rpc_info(search_queries)
  File "/usr/lib/python3.10/site-packages/pikaur/aur.py", line 125, in aur_rpc_info
    return [
  File "/usr/lib/python3.10/site-packages/pikaur/aur.py", line 126, in <listcomp>
    AURPackageInfo(**{key.lower(): value for key, value in aur_json.items()})
  File "/usr/lib/python3.10/site-packages/pikaur/aur.py", line 52, in __init__
    super().__init__(**kwargs)
  File "/usr/lib/python3.10/site-packages/pikaur/core.py", line 84, in __init__
    setattr(self, key, value)
  File "/usr/lib/python3.10/site-packages/pikaur/core.py", line 98, in __setattr__
    raise TypeError(
TypeError: 'AURPackageInfo' does not have attribute 'submitter'

Solution

Simply re-install pikaur following my knowledge base article, Arch Linux Install AUR Helper. Once this has been completed pikaur will function again as normal.

I found confirmation from pikaur project issue #680, TypeError: ‘AURPackageInfo’ does not have attribute ‘submitter’. I was not able to figure out anything more on the direct cause of the error.

After the re-install of pikaur I have the following version.

$ pikaur --version
Pikaur v1.14.5.r1.g40c98ca

This is post 39 of 100, and is round 2 of the 100 Days To Offload challenge.

    • change topic
    • change 100DaysToOffload message