diff --git a/0001-clarify-container-prune-force.patch b/0001-clarify-container-prune-force.patch new file mode 100644 index 0000000..afc7b90 --- /dev/null +++ b/0001-clarify-container-prune-force.patch @@ -0,0 +1,105 @@ +From 864b5fd9638953d9ee61113c4ba8311cafe9bcd8 Mon Sep 17 00:00:00 2001 +From: baude +Date: Sun, 12 Jan 2020 10:54:14 -0600 +Subject: [PATCH] clarify container prune --force + +the --force parameter should only be used for the CLI and should only +dictate whether to prompt the user for confirmation. + +Fixes: #4844 +Signed-off-by: baude +--- + cmd/podman/containers_prune.go | 4 ++-- + cmd/podman/system_prune.go | 2 +- + docs/source/markdown/podman-container-prune.1.md | 3 +++ + pkg/adapter/containers.go | 4 ++-- + pkg/adapter/containers_remote.go | 2 +- + 5 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/cmd/podman/containers_prune.go b/cmd/podman/containers_prune.go +index 78c50268..6b371d85 100644 +--- a/cmd/podman/containers_prune.go ++++ b/cmd/podman/containers_prune.go +@@ -40,7 +40,7 @@ func init() { + pruneContainersCommand.SetHelpTemplate(HelpTemplate()) + pruneContainersCommand.SetUsageTemplate(UsageTemplate()) + flags := pruneContainersCommand.Flags() +- flags.BoolVarP(&pruneContainersCommand.Force, "force", "f", false, "Force removal of a running container. The default is false") ++ flags.BoolVarP(&pruneContainersCommand.Force, "force", "f", false, "Skip interactive prompt for container removal.") + flags.StringArrayVar(&pruneContainersCommand.Filter, "filter", []string{}, "Provide filter values (e.g. 'until=')") + } + +@@ -68,7 +68,7 @@ Are you sure you want to continue? [y/N] `) + if c.GlobalIsSet("max-workers") { + maxWorkers = c.GlobalFlags.MaxWorks + } +- ok, failures, err := runtime.Prune(getContext(), maxWorkers, c.Force, c.Filter) ++ ok, failures, err := runtime.Prune(getContext(), maxWorkers, c.Filter) + if err != nil { + if errors.Cause(err) == define.ErrNoSuchCtr { + if len(c.InputArgs) > 1 { +diff --git a/cmd/podman/system_prune.go b/cmd/podman/system_prune.go +index 74fdcde9..28f22d33 100644 +--- a/cmd/podman/system_prune.go ++++ b/cmd/podman/system_prune.go +@@ -92,7 +92,7 @@ Are you sure you want to continue? [y/N] `, volumeString) + + rmWorkers := shared.Parallelize("rm") + fmt.Println("Deleted Containers") +- ok, failures, err = runtime.Prune(ctx, rmWorkers, false, []string{}) ++ ok, failures, err = runtime.Prune(ctx, rmWorkers, []string{}) + if err != nil { + if lasterr != nil { + logrus.Errorf("%q", err) +diff --git a/docs/source/markdown/podman-container-prune.1.md b/docs/source/markdown/podman-container-prune.1.md +index 856843a8..1b0561e8 100644 +--- a/docs/source/markdown/podman-container-prune.1.md ++++ b/docs/source/markdown/podman-container-prune.1.md +@@ -11,6 +11,9 @@ podman-container-prune - Remove all stopped containers from local storage + + ## OPTIONS + ++**--force**, **-f** ++Do not provide an interactive prompt for containers removal. ++ + **-h**, **--help** + + Print usage statement +diff --git a/pkg/adapter/containers.go b/pkg/adapter/containers.go +index 3334e9fa..c2206caa 100644 +--- a/pkg/adapter/containers.go ++++ b/pkg/adapter/containers.go +@@ -1048,7 +1048,7 @@ func (r *LocalRuntime) ExecContainer(ctx context.Context, cli *cliconfig.ExecVal + } + + // Prune removes stopped containers +-func (r *LocalRuntime) Prune(ctx context.Context, maxWorkers int, force bool, filters []string) ([]string, map[string]error, error) { ++func (r *LocalRuntime) Prune(ctx context.Context, maxWorkers int, filters []string) ([]string, map[string]error, error) { + var ( + ok = []string{} + failures = map[string]error{} +@@ -1100,7 +1100,7 @@ func (r *LocalRuntime) Prune(ctx context.Context, maxWorkers int, force bool, fi + pool.Add(shared.Job{ + ID: ctr.ID(), + Fn: func() error { +- err := r.Runtime.RemoveContainer(ctx, ctr, force, false) ++ err := r.Runtime.RemoveContainer(ctx, ctr, false, false) + if err != nil { + logrus.Debugf("Failed to prune container %s: %s", ctr.ID(), err.Error()) + } +diff --git a/pkg/adapter/containers_remote.go b/pkg/adapter/containers_remote.go +index 36db4af6..60ee3cb2 100644 +--- a/pkg/adapter/containers_remote.go ++++ b/pkg/adapter/containers_remote.go +@@ -922,7 +922,7 @@ func (r *LocalRuntime) Top(cli *cliconfig.TopValues) ([]string, error) { + } + + // Prune removes stopped containers +-func (r *LocalRuntime) Prune(ctx context.Context, maxWorkers int, force bool, filter []string) ([]string, map[string]error, error) { ++func (r *LocalRuntime) Prune(ctx context.Context, maxWorkers int, filter []string) ([]string, map[string]error, error) { + + var ( + ok = []string{} +-- +2.24.1 + diff --git a/_service b/_service index c7515b4..b78c162 100644 --- a/_service +++ b/_service @@ -4,8 +4,8 @@ https://github.com/containers/libpod.git git podman -1.6.4 -v1.6.4 +1.7.0 +v1.7.0 diff --git a/podman-1.6.4.tar.xz b/podman-1.6.4.tar.xz deleted file mode 100644 index b491d90..0000000 --- a/podman-1.6.4.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:522b37fa9dc089eb37c9c549d9be9490ba3992906c38cbc75f8eb8e6c682c44c -size 4479912 diff --git a/podman-1.7.0.tar.xz b/podman-1.7.0.tar.xz new file mode 100644 index 0000000..5504cd6 --- /dev/null +++ b/podman-1.7.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:645ef1935b0a5e94742e0e9af74cfe152a2beb05bd96e4e7079e735f6d47c36d +size 4685152 diff --git a/podman.changes b/podman.changes index af9f2b7..2d5a723 100644 --- a/podman.changes +++ b/podman.changes @@ -1,3 +1,173 @@ +------------------------------------------------------------------- +Mon Jan 13 11:13:59 UTC 2020 - Ralf Haferkamp + +- Add: 0001-clarify-container-prune-force.patch to fix the --force + flag for the "container prune" command. + (https://github.com/containers/libpod/issues/4844) + +------------------------------------------------------------------- +Wed Jan 8 09:23:01 UTC 2020 - Ralf Haferkamp + +- Update podman to v1.7.0 + * Features + - Added support for setting a static MAC address for containers + - Added support for creating macvlan networks with podman + network create, allowing Podman containers to be attached + directly to networks the host is connected to + - The podman image prune and podman container prune commands + now support the --filter flag to filter what will be pruned, + and now prompts for confirmation when run without --force + (#4410 and #4411) + - Podman now creates CGroup namespaces by default on systems + using CGroups v2 (#4363) + - Added the podman system reset command to remove all Podman + files and perform a factory reset of the Podman installation + - Added the --history flag to podman images to display previous + names used by images (#4566) + - Added the --ignore flag to podman rm and podman stop to not + error when requested containers no longer exist + - Added the --cidfile flag to podman rm and podman stop to read + the IDs of containers to be removed or stopped from a file + - The podman play kube command now honors Seccomp annotations + (#3111) + - The podman play kube command now honors RunAsUser, + RunAsGroup, and selinuxOptions + - The output format of the podman version command has been + changed to better match docker version when using the + --format flag + - Rootless Podman will no longer initialize containers/storage + twice, removing a potential deadlock preventing Podman + commands from running while an image was being pulled (#4591) + - Added tmpcopyup and notmpcopyup options to the --tmpfs and + --mount type=tmpfs flags to podman create and podman run to + control whether the content of directories are copied into + tmpfs filesystems mounted over them + - Added support for disabling detaching from containers by + setting empty detach keys via --detach-keys="" + - The podman build command now supports the --pull and + --pull-never flags to control when images are pulled during a + build + - The podman ps -p command now shows the name of the pod as + well as its ID (#4703) + - The podman inspect command on containers will now display the + command used to create the container + - The podman info command now displays information on registry + mirrors (#4553) + * Bugfixes + - Fixed a bug where Podman would use an incorrect runtime + directory as root, causing state to be deleted after root + logged out and making Podman in systemd services not function + properly + - Fixed a bug where the --change flag to podman import and + podman commit was not being parsed properly in many cases + - Fixed a bug where detach keys specified in libpod.conf were + not used by the podman attach and podman exec commands, which + always used the global default ctrl-p,ctrl-q key combination + (#4556) + - Fixed a bug where rootless Podman was not able to run podman + pod stats even on CGroups v2 enabled systems (#4634) + - Fixed a bug where rootless Podman would fail on kernels + without the renameat2 syscall (#4570) + - Fixed a bug where containers with chained network namespace + dependencies (IE, container A using --net container=B and + container B using --net container=C) would not properly mount + /etc/hosts and /etc/resolv.conf into the container (#4626) + - Fixed a bug where podman run with the --rm flag and without + -d could, when run in the background, throw a 'container does + not exist' error when attempting to remove the container + after it exited + - Fixed a bug where named volume locks were not properly + reacquired after a reboot, potentially leading to deadlocks + when trying to start containers using the volume (#4605 and + #4621) + - Fixed a bug where Podman could not completely remove + containers if sent SIGKILL during removal, leaving the + container name unusable without the podman rm --storage + command to complete removal (#3906) + - Fixed a bug where checkpointing containers started with --rm + was allowed when --export was not specified (the container, + and checkpoint, would be removed after checkpointing was + complete by --rm) (#3774) + - Fixed a bug where the podman pod prune command would fail if + containers were present in the pods and the --force flag was + not passed (#4346) + - Fixed a bug where containers could not set a static IP or + static MAC address if they joined a non-default CNI network + (#4500) + - Fixed a bug where podman system renumber would always throw + an error if a container was mounted when it was run + - Fixed a bug where podman container restore would fail with + containers using a user namespace + - Fixed a bug where rootless Podman would attempt to use the + journald events backend even on systems without systemd + installed + - Fixed a bug where podman history would sometimes not properly + identify the IDs of layers in an image (#3359) + - Fixed a bug where containers could not be restarted when + Conmon v2.0.3 or later was used + - Fixed a bug where Podman did not check image OS and + Architecture against the host when starting a container + - Fixed a bug where containers in pods did not function + properly with the Kata OCI runtime (#4353) + - Fixed a bug where `podman info --format '{{ json . }}' would + not produce JSON output (#4391) + - Fixed a bug where Podman would not verify if files passed to + --authfile existed (#4328) + - Fixed a bug where podman images --digest would not always + print digests when they were available + - Fixed a bug where rootless podman run could hang due to a + race with reading and writing events + - Fixed a bug where rootless Podman would print warning-level + logs despite not be instructed to do so (#4456) + - Fixed a bug where podman pull would attempt to fetch from + remote registries when pulling an unqualified image using the + docker-daemon transport (#4434) + - Fixed a bug where podman cp would not work if STDIN was a + pipe + - Fixed a bug where podman exec could stop accepting input if + anything was typed between the command being run and the exec + session starting (#4397) + - Fixed a bug where podman logs --tail 0 would print all lines + of a container's logs, instead of no lines (#4396) + - Fixed a bug where the timeout for slirp4netns was incorrectly + set, resulting in an extremely long timeout (#4344) + - Fixed a bug where the podman stats command would print CPU + utilizations figures incorrectly (#4409) + - Fixed a bug where the podman inspect --size command would not + print the size of the container's read/write layer if the + size was 0 (#4744) + - Fixed a bug where the podman kill command was not properly + validating signals before use (#4746) + - Fixed a bug where the --quiet and --format flags to podman ps + could not be used at the same time + - Fixed a bug where the podman stop command was not stopping + exec sessions when a container was created without a PID + namespace (--pid=host) + - Fixed a bug where the podman pod rm --force command was not + removing anonymous volumes for containers that were removed + - Fixed a bug where the podman checkpoint command would not + export all changes to the root filesystem of the container if + performed more than once on the same container (#4606) + - Fixed a bug where containers started with --rm would not be + automatically removed on being stopped if an exec session was + running inside the container (#4666) + * Misc + - The fixes to runtime directory path as root can cause strange + behavior if an upgrade is performed while containers are + running + - Updated vendored Buildah to v1.12.0 + - Updated vendored containers/storage library to v1.15.4 + - Updated vendored containers/image library to v5.1.0 + - Kata Containers runtimes (kata-runtime, kata-qemu, and + kata-fc) are now present in the default libpod.conf, but will + not be available unless Kata containers is installed on the + system + - Podman previously did not allow the creation of containers + with a memory limit lower than 4MB. This restriction has been + removed, as the crun runtime can create containers with + significantly less memory +- Remove no longer needed workaround for *.5.md man page sources + ------------------------------------------------------------------- Thu Dec 12 14:30:34 UTC 2019 - Richard Brown diff --git a/podman.spec b/podman.spec index 5fc64a7..bc9af59 100644 --- a/podman.spec +++ b/podman.spec @@ -22,7 +22,7 @@ %define with_libostree 1 %endif Name: podman -Version: 1.6.4 +Version: 1.7.0 Release: 0 Summary: Daemon-less container engine for managing containers, pods and images License: Apache-2.0 @@ -31,6 +31,8 @@ Url: https://github.com/containers/libpod Source0: %{name}-%{version}.tar.xz Source2: libpod.conf Source3: %{name}-rpmlintrc +# PATCH-FIX-UPSTREAM 0001-clarify-container-prune-force.patch https://github.com/containers/libpod/issues/4844 +Patch0: 0001-clarify-container-prune-force.patch BuildRequires: bash-completion BuildRequires: cni BuildRequires: device-mapper-devel @@ -81,8 +83,7 @@ skopeo, as they all share the same datastore backend. %prep %setup -q -#WORKAROUND https://github.com/containers/libpod/issues/4688 -mv docs/*.5.md docs/source/markdown/ +%patch0 -p1 %package cni-config Summary: Basic CNI configuration for podman