cannot build snapd snap with build-base: core w/o base: core
Metadata
Current evaluation
Closed without resolution or comments. The snapcraft TypeError when using build-base: core without base: core remains unresolved.
Suggested action: —
No scores available.
Issue body
When using just `build-base: core` in the snapd snap, snapcraft fails thusly:
```
Priming fontconfig-bionic
join() argument must be str or bytes, not 'NoneType'
We would appreciate it if you anonymously reported this issue.
No other data than the traceback and the version of snapcraft in use will be sent.
Would you like to send this error data? (Yes/No/Always/View) [no]: view
Traceback (most recent call last):
File "/snap/snapcraft/3834/bin/snapcraft", line 11, in <module>
load_entry_point('snapcraft==3.9.1', 'console_scripts', 'snapcraft')()
File "/snap/snapcraft/3834/lib/python3.6/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/cli/_command.py", line 88, in invoke
return super().invoke(ctx)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/cli/lifecycle.py", line 288, in snap
_execute(steps.PRIME, parts=[], pack_project=True, output=output, **kwargs)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/cli/lifecycle.py", line 79, in _execute
lifecycle.execute(step, project_config, parts)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 122, in execute
executor.run(step, part_names)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 176, in run
self._handle_step(part_names, part, step, current_step, cli_config)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 190, in _handle_step
getattr(self, "_run_{}".format(current_step.name))(part)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 265, in _run_prime
self._run_step(step=steps.PRIME, part=part, progress="Priming")
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 309, in _run_step
getattr(part, step.name)()
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 798, in prime
self._do_runner_step(steps.PRIME)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 245, in _do_runner_step
return getattr(self._runner, "{}".format(step.name))()
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 91, in prime
"override-prime", self._override_prime_scriptlet, self._primedir
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 137, in _run_scriptlet
scriptlet_name, function_call.strip()
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 193, in _handle_builtin_function
function(**function_args)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 819, in _do_prime
dependency_paths = self._handle_elf(snap_files)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 831, in _handle_elf
core_path = common.get_installed_snap_path(self._base)
File "/snap/snapcraft/3834/lib/python3.6/site-packages/snapcraft/internal/common.py", line 92, in get_installed_snap_path
return os.path.join(os.path.sep, "snap", snap_name, "current")
File "/snap/snapcraft/3834/usr/lib/python3.6/posixpath.py", line 94, in join
genericpath._check_arg_types('join', a, *p)
File "/snap/snapcraft/3834/usr/lib/python3.6/genericpath.py", line 149, in _check_arg_types
(funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'NoneType'
```
I believe this is because the _handle_elf function assumes that there will always be a snap specified by `base: ...` when in this case there is not, there is only build-base.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Closed without resolution or comments. The snapcraft TypeError when using build-base: core without base: core remains unresolved. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without resolution. Reported a snapcraft crash when using build-base: core without base: core due to an unhandled None base path. No fix or follow-up was documented. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without comments or resolution. The snapcraft crash report involving build-base without base appears abandoned, with no fix, merge, or external resolution documented. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed without comments or resolution. The report details a snapcraft TypeError when using build-base without base, but no fix was provided, indicating the issue was abandoned or resolved externally. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1839604 build-base seems broken | snapcraft (launchpad) | open | Seven-year-old question about snapcraft rejecting 'base: bare' with 'build-base: core18' via a confusing validation error. No maintainer response; validation was rewritten in snapcraft 8.x, where build-base is now required for bare bases, so the reported combination is now valid. | |
| #4972 Cannot create a snap with base:bare in destructive mode | snapcraft | open | Snapcraft 8.3.2 fails with 'cannot determine build-for architecture' when building a base:bare snap in destructive mode without build-base. Maintainer confirmed build-base is required for bare and plans an earlier, clearer validation error. | |
| #4246 Reported error message building base: core18 with newer snapcrafts is wrong | snapcraft | closed | Closed without resolution. A maintainer noted the error applies to any unsupported base like core17 and suggested improving the message to clarify base incompatibility instead of blaming the plugin. | |
| #1819290 Support for "base: core" | snapcraft (launchpad) | closed | The request to support base: core in snapcraft.yaml was closed without implementation. After seven years of inactivity and snap base evolution, the feature was abandoned and superseded by newer framework versions. | |
| #1803776 snapcraft init missing a base | snapcraft (launchpad) | closed | Closed without resolution. The base requirement for snapcraft init was later implemented in subsequent releases, superseding this report. | |
| #1862256 snapcraft should complain loudly when building base: core20 snap on i386 | snapcraft (launchpad) | closed | Closed as superseded. Improved architecture parsing in snapcraft now correctly rejects unsupported base-architecture combinations, addressing the original request without requiring explicit i386 core20 checks. | |
| #1860550 Defining base snap breaks snapping Subiquity | snapcraft (launchpad) | open | Subiquity snap build with base: core18 leaves /snap/bin empty and snapd stuck seeding in ISO; works without base keyword. Reported ~6.5 years ago with zero comments; core18 is EOL and snapcraft 8.x rewrote base handling, so it is no longer applicable. | |
| #1939713 snapcraft init create base: core18 snap | snapcraft (launchpad) | closed | Closed without direct resolution, likely abandoned due to inactivity. Subsequent Snapcraft releases updated the init default to core20 and core22, effectively resolving the reported behavior. | |
| #2103643 snapcraft whoami fails if run in a place with recipe using base: core | snapcraft (launchpad) | closed | Closed without resolution or fix. The snapcraft whoami command incorrectly parsed snapcraft.yaml and failed on outdated base: core configurations. The issue was abandoned after 513 days with no comments or patches. | |
| #1835532 snapcraft behavior for type: base | snapcraft (launchpad) | closed | Closed without comments. The type: base and build-base configuration behavior was superseded by updated snapcraft core20 implementation. |