Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
e2bf2ff
TMT: Exclude podman packages from podman-next repo for tests
lsm5 Nov 10, 2025
8b5e108
Packit: Bump podman-next repo priority for cockpit tests
lsm5 Nov 12, 2025
6b92c44
Packit: move scripts to contrib/packit-tmt
lsm5 Nov 12, 2025
c615f39
cmd/podman.persistentRunE(): Fatal linux check if no Cgroups v2
lsm5 Nov 3, 2025
5e03fbf
cmd/podman/containers/unpause: Remove cgroupv1 check
lsm5 Nov 3, 2025
bb969c8
libpod/container_internal*.go: Remove Cgroups v1
lsm5 Nov 5, 2025
3734bc5
libpod/info_linux.go: Remove Cgroups v1
lsm5 Nov 5, 2025
c0ea64d
libpod/runtime_linux.go: Remove Cgroups v1
lsm5 Nov 3, 2025
944299e
libpod/runtime_pod_linux.go: Remove Cgroups v1
lsm5 Nov 3, 2025
28b6765
pkg/domain/infra/runtime_libpod.go: Remove Cgroups v1
lsm5 Nov 3, 2025
4c7ee65
pkg/specgen/generate/validate_linux.go: Remove Cgroups v1
lsm5 Nov 3, 2025
039c168
libpod/runtime_ctr.go: Remove Cgroups v1
lsm5 Nov 5, 2025
c2ef4c6
libpod/runtime.go: Remove Cgroups v1
lsm5 Nov 5, 2025
2599c41
libpod/util_linux.go: Remove Cgroups v1
lsm5 Nov 5, 2025
3e0d822
libpod/pod_api.go: Remove Cgroups v1
lsm5 Nov 5, 2025
0d2ba8d
pkg/specgen/namespaces.go: Remove Cgroups v1
lsm5 Nov 5, 2025
39ed460
pkg/domain/infra/abi/pods_stats.go: Remove Cgroups v1
lsm5 Nov 5, 2025
c2716fb
pkg/domain/infra/abi/containers.go: Remove Cgroups v1
lsm5 Nov 5, 2025
7a8d1bf
pkg/api/handlers/libpod/containers_stats.go: Remove Cgroups v1
lsm5 Nov 5, 2025
2589e73
cmd/podman/system/service_abi_linux.go: Remove Cgroups v1
lsm5 Nov 5, 2025
56513c0
pkg/api/handlers/compat/containers_create.go: Remove Cgroups v1
lsm5 Nov 5, 2025
02f5e4a
test/e2e: delete CgV1 skips, delete tests skipped on Cgv2
lsm5 Nov 5, 2025
17edb70
test/system: delete CgV1 skips and skipped CgV2 tests
lsm5 Nov 5, 2025
8237158
docs: Remove Cgroups v1
lsm5 Nov 5, 2025
cddc2f4
Remove ContainerStats.PerCPU: CGV1 only
lsm5 Nov 5, 2025
0024d16
test/e2e: delete CgV1 skips, delete tests skipped on Cgv2
lsm5 Nov 5, 2025
1f30ff2
test/system: Remove cgroupVersion from podman info tests
lsm5 Nov 5, 2025
cf1932b
cmd/podman: Remove slirp from completions
lsm5 Nov 5, 2025
e3db97a
cmd/podman/root.go: Remove networkCmdPathFlagName
lsm5 Nov 5, 2025
98f3403
pkg/specgen/container*.go: Remove slirp
lsm5 Nov 5, 2025
eb1121a
pkg/specgen/generate/oci_linux.go: Remove slirp
lsm5 Nov 5, 2025
109493d
pkg/specgen/generate/pod_create.go: Remove slirp
lsm5 Nov 5, 2025
e382c9e
pkg/specgen/namespaces.go: Remove slirp
lsm5 Nov 5, 2025
0943ebd
pkg/specgen/pod_validate.go: Remove slirp
lsm5 Nov 5, 2025
76153d7
pkg/specgen/podspecgen.go: Remove slirp
lsm5 Nov 5, 2025
56ae374
pkg/specgen/specgen.go: Remove slirp
lsm5 Nov 5, 2025
367be81
libpod/container.go: Remove slirp
lsm5 Nov 5, 2025
14bddbd
libpod/container_api.go: Remove slirp
lsm5 Nov 5, 2025
18258c2
libpod/container_internal_common.go: Remove slirp
lsm5 Nov 5, 2025
b17d8a9
libpod/container_internal_freebsd.go: Remove slirp
lsm5 Nov 5, 2025
9a00479
libpod/container_internal_linux.go: Remove slirp
lsm5 Nov 5, 2025
858b355
libpod/define/info.go: Remove slirp
lsm5 Nov 5, 2025
a4330bb
libpod/info_linux.go: Remove slirp
lsm5 Nov 5, 2025
64f7392
libpod/networking_common.go: Remove slirp
lsm5 Nov 5, 2025
9d37da5
libpod/oci_conmon_common.go: Remove slirp
lsm5 Nov 5, 2025
3e97e2d
test/e2e: Remove slirp
lsm5 Nov 10, 2025
7ecc4a2
test/system: Remove slirp
lsm5 Nov 10, 2025
a7f57ab
TMT: remove slirp4netns dependency
lsm5 Nov 10, 2025
cef226b
RPM: remove slirp4netns
lsm5 Nov 10, 2025
47b8edd
libpod/networking_linux.go: Remove slirp
lsm5 Nov 10, 2025
d8de4d9
libpod/networking_slirp4netns.go: Remove Slirp4netns
lsm5 Nov 10, 2025
4b3e975
pkg/namespaces/namespaces.go: Remove slirp
lsm5 Nov 10, 2025
35ca345
libpod: Remove network-cmd-path
lsm5 Nov 10, 2025
8733df8
Cirrus: Remove slirp4netns from logcollector script
lsm5 Nov 10, 2025
2e7738c
libpod/networking_freebsd.go: Remove getSlirp4netnsIP()
lsm5 Nov 10, 2025
c7767a5
docs/tutorials: Remove slirp
lsm5 Nov 13, 2025
4b6c3c5
docs/source/markdown: Remove slirp
lsm5 Nov 13, 2025
d9d63e6
docs/source/locale: Remove slirp
lsm5 Nov 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .packit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ srpm_build_deps:
- make

actions:
fix-spec-file: "bash .packit-copr-rpm.sh"
pre-sync: "bash .packit-rpm-git-commit.sh"
fix-spec-file: "bash contrib/packit-tmt/packit-copr-rpm.sh"
pre-sync: "bash contrib/packit-tmt/packit-rpm-git-commit.sh"

jobs:
- job: copr_build
Expand Down
16 changes: 0 additions & 16 deletions cmd/podman/common/completion.go
Original file line number Diff line number Diff line change
Expand Up @@ -1327,26 +1327,10 @@ func AutocompleteNetworkFlag(cmd *cobra.Command, _ []string, toComplete string)
"none": nil,
"host": nil,
"private": nil,
"slirp4netns:": func(s string) ([]string, cobra.ShellCompDirective) {
skv := keyValueCompletion{
"allow_host_loopback=": getBoolCompletion,
"cidr=": nil,
"enable_ipv6=": getBoolCompletion,
"mtu=": nil,
"outbound_addr=": nil,
"outbound_addr6=": nil,
"port_handler=": func(_ string) ([]string, cobra.ShellCompDirective) {
return []string{"rootlesskit", "slirp4netns"}, cobra.ShellCompDirectiveNoFileComp
},
}
return completeKeyValues(s, skv)
},
}

networks, _ := getNetworks(cmd, toComplete, completeDefault)
suggestions, dir := completeKeyValues(toComplete, kv)
// add slirp4netns here it does not work correct if we add it to the kv map
suggestions = append(suggestions, "slirp4netns")
return append(networks, suggestions...), dir
}

Expand Down
10 changes: 0 additions & 10 deletions cmd/podman/containers/unpause.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package containers

import (
"context"
"errors"
"fmt"
"os"
"strings"
Expand All @@ -12,9 +11,7 @@ import (
"github.com/containers/podman/v6/cmd/podman/utils"
"github.com/containers/podman/v6/cmd/podman/validate"
"github.com/containers/podman/v6/pkg/domain/entities"
"github.com/containers/podman/v6/pkg/rootless"
"github.com/spf13/cobra"
"go.podman.io/common/pkg/cgroups"
"go.podman.io/common/pkg/completion"
)

Expand Down Expand Up @@ -91,13 +88,6 @@ func unpause(_ *cobra.Command, args []string) error {
var errs utils.OutputErrors
args = utils.RemoveSlash(args)

if rootless.IsRootless() && !registry.IsRemote() {
cgroupv2, _ := cgroups.IsCgroup2UnifiedMode()
if !cgroupv2 {
return errors.New("unpause is not supported for cgroupv1 rootless containers")
}
}

for _, cidFile := range unpauseCidFiles {
content, err := os.ReadFile(cidFile)
if err != nil {
Expand Down
8 changes: 2 additions & 6 deletions cmd/podman/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,8 @@ func setupRemoteConnection(podmanConfig *entities.PodmanConfig) string {
func persistentPreRunE(cmd *cobra.Command, args []string) error {
logrus.Debugf("Called %s.PersistentPreRunE(%s)", cmd.Name(), strings.Join(os.Args, " "))

checkSupportedCgroups()

// Help, completion and commands with subcommands are special cases, no need for more setup
// Completion cmd is used to generate the shell scripts
if cmd.Name() == "help" || cmd.Name() == "completion" || cmd.HasSubCommands() {
Expand Down Expand Up @@ -580,12 +582,6 @@ func rootFlags(cmd *cobra.Command, podmanConfig *entities.PodmanConfig) {
pFlags.StringVar(&podmanConfig.ConmonPath, conmonFlagName, "", "Path of the conmon binary")
_ = cmd.RegisterFlagCompletionFunc(conmonFlagName, completion.AutocompleteDefault)

// TODO (6.0): --network-cmd-path is deprecated, remove this option with the next major release
// We need to find all the places that use r.config.Engine.NetworkCmdPath and remove it
networkCmdPathFlagName := "network-cmd-path"
pFlags.StringVar(&podmanConfig.ContainersConf.Engine.NetworkCmdPath, networkCmdPathFlagName, podmanConfig.ContainersConfDefaultsRO.Engine.NetworkCmdPath, "Path to the command for configuring the network")
_ = cmd.RegisterFlagCompletionFunc(networkCmdPathFlagName, completion.AutocompleteDefault)

networkConfigDirFlagName := "network-config-dir"
pFlags.StringVar(&podmanConfig.ContainersConf.Network.NetworkConfigDir, networkConfigDirFlagName, podmanConfig.ContainersConfDefaultsRO.Network.NetworkConfigDir, "Path of the configuration directory for networks")
_ = cmd.RegisterFlagCompletionFunc(networkConfigDirFlagName, completion.AutocompleteDefault)
Expand Down
18 changes: 18 additions & 0 deletions cmd/podman/root_cgroups_linux.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//go:build linux

package main

import (
"github.com/sirupsen/logrus"
"go.podman.io/common/pkg/cgroups"
)

func checkSupportedCgroups() {
unified, err := cgroups.IsCgroup2UnifiedMode()
if err != nil {
logrus.Fatalf("Error determining cgroups mode")
}
if !unified {
logrus.Fatalf("Cgroups v1 not supported")
}
}
7 changes: 7 additions & 0 deletions cmd/podman/root_cgroups_unsupported.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//go:build !linux

package main

func checkSupportedCgroups() {
// NOP on Non Linux
}
1 change: 0 additions & 1 deletion cmd/podman/system/service_abi.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ func restService(flags *pflag.FlagSet, cfg *entities.PodmanConfig, opts entities

maybeMoveToSubCgroup()

maybeStartServiceReaper()
infra.StartWatcher(libpodRuntime)
server, err := api.NewServerWithSettings(libpodRuntime, listener, opts)
if err != nil {
Expand Down
12 changes: 0 additions & 12 deletions cmd/podman/system/service_abi_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,11 @@
package system

import (
"github.com/containers/podman/v6/pkg/rootless"
"github.com/sirupsen/logrus"
"go.podman.io/common/pkg/cgroups"
"go.podman.io/common/pkg/servicereaper"
)

// Currently, we only need servicereaper on Linux to support slirp4netns.
func maybeStartServiceReaper() {
servicereaper.Start()
}

func maybeMoveToSubCgroup() {
cgroupv2, _ := cgroups.IsCgroup2UnifiedMode()
if rootless.IsRootless() && !cgroupv2 {
logrus.Warnf("Running 'system service' in rootless mode without cgroup v2, containers won't survive a 'system service' restart")
}

if err := cgroups.MaybeMoveToSubCgroup(); err != nil {
// it is a best effort operation, so just print the
// error for debugging purposes.
Expand Down
1 change: 0 additions & 1 deletion contrib/cirrus/logcollector.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ case $1 in
passt
podman
skopeo
slirp4netns
)
case $OS_RELEASE_ID in
fedora)
Expand Down
9 changes: 6 additions & 3 deletions .packit-copr-rpm.sh → contrib/packit-tmt/packit-copr-rpm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,19 @@

set -exo pipefail

. .packit-rpm-git-commit.sh
TOP_GIT_DIR=$(git rev-parse --show-toplevel)

. "$TOP_GIT_DIR"/contrib/packit-tmt/packit-rpm-git-commit.sh

# Get Version from HEAD
VERSION=$(grep '^const RawVersion' version/rawversion/version.go | cut -d\" -f2)

# RPM Version can't take "-"
RPM_VERSION=$(echo $VERSION | sed -e 's/-/~/')
# shellcheck disable=SC2001
RPM_VERSION=$(echo "$VERSION" | sed -e 's/-/~/')

# Generate source tarball from HEAD
git-archive-all -C $(git rev-parse --show-toplevel) --prefix=$PACKAGE-$VERSION/ rpm/$PACKAGE-$VERSION.tar.gz
git-archive-all -C "$TOP_GIT_DIR" --prefix="$PACKAGE-$VERSION/" "$TOP_GIT_DIR/rpm/$PACKAGE-$VERSION.tar.gz"

# RPM Spec modifications

Expand Down
File renamed without changes.
14 changes: 14 additions & 0 deletions contrib/packit-tmt/podman-next-setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash

set -exo pipefail

COPR_REPO_FILE="/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:rhcontainerbot:podman-next.repo"
if compgen -G "$COPR_REPO_FILE" > /dev/null; then
# We want the priority bump appended to the file, we're not looking
# to use a variable.
# shellcheck disable=SC2016
sed -i -n '/^priority=/!p;$apriority=1' "$COPR_REPO_FILE"
fi
# We want all dependencies from podman-next except podman as podman will be fetched
# from the packit copr.
dnf -y upgrade --allowerasing --exclude=podman*
Loading