Commit Graph

27227 Commits

Author SHA1 Message Date
Erik Sjölund
33db50ab24 troubleshooting: document setgroups requirement
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2026-05-11 07:56:57 +02:00
Paul Holzinger
a7ed92280a Merge pull request #28569 from mheon/60_migrate
Podman 6: Automatic BoltDB to SQLite migration
2026-05-08 21:36:52 +02:00
Matt Heon
d420fbfde3 Add migration code for BoltDB to SQLite
This is gated behind a new option in `podman system migrate`,
`--migrate-db`, or by a system restart being performed.

BoltDB support was removed in Podman 6, so we are certain that,
when we start Podman, a SQLite state is in use. However, if we
also detect a valid BoltDB state, we will attempt a migration.

Migration is performed by retrieving all volumes, pods, and
containers (in that order, to ensure there are no dependency
conflicts) from the Bolt database, when adding them to the SQLite
database. If there is a conflict - IE, a container exists in both
SQLite and Bolt - we skip migration for that object. The old DB
is then renamed so we do not try to migrate it again.

Our ability to test complex migration scenarios is limited, but
this should handle simple migrations easily.

This is a heavily adapted version of #27660 rebuilt to work with
Podman 6.0. Substantial changes were required to throw errors
when a BoltDB database is detected and no migration is being
performed. Firstly, for automatic on-reboot migrations, we need
to have a deferred error returned by getDBState (very early in
runtime initialization) that is only acted on much later (once we
know for certain a state refresh is/is not being performed).
The `system migrate --migrate-db` command was much more
problematic. Conceptually, it's not terrible - add a flag to the
runtime to suppress errors, set that flag only when calling the
`system migrate` command with `--migrate-db` - but it unveiled a
serious problem with how we do runtime init (special flags to the
runtime were being ignored because the image runtime set the
Libpod runtime first and had none of the proper handling) which
took a genuinely annoying amount of time to identify and fix.

This cannot be tested automatically, as the ability to create Bolt
databases has been entirely removed with Podman 6.

This also includes 9b810aed3a from
the v5.8 branch by Luap99, which I have had to squash into this
commit to satisfy the build-each-commit check. It was just a
simplification of the SQLite path check.

Signed-off-by: Matt Heon <matthew.heon@pm.me>
2026-05-08 14:07:17 -04:00
Paul Holzinger
34f0ff2c69 Merge pull request #28630 from ashley-cui/fd
Use tmp context dir when building with process substitution
2026-05-08 17:22:24 +02:00
Ashley Cui
462b24479b Use tmp context dir when building with process substitution
Podman defaults to the directory of the Containerfile when no context dir is explicitly provided.
When running podman build with process subsituiton,  `podman build -f <(echo "FROM scratch")`,
the Containerfile path expands to `/dev/fd/<NUM>`, which makes `/dev/fd` the context dir.
When building, Buildah attempts to create an overlay mount on top of the `/dev/fd` context dir, which fails.

In these cases, use a temp context dir instead: `$TMPDIR/podman-build-context-$randnum`

Fixes: https://github.com/containers/podman/issues/28113

Signed-off-by: Ashley Cui <acui@redhat.com>
2026-05-08 10:39:38 -04:00
Brent Baude
ef2117a158 Merge pull request #28665 from lsm5/fix-grpc-lint-macos
pkg/api/grpcpb: auto-format generated protobuf files
2026-05-07 13:52:17 -05:00
Lokesh Mandvekar
89efbf1dce pkg/api/grpcpb: auto-format generated protobuf files
Update build.sh to run gofumpt on generated .pb.go files, and apply
formatting to existing generated files. This fixes gofumpt and inamedparam
lint errors on macOS CI and ensures future regenerations will be
automatically formatted.

Signed-off-by: Lokesh Mandvekar <lsm5@linux.com>
2026-05-07 13:30:23 -04:00
Brent Baude
e034557f0e Merge pull request #28580 from baude/maintainersupdate
Review MAINTAINERS.md
2026-05-07 10:19:31 -05:00
Brent Baude
353e691895 Merge pull request #28660 from Luap99/dead-code
machine/wsl: remove some dead code
2026-05-07 10:06:45 -05:00
Paul Holzinger
d54f1eb6fe machine/wsl: remove some dead code
The config.go file has a build tag that was never used. Also remove
unused functions from other files.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-07 13:34:06 +02:00
Paul Holzinger
6c49dafc5a Merge pull request #28657 from containers/renovate/golangci-golangci-lint-2.x
Update dependency golangci/golangci-lint to v2.12.2
2026-05-06 19:05:14 +02:00
Brent Baude
9f56ea0386 Merge pull request #28648 from mvanhorn/fix-markdown-preprocess-render-drops-unknown-tokens
fix(markdown-preprocess): preserve unknown tokens in render()
2026-05-06 09:17:33 -05:00
Paul Holzinger
c4821ef8d7 Merge pull request #28656 from Luap99/vendor
vendor: update container-libs to latest
2026-05-06 15:38:10 +02:00
renovate[bot]
d9e7eaac87 Update dependency golangci/golangci-lint to v2.12.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 13:32:30 +00:00
Brent Baude
dc27b6f1d6 Merge pull request #28654 from containers/renovate/github.com-hugelgupf-p9-0.x
Update module github.com/hugelgupf/p9 to v0.4.0
2026-05-06 08:31:28 -05:00
Paul Holzinger
056ad339de vendor: update container-libs to latest
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-06 13:52:05 +02:00
renovate[bot]
2ea149d850 Update module github.com/hugelgupf/p9 to v0.4.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 22:30:10 +00:00
Tom Sweeney
18f7925810 Merge pull request #28593 from jwhonce/wip/agents_md
AGENTS.md: add structured Persona section for AI assistants
2026-05-05 18:28:09 -04:00
Matthew Heon
abf885dfcc Re-add a minimal version of BoltDB for migrations
If we're going to maintain migration capability for the full
lifespan of 6 - and I think we're going to have to - the only
sane options are a separate binary that exclusively performs
migrations, or re-adding BoltDB code - in a very minimal way - to
allow us to perform migrations within the standard 6 binary.
After attempting the separate binary approach, results are not
promising - it's impossible to strip enough out to make a truly
small binary that still does what we need to perform a migration.
That leaves re-adding BoltDB code.

This adds a minimal version of the BoltDB code that no longer
claims to be a valid State (freeing us from the requirement of
continued maintenance - we should never touch these bits again
until they get removed in 7) which has just enough to get every
container, pod, and volume in the DB, so we can migrate them to
SQLite.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2026-05-05 15:42:04 -04:00
Brent Baude
de9589a3fb Merge pull request #28650 from giuseppe/memoize-dev-mqueue-presence
specgen: memoize isMqueueSupported with sync.OnceValue
2026-05-05 14:23:09 -05:00
Matt Heon
648e8cb8dd Merge pull request #28628 from baude/Apr242026
Core maintainer meeting minutes
2026-05-05 13:59:56 -04:00
Matt Heon
4f15f702a7 Merge pull request #27436 from iTrooz/build_output_flag
test: ensure complex --output values have correct behaviour
2026-05-05 11:45:23 -04:00
Giuseppe Scrivano
d8df5c37ef specgen: memoize isMqueueSupported with sync.OnceValue
Avoid reading /proc/filesystems on every container creation when
running as a service by caching the result.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2026-05-05 14:41:26 +02:00
Brent Baude
2bec0e6e47 Merge pull request #28649 from Luap99/docs-name
docs: fix incorrect page name
2026-05-05 07:40:33 -05:00
iTrooz
f4389592f9 test: ensure complex --output values have correct behaviour
Signed-off-by: iTrooz <hey@itrooz.fr>
2026-05-05 14:19:04 +02:00
Paul Holzinger
8c9f530cb3 Merge pull request #28621 from l0rd/import-certs-darwin-linux
Import host trusted certificates into the guest machine - macOS and Linux
2026-05-05 13:10:57 +02:00
Paul Holzinger
a267230118 docs: fix incorrect page name
The syntax used here was wrong, see all the other existing pages.

Like this the man page gets rendered as "podman-container.unit(5)()" and
the HTML web page title will just be "NAME — Podman documentation"
instead of the proper man page name.

Fix this by using the right syntax.

Fixes: 7612af4c0e ("Rewrite the Quadlet documentation")

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-05 13:00:53 +02:00
Matt Van Horn
b74c4a3ec7 fix(markdown-preprocess): preserve unknown tokens in render()
The Quadlet documentation rewrite added a render() pass that handles
`<<if VAR>>...<<endif>>` and `<<X if cond else Y>>` conditionals before
the existing `<<a|b>>` substitution and `<<subcommand>>` replacement run.
Tokens that didn't match the new conditional grammar were silently
consumed instead of passed through, so any `<<a|b>>` whose content
didn't fit the conditional shape disappeared from the rendered output.

The user-visible regression (containers/podman#28645) was the line in
options/sysctl.md:

  Note: <<if using the **--ipc=host** option|...>>, the above sysctls
  are not allowed.

Both halves of the substitution start with "if", so the inner string
matched `inner.startswith("if ")`, but the rest of the conditional
recogniser fell through and the whole token was dropped. The same
codepath also dropped `<<subcommand>>` tokens, which insert_file()
expects to replace later.

Fix: when none of the conditional/inline-if branches match, append the
original `<<...>>` token verbatim so downstream replace_type and
`<<subcommand>>` replacement can handle it. Add render() tests covering
the conditional grammar plus the regression case.

Verified by rendering all 307 files under docs/source/markdown/options/
in both is_quadlet=True and is_quadlet=False contexts; no failures.

Closes #28645

Signed-off-by: Matt Van Horn <mvanhorn@gmail.com>
2026-05-05 03:27:34 -07:00
Paul Holzinger
e3a48902f7 Merge pull request #28639 from giuseppe/skip-dev-mqueue-if-not-present
specgen: skip /dev/mqueue mount if not available
2026-05-05 12:13:26 +02:00
Lokesh Mandvekar
dac8c35dd6 Merge pull request #28642 from mheon/check_buildah_vendor
Vendor container-libs and Buildah at main
2026-05-04 15:00:49 -04:00
Giuseppe Scrivano
1bda61b840 specgen: skip /dev/mqueue mount if not supported by the kernel
check /proc/filesystems to determine if the kernel supports the mqueue
filesystem.  If it doesn't, skip the /dev/mqueue mount in the
container.  This can happen with the libkrunfw kernel that does not
have support for mqueue.

Closes: https://github.com/containers/crun/issues/2080
Closes: https://github.com/containers/libkrun/issues/653

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2026-05-04 20:03:55 +02:00
Paul Holzinger
27f572b9f2 Merge pull request #28640 from containers/renovate/golangci-golangci-lint-2.x
Update dependency golangci/golangci-lint to v2.12.1
2026-05-04 19:37:53 +02:00
Matthew Heon
e84d7fe691 Vendor container-libs and Buildah at main
Just making sure that vendoring is running cleanly as we get near
6.0.0 RC1

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2026-05-04 11:37:06 -04:00
Brent Baude
ae6b645d1e Merge pull request #28629 from containers/renovate/github.com-shirou-gopsutil-v4-4.x
Update module github.com/shirou/gopsutil/v4 to v4.26.4
2026-05-04 09:23:49 -05:00
Matt Heon
3d50b81def Merge pull request #27058 from jankaluza/quadlet-docs
Rewrite the Quadlet documentation
2026-05-04 09:54:17 -04:00
renovate[bot]
821e4d263e Update dependency golangci/golangci-lint to v2.12.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 13:19:41 +00:00
Lokesh Mandvekar
2791539ed8 Merge pull request #28632 from containers/renovate/golangci-golangci-lint-2.x
Update dependency golangci/golangci-lint to v2.12.0
2026-05-04 09:18:20 -04:00
Lokesh Mandvekar
3bd384dabb Merge pull request #28634 from containers/renovate/common-image-and-storage-deps
Update common, image, and storage deps to 3ceb1b2
2026-05-04 08:53:43 -04:00
Lokesh Mandvekar
7b7f4228a0 Merge pull request #28638 from containers/renovate/google.golang.org-grpc-1.x
Update module google.golang.org/grpc to v1.81.0
2026-05-04 08:46:28 -04:00
Jan Rodák
d5b4685cc8 Fix lint issue with replace reflect.Ptr with reflect.Pointer
Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-05-04 13:48:36 +02:00
Jan Rodák
8dcb5fbc53 Merge pull request #28631 from eriksjolund/size-troubleshooting-tip
troubleshooting: document keep-id size option
2026-05-04 13:40:46 +02:00
Jan Kaluza
7612af4c0e Rewrite the Quadlet documentation
This commit does the following:

- Splits the podman-systemd.unit.5.md into multiple files - one for each quadlet file type.
- Adds the podman-quadlet-basic-usage.7.md for quadlet examples.
- Majority of the text in the new files is copied from the podman-systemd.unit.5.md
- Adds support for very simple condditional in the markdown_preprocess.
- Uses new logic in markdown_preprocess in options/*.md to use a single .md file for both
  podman subcommands man-pages and quadlet man-pages. This deduplicates the Quadlet man-pages a lot.
- Adds new `@@option quadlet:source.md`` preprocess command to import such .md files from options directory.

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2026-05-04 10:53:36 +02:00
renovate[bot]
afd4d3d71f Update module google.golang.org/grpc to v1.81.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 06:00:01 +00:00
Jhon Honce
e880d0550d AGENTS.md: address review feedback from PR #28593
- Replace absolute GitHub links with relative paths
- Reword "Scope and neighbors" as "Vendored dependencies" focusing
  on the vendor/ boundary (mheon)
- Remove redundant CONTRIBUTING.md reference from Quality bar (mheon)
- Remove "Community stance" bullet as context-window filler (mheon)
- Deduplicate vendor/ pitfall already covered in Persona section

Assisted-by: Cursor:claude-opus-4-6
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2026-05-03 17:16:18 -07:00
Jhon Honce
27fde9c84a AGENTS.md: add structured Persona section for AI assistants
Replace the generic introductory paragraph with a detailed Persona
section that gives AI coding assistants explicit guidance on audience
assumptions, product mental model, upstream scope boundaries, quality
bar, and community expectations when helping Podman contributors.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
Assisted-by: Cursor:claude-opus-4-6
2026-05-03 16:57:51 -07:00
renovate[bot]
ec4b72082a Update common, image, and storage deps to 3ceb1b2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 00:43:55 +00:00
renovate[bot]
74ea692e8b Update dependency golangci/golangci-lint to v2.12.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 18:37:29 +00:00
Erik Sjölund
8a064651e8 troubleshooting: document keep-id size option
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2026-05-01 16:45:53 +02:00
Brent Baude
9f02e222c4 Merge pull request #28586 from craftyguy/fix-cgroup-path-parsing
libpod: limit splitting of cgroup fields
2026-05-01 08:26:08 -05:00
renovate[bot]
ddb3f8ec44 Update module github.com/shirou/gopsutil/v4 to v4.26.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 13:25:53 +00:00