This could be something of a corner case situation, but I’ve been hitting snapcraft crashes recently so wanted to make people aware. The error message reported is:
'NoneType' object has no attribute 'priority'
To end up in this situation I think you currently must be using --destructive-mode
such that the system you are building on has received the ubuntu-advantage-tools
package and had the ESM repositories added to the sources list. Disabling those repos again allows the snap to be built.
A simple snapcraft.yaml to cause the crash:
name: my-snap-name
base: core
version: '0.1'
summary: Test stage-package
description: Test
grade: devel
confinement: devmode
parts:
my-part:
plugin: nil
stage-packages:
- tree
Here is the trace:
Traceback (most recent call last):
File "/snap/snapcraft/6466/bin/snapcraft", line 33, in <module>
sys.exit(load_entry_point('snapcraft==4.7.1', 'console_scripts', 'snapcraft')())
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/core.py", line 1236, in invoke
return Command.invoke(self, ctx)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/cli/_runner.py", line 132, in run
snap_command.invoke(ctx)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/cli/_command.py", line 89, in invoke
return super().invoke(ctx)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/cli/lifecycle.py", line 388, in snap
_execute(steps.PRIME, parts=tuple(), pack_project=True, output=output, **kwargs)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/cli/lifecycle.py", line 103, in _execute
lifecycle.execute(step, project_config, parts)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 137, in execute
executor.run(step, part_names)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 191, in run
self._handle_step(part_names, part, step, current_step, cli_config)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 205, in _handle_step
getattr(self, "_run_{}".format(current_step.name))(part)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 247, in _run_pull
self._run_step(step=steps.PULL, part=part, progress="Pulling")
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 322, in _run_step
self._prepare_step(step=step, part=part)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 313, in _prepare_step
preparation_function()
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 475, in prepare_pull
self._fetch_stage_packages()
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 460, in _fetch_stage_packages
target_arch=self._project._get_stage_packages_target_arch(),
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/repo/_deb.py", line 462, in fetch_stage_packages
apt_cache.unmark_packages(filtered_names)
File "/snap/snapcraft/6466/lib/python3.6/site-packages/snapcraft/internal/repo/apt_cache.py", line 256, in unmark_packages
if package.candidate.priority == "essential":
AttributeError: 'NoneType' object has no attribute 'priority'