1316 Commits

Author SHA1 Message Date
a118fdf4e2 Merge pull request #27043 from baude/podman6hld
Add Podman 6 HLD
2025-09-25 20:48:44 +00:00
32c962a177 Add Podman 6 HLD
Adding a design document for Podman 6.  it is a high level design that tries to encompasses proposed changes to Podman and its runtime environment.  It should highlight major changes and features; but you will also find nitty detailed changes that have been idenitified.  It is quite possible things in this document will change but it allows for open, transparent communication.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-09-25 15:16:49 -05:00
9bca0d01d2 Add a design document for Conmon v3
Signed-off-by: Matt Heon <mheon@redhat.com>
2025-09-25 15:54:23 -04:00
5b10b51788 Add a directory for design documents
Add a new directory, which I'm currently dubbing "Features", in
which will live design documents - descriptions of Podman
features that will be implemented or are being implemented.
Add a README and template to this directory to make the purpose
clear and enable easy addition of new design documents.

Signed-off-by: Matt Heon <matthew.heon@pm.me>
2025-09-09 18:12:38 -04:00
4b66e5a27b Add R! to systemd-tmpfiles script for all /tmp dirs
We already used `x` in tmpfiles, to ensure systemd did not remove
our directories or clean their contents (we really need them to
be left unmodified). However, systemd-tmpfiles lets us use more
than one directive per line, which means we can safely add an R!
(recursive remove on reboot) to these lines to ensure that, if
/tmp is not a tmpfs, systemd-tmpfiles will still remove our
temporary files, ensuring reboots are still accurately detected.

Signed-off-by: Matt Heon <mheon@redhat.com>
2025-09-04 09:51:37 -04:00
74f5ed71b9 Merge pull request #26713 from Luap99/deps-script
contrib: add script and docs to analyze dependency usage
2025-08-28 19:32:29 +00:00
d267f8a3dd ci: log wsl --version output
So we know what we are actually running on in tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-08-20 11:51:27 +02:00
5f5519607b contrib: add script and docs to analyze dependency usage
As part of my debloat activity I wrote a small script that makes use of
goda[1] to check our imports and what we can likely trim to reduce the
binary size.

I also added a readme to document what I did basically. This should help
anyone doing this work in the future again.

[1] github.com/loov/goda

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-08-11 11:23:21 +02:00
4410fcb394 cirrus: setup WSL logging
To debug some of the WSL issues we are seeing try to setup logging,
the script parts are taken from the offical logging script[1].

[1] https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-wsl-logs.ps1

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-07-04 14:28:58 +02:00
b099a93580 Bump bundled krunkit from 0.2.1 to 0.2.2
Bump bundled krunkit to 0.2.2. This bundle also includes libkrun
1.14.0, allowing us to enable nested virt on M3 and M4 systems by
default.

Signed-off-by: Sergio Lopez <slp@redhat.com>
2025-06-25 13:09:29 +02:00
5d88999447 remove contrib/modules-load.d
We used this to load the iptables module, since f41 we use nftables by
default which does not need this at all so drop the module load file.

If some distros default still to the legacy iptables they can manually
add the moduled load file back.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-17 18:11:06 +02:00
241f2d7928 remove contrib/snapcraft
AFAICT we never published a snap podman package and this here has never
been updated so remove it.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-17 18:04:16 +02:00
4582c3413f remove contrib/script/size.sh
This script does not bring accurate results. For nice dependency
analysis I can recommend goda:

https://github.com/loov/goda

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-17 18:01:51 +02:00
605b1f7386 remove contrib/remote/containers.conf
The config file is installed in the remote zip as an example but the
content in there is not being updated and no longer really the way to do
things. With podman 5.0 we have a proper system connection file and
people in general should just use the system connection commands.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-17 17:59:06 +02:00
e9aad3d40d remove contrib/dependabot-dance
This script was used when dependabot could not deal with vendoring, we
long since moved to renovate which handles it fine with manual steps so
remove this script.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-17 17:55:35 +02:00
14b1ee5837 remove contrib/dependencies.txt
This list is not up to date, a full list can be found in the
rpm/podman.spec file.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-17 17:54:52 +02:00
febb667865 remove contrib/containers-common
It doesn't seem to be used anywhere and is not maintained. An up to date
specfile is found in the c/common repo.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-17 17:51:48 +02:00
d4a8598ca4 make validate-in-container changes
changing the validate-in-container make target to use
quay.io/libpod/validatepr:latest.  this allows `make validate` to run to
completion doing linting, ed's perl checks, and pre-commit.]

The image is now based on F42 `awk` is not part of the base image, so I added `awk`.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-06-10 12:38:35 -05:00
6d6ebad829 github: remove fcos next image workflow
We do our proper machine os image builds in podman-machine-os now and
with [1] we also publish a next tag for easy testing. As such this
action is no longer needed.

[1] https://github.com/containers/podman-machine-os/pull/128

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-05-19 18:37:38 +02:00
6ae920de8b Bump bundled krunkit to 0.2.1
Bump the bundled krunkit version from 0.2.0 to 0.2.1.

Signed-off-by: Sergio Lopez <slp@redhat.com>
2025-05-12 18:38:28 +02:00
35e1c2033a Fix windows arm64 installer build
This is a followup of https://github.com/containers/podman/pull/26048

It fixes `process-release.ps1` that was always looking for the amd64 release
zip file, even if `$env:PODMAN_ARCH` was set to arm64. With this fix it looks
for the right zip file.

It fixes `winmake.ps1` that, when the `-arch` param was not passed, set `$env:PODMAN_ARCH`
to the empty string instead of the local `$env:GOARCH`.

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-05-07 18:33:32 +02:00
7fddbd4d4d Update winmake.ps1 to build arm64 artifacts
Winmake could only build amd64 artifacts (podman-remote, gvproxy,
win-sshproxy, podman.msi and podman-setup.exe).

This commit makes the necessary change to winmake so that it:
1) builds arm64 artifacts when executed on arm64
2) cross-compiles to arm64/amd64 with the  `-architecture` parameter

It depends on https://github.com/containers/podman/pull/26023 that
removes the need to build `check.c` code (that is not used anyway).

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-05-02 20:22:28 +02:00
804ad4e491 Merge pull request #26023 from l0rd/win-installer-remove-provider-check
Remove providers checks from the Windows Installer
2025-05-02 09:49:13 +00:00
80065f7224 ci: Load null_blk for I/O limit tests
Load the `null_blk` kernel module to have the `/dev/nullb0` device
available for the tests.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2025-04-30 16:21:38 +02:00
9c5f7662d1 Remove providers checks from the Windows Installer
This PR removes the file `check.c` and the instructions
to build it. The file was still built but the resulting
dll was not used by the installer anymore (see
https://github.com/containers/podman/pull/25237).

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-04-30 14:21:00 +02:00
ae9e85bfc5 Update "check.c" to be C23 compliant
Fixes compilation errors with GCC 15.

Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
2025-04-29 11:10:45 +03:00
75aec675d2 chore: use another script to get the version of gvproxy
Signed-off-by: Florent Benoit <fbenoit@redhat.com>
2025-04-22 22:04:08 +02:00
ce0617eac4 Use gvisor-tap-vsock version from go.mod file
Instead of hardcoding gvisor version in different build files, we get gvisor version from go.mod file.

Signed-off-by: Yevhen Vydolob <yvydolob@redhat.com>
2025-04-22 18:44:04 +02:00
1514e5cbcc feat: update vfkit binary to v0.6.1 in macOS installer
Signed-off-by: Florent Benoit <fbenoit@redhat.com>
2025-04-17 22:01:31 +02:00
146f70d9fe Bump bundled krunkit to 0.2.0
Bump the bundled krunkit version from 0.1.4 to 0.2.0.

Signed-off-by: Sergio Lopez <slp@redhat.com>
2025-04-08 10:57:04 +02:00
9d4e820264 Use golangci-lint fmt for pkg/bindings
golangci-lint v2 introduced a new command, fmt, which runs configured
formatters (see formatters in .golangci.yml).

Use this for generated files. Drop separate goimports binary.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2025-04-03 10:41:14 -07:00
60692ca350 Remove exclude_graphdriver_devicemapper build tag
As of commit d4c7ca39f ("update c/{buildah,common,image,storage} to
latest main") no dependencies use exclude_graphdriver_devicemapper tag.

This (hopefully) concludes the work of removing devicemapper graph
driver.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2025-03-30 00:30:03 -07:00
9b9c60d814 CI: use z1d instance for windows machine testing
This one has two local NVMe's attached so we should be able to use fast
local storage to hopefully speed the test up. The NVMe are not mounted
by default so we have to format and mount them. I have choosen Z as
drive letter as I guess it seems most likely that it is free.
Then we need to set the TMPDIR envs to make the machine tests use the
new location.

This speeds up hyperV tests by 20mins and wsl by 9 mins.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-03-26 15:10:04 +01:00
e65687291a Merge pull request #25646 from baude/noarchset
Do not set arch for windows to amd64
2025-03-24 14:21:03 +00:00
5e66d38c9d Do not set arch for windows to amd64
Setting the arch to amd64 breaks arm64 windows builds.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-03-20 15:24:52 -05:00
af29bb5b6e Update CI to run Windows unit tests
Add a new target in winmake.ps1 to run unit tests and use
use it in a new cirrus task.

Fix machine_windows_test.go to make it work in CI machine.

Add the `!windows` tag on tests files that fail on Windows.

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-03-16 13:40:16 +00:00
91072dc940 Win installer test: hardcode latest GH release ID
To avoid problems when automatically downloading
`latest` podman windows installer (e.g. the windows
installer hasn't been included in the GH release
because of a problems with the keys to sign it), we
are now hardcoding the version of Podman that is
used to test the upgrade from latest to current
version.

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-03-12 17:44:26 +01:00
264c8da0b9 Merge pull request #25501 from evidolob/update-gvisor
update gvproxy version to 0.8.4
2025-03-11 13:53:55 +00:00
48662fa32b update gvproxy version to 0.8.4
The 0.8.4 has one important fix[1], which could improve #25121.
Also it set all places to use same version of gvisor-tap-vsock
[1]https://github.com/containers/gvisor-tap-vsock/issues/474

Signed-off-by: Yevhen Vydolob <yvydolob@redhat.com>
2025-03-11 09:51:52 +02:00
5cd58742a2 Use svg for pkginstaller banner
On external monitors with different resolutions, our pkginstaller logo renders poorly. Using vector graphics solves this problem.

Signed-off-by: Ashley Cui <acui@redhat.com>
2025-03-06 15:11:13 -05:00
07e53673f6 cirrus: figure out DEST_BRANCH automatically
Instead of us forgetting to update it on each new branch push.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-02-12 20:10:57 +01:00
91e4f6918a Remove the option to install WSL/HyperV
The Windows installer was able to automatically enable the
Windows features for WSL or HyperV when they were not
already enabled. This PR removes this capability.

Having the installer to automatically install the right prerequiste
(WSL or HyperV) was helpful as users won't have to do it manually to
use Podman after the installation. But it also made the code of
installer more complicated as it needed to manage the installation
of these OS features and a reboot. And we weren't able to automatically
test these scenarios that required a reboot.

In other words the Windows installer, that merely just extracted
some files in a folder, required, to support the installation of
WSL and HyperV, an advanced knowledge of WiX toolkit and of the
Windows Installer SDK, plus contributors-time to manually test
the scenarios that require a reboot.

We decided to remove this capability based on the following reasons:
- We had a couple of regressions in the last month that were hard to
  analyse and fix (#24624 and #24735)
- Podman maintainers currently have a scarce knowledge of the Windows Installer
  and there is no plan to invest in that
- Manually installing WSL or HyperV is not hard (e.g. run `wsl --install`) and
  are features that admins can manage on their fleet of Windows machines
- Competitors such as Docker Desktop don't automatically install these
  components
- Podman `machine init` currently verifies if WSL and HyperV are installed and
  guide the user to install them when they are not

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-02-07 16:10:54 +01:00
39becc2f05 Merge pull request #24781 from ashley-cui/builtfor
Add BuildOrigin field to podman info
2025-02-04 20:13:27 +00:00
89283c6fcc update gvproxy version
The current macos installer gvproxy version has a number of issues
around dns handling[1,2]. They should be fixed now in 0.8.3 as they
reverted the dns changes back to the 0.7.5 code. This should make it
work like it used to be. Our 5.3.2 installer ships the 0.7.5 version so
users of the podman installer never noticed that but we got plenty of
reports from brew users. This needs to be backported into v5.4 to make
sure we do not ship the broken version as part of the installer.

[1] https://github.com/containers/gvisor-tap-vsock/issues/462
[2] https://github.com/containers/gvisor-tap-vsock/issues/466

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-02-03 15:54:34 +01:00
4a0006db33 cirrus: ensure HOME is set in postbuild.sh
go 1.24 on rawhide starts to fail with:
go: could not parse netrc (GOAUTH=netrc): $HOME is not defined

GOAUTH is a new go 1.24 feature, and someone this started to require a
$HOME set. We should have $HOME set already in many places but because
the lib.sh script was not loaded here it was not set.

We have GOPATH set AFAICT otherwise go would never have worked without
$HOME.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-01-31 16:05:39 +01:00
d3706bcad1 Add BuildOrigin field to podman info
BuildOrigin is a field that can be set at build time by packagers. This helps us trace how and where the binary was built and installed from, allowing us to see if the issue is due to a specfic installation or a general podman bug. This field shows up in podman version and in podman info when populated. Note that podman info has a new field, Client, that only appears when running podman info using the remote client.

Automatically set the BuildOrigin field when building the macOS pkginstaller to pkginstaller.

Usage: make podman-remote BUILD_ORIGIN="mypackaging"

Signed-off-by: Ashley Cui <acui@redhat.com>
2025-01-30 14:48:30 -05:00
92bce4fd80 Merge pull request #25135 from l0rd/win-installer-block-351-upgrade
Avoid upgrading from v5.3.1 on Windows
2025-01-28 12:11:35 +00:00
527a51dcc4 Fix podman-restart.service when there are no containers
If no containers need to be restarted, podman-restart prints "Error: you must provide at least one name or id" then fails.

Update the service file to handle start and stop symmetrically.

See discussion in https://github.com/containers/podman/pull/25131

Signed-off-by: Andrew Sayers <andrew-github.com@pileofstuff.org>
2025-01-27 14:53:35 +00:00
3aa09dd521 Avoid upgrading from v5.3.1 on Windows
Added a condition in the Windows WiX bundle that
prevents upgrades from v5.3.1 and recommend the
user to upgrade to v5.3.2 first.

That's needed because version 5.3.1 of the installer
had a bug that got patched in v5.3.2 only.

c.f. https://github.com/containers/podman/issues/24735

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2025-01-27 15:52:18 +01:00
c586d36223 Merge pull request #25021 from l0rd/rm-win-patch
Stop creating a patch for v5.3.1 upgrades on Windows
2025-01-21 13:30:18 +00:00