summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cirrus.yml11
-rw-r--r--Makefile30
-rw-r--r--changelog.txt248
-rw-r--r--cmd/podman/main_local.go1
-rw-r--r--cmd/podman/main_remote.go49
-rw-r--r--cmd/podman/main_remote_supported.go57
-rw-r--r--cmd/podman/main_remote_windows.go7
-rw-r--r--contrib/cirrus/add_second_partition.sh62
-rwxr-xr-xcontrib/cirrus/build_vm_images.sh2
-rwxr-xr-xcontrib/cirrus/check_image.sh2
-rw-r--r--contrib/cirrus/lib.sh23
-rw-r--r--contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/40_enable_root.cfg1
-rw-r--r--contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/50_custom_disk_setup.cfg4
l---------contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg1
-rw-r--r--contrib/cirrus/packer/fedora_setup.sh4
-rw-r--r--contrib/cirrus/packer/libpod_images.yml2
-rwxr-xr-xcontrib/cirrus/setup_environment.sh7
-rw-r--r--contrib/spec/podman.spec.in2
-rw-r--r--go.mod2
-rw-r--r--go.sum2
-rw-r--r--libpod/runtime_ctr.go8
-rw-r--r--pkg/adapter/runtime_remote.go7
-rw-r--r--pkg/util/utils_windows.go12
-rw-r--r--test/e2e/checkpoint_test.go19
-rw-r--r--test/system/001-basic.bats8
-rw-r--r--test/system/070-build.bats6
-rw-r--r--test/system/200-pod-top.bats2
-rw-r--r--test/system/README.md2
-rw-r--r--test/system/helpers.bash21
-rw-r--r--vendor/github.com/containers/storage/VERSION2
-rw-r--r--vendor/github.com/containers/storage/drivers/btrfs/btrfs.go10
-rw-r--r--vendor/github.com/containers/storage/drivers/windows/windows.go10
-rw-r--r--vendor/modules.txt2
-rw-r--r--version/version.go2
34 files changed, 529 insertions, 99 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 8389c638d..204feb2fd 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -30,9 +30,9 @@ env:
####
#### Cache-image names to test with
###
- FEDORA_CACHE_IMAGE_NAME: "fedora-30-libpod-5479475851034624"
- PRIOR_FEDORA_CACHE_IMAGE_NAME: "fedora-29-libpod-5479475851034624"
- UBUNTU_CACHE_IMAGE_NAME: "ubuntu-18-libpod-5479475851034624"
+ FEDORA_CACHE_IMAGE_NAME: "fedora-30-libpod-5789386598252544"
+ PRIOR_FEDORA_CACHE_IMAGE_NAME: "fedora-29-libpod-5789386598252544"
+ UBUNTU_CACHE_IMAGE_NAME: "ubuntu-18-libpod-5789386598252544"
####
#### Variables for composing new cache-images (used in PR testing) from
@@ -47,6 +47,7 @@ env:
####
SPECIALMODE: "none" # don't do anything special
TEST_REMOTE_CLIENT: false # don't test remote client by default
+ ADD_SECOND_PARTITION: false # will certainly fail inside containers
####
#### Credentials and other secret-sauces, decrypted at runtime when authorized.
@@ -322,6 +323,7 @@ testing_task:
timeout_in: 120m
env:
+ ADD_SECOND_PARTITION: true
matrix:
TEST_REMOTE_CLIENT: true
TEST_REMOTE_CLIENT: false
@@ -357,6 +359,7 @@ special_testing_rootless_task:
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\*\*\*\s*CIRRUS:\s*TEST\s*IMAGES\s*\*\*\*.*'
env:
+ ADD_SECOND_PARTITION: true
SPECIALMODE: 'rootless' # See docs
matrix:
@@ -388,6 +391,7 @@ special_testing_in_podman_task:
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\*\*\*\s*CIRRUS:\s*TEST\s*IMAGES\s*\*\*\*.*'
env:
+ ADD_SECOND_PARTITION: true
SPECIALMODE: 'in_podman' # See docs
timeout_in: 60m
@@ -481,6 +485,7 @@ verify_test_built_images_task:
image_name: "ubuntu-18${BUILT_IMAGE_SUFFIX}"
env:
+ ADD_SECOND_PARTITION: true
matrix:
TEST_REMOTE_CLIENT: true
TEST_REMOTE_CLIENT: false
diff --git a/Makefile b/Makefile
index dbc10aa8c..efd8ad85c 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ export GO111MODULE=off
GO ?= go
DESTDIR ?=
-EPOCH_TEST_COMMIT ?= 55e028a12ee003e057c65e376fe4b723d28ae52e
+EPOCH_TEST_COMMIT ?= bb80586e275fe0d3f47700ec54c9718a28b1e59c
HEAD ?= HEAD
CHANGELOG_BASE ?= HEAD~
CHANGELOG_TARGET ?= HEAD
@@ -253,10 +253,34 @@ remoteintegration: varlink_generate test-binaries ginkgo-remote
localsystem:
# Wipe existing config, database, and cache: start with clean slate.
$(RM) -rf ${HOME}/.local/share/containers ${HOME}/.config/containers
- if timeout -v 1 true; then PODMAN=./bin/podman bats test/system/; else echo "Skipping localsystem: 'timeout -v' unavailable'"; fi
+ if timeout -v 1 true; then PODMAN=./bin/podman bats test/system/; else echo "Skipping $@: 'timeout -v' unavailable'"; fi
remotesystem:
- @echo "remotesystem - unimplemented"
+ # Wipe existing config, database, and cache: start with clean slate.
+ $(RM) -rf ${HOME}/.local/share/containers ${HOME}/.config/containers
+ # Start varlink server using tmp socket; loop-wait for it;
+ # test podman-remote; kill server, clean up tmp socket file.
+ # varlink server spews copious unhelpful output; ignore it.
+ rc=0;\
+ if timeout -v 1 true; then \
+ SOCK_FILE=$(shell mktemp --dry-run --tmpdir io.podman.XXXXXX);\
+ export PODMAN_VARLINK_ADDRESS=unix:$$SOCK_FILE; \
+ ./bin/podman varlink --timeout=0 $$PODMAN_VARLINK_ADDRESS &>/dev/null & \
+ retry=5;\
+ while [[ $$retry -ge 0 ]]; do\
+ echo Waiting for varlink server...;\
+ sleep 1;\
+ ./bin/podman-remote info &>/dev/null && break;\
+ retry=$$(expr $$retry - 1);\
+ done;\
+ env PODMAN=./bin/podman-remote bats test/system/ ;\
+ rc=$$?;\
+ kill %1;\
+ rm -f $$SOCK_FILE;\
+ else \
+ echo "Skipping $@: 'timeout -v' unavailable'";\
+ fi;\
+ exit $$rc
system.test-binary: .install.ginkgo
$(GO) test -c ./test/system
diff --git a/changelog.txt b/changelog.txt
index 51ac92979..beea8dd5c 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,251 @@
+- Changelog for v1.5.0 (2019-08-09)
+ * vendor github.com/containers/storage@v1.13.2
+ * Improve dns-search validation, empty domains now return an error
+ * fix create&run getting --authfile from cli
+ * Add release notes for v1.5.0
+ * Touch up build man page
+ * podman-container-runlabel(1): drop note
+ * make rmi messages more compatible with docker
+ * Add conmon probe to runtime construction
+ * fix copy change file owner if cp from container
+ * Vendor Buildah 1.10.1
+ * Allow the passing of '.' to --dns-search
+ * add make to make installs
+ * namespaces: fix Container() call
+ * Add a test for verifying ENTRYPOINT and CMD
+ * fix port early return
+ * Allow --ro=[true|false] with mount flag
+ * refer to container whose namespace we share
+ * add test to verify hostname is shared in a pod
+ * Properly share UTS namespaces in a pod
+ * When populating CMD, do not include Entrypoint
+ * systemd library conflict with seektail and addmatch
+ * pod top test: reenable
+ * cgroup: fix regression when running systemd
+ * Add invalid credentials fix to docs
+ * Revert "rootless: Rearrange setup of rootless containers"
+ * restore: correctly set StartedTime
+ * container stop: kill conmon
+ * honor libpod.conf in /usr/share/containers
+ * fix system df crashes on unnamed images
+ * Don't log errors to the screen when XDG_RUNTIME_DIR is not set
+ * various fixes for varlink endpoints
+ * add eventlogger to info
+ * Add handling for empty LogDriver
+ * Add rootless NFS and OverlayFS warnings to docs
+ * podman events format json
+ * add godoc link to readme
+ * restore: added --ignore-static-ip option
+ * System tests: resolve hang in rawhide rootless
+ * fix search output limit
+ * Add capability functionality to play kube
+ * Use "none" instead of "null" for the null eventer
+ * Deduplicate capabilities in generate kube
+ * Fix typo
+ * Pass on events-backend config to cleanup processes
+ * Print Pod ID in `podman inspect` output
+ * go build: use `-mod=vendor` for go >= 1.11.x
+ * Use buildah/pkg/parse volume parsing rather then internal version
+ * github.com/containers/storage v1.12.13
+ * Add new exit codes to rm & rmi for running containers & dependencies
+ * Add runtime and conmon path discovery
+ * systemd, cgroupsv2: not bind mount /sys/fs/cgroup/systemd
+ * Ensure we generate a 'stopped' event on force-remove
+ * Fix Dockerfile - a dependency's name was changed
+ * System events are valid, don't error on them
+ * Do not use an events backend when restoring images
+ * Expose Null eventer and allow its use in the Podman CLI
+ * Force tests to use file backend for events
+ * Add a flag to set events logger type
+ * Fix test suite
+ * Retrieve exit codes for containers via events
+ * podman: fix memleak caused by renaming and not deleting the exit file
+ * Cirrus: Fix release dependencies
+ * Cirrus: Fix re-run of release task into no-op.
+ * e2e test: check exit codes for pull, save, inspect
+ * rootless: Rearrange setup of rootless containers
+ * Add comment to describe postConfigureNetNS
+ * Vendor in buildah 1.9.2
+ * Build fix for 32-bit systems.
+ * Set -env variables as appropriate
+ * Touch up input argument error on create
+ * Update libpod.conf to be NixOS friendly
+ * Allow info test to work with usernames w/dash
+ * Touch up XDG, add rootless links
+ * Fix the syntax in the podman export documentation example
+ * fix `podman -v` regression
+ * Move random IP code for tests from checkpoint to common
+ * Fix commit --changes env=X=Y
+ * Update pause/unpause video links and demo
+ * Cirrus: Remove fixed clone depth
+ * podman: support --userns=ns|container
+ * pods: do not to join a userns if there is not any
+ * Documenation & build automation for remote darwin
+ * Cirrus: Bypass release during image-building
+ * Use systemd cgroups for Ubuntu
+ * Cirrus: Ubuntu: Set + Test for $RUNC_BINARY
+ * Cirrus: Simplify evil-unit check in image
+ * Cirrus: Silence systemd-banish noise
+ * Cirrus: Fix image build metadata update
+ * Cirrus: Fix missing -n on CentOS
+ * Cirrus: Remove disused COMMIT variables
+ * Improved hooks monitoring
+ * Fix possible runtime panic if image history len is zero
+ * When retrieving volumes, only use exact names
+ * fix import not ignoring url path
+ * Document SELinux label requirements for the rootfs argument
+ * Fixes issue #3577.
+ * refactor to reduce duplicated error parsing
+ * remove debug prints
+ * Re-add int64 casts for ctime
+ * fix build --network=container
+ * Fix a segfault on Podman no-store commands with refresh
+ * always send generic error in case io fails
+ * only use stdin if specified
+ * buffer errChan
+ * move handleTerminalAttach to generic build
+ * remove unnecessary conversions
+ * add detach keys support for remote
+ * move editing of exitCode to runtime
+ * Update e2e tests for remote exec
+ * Finish up remote exec implementation
+ * golangci-lint cleanup
+ * install.md: mention all build tags
+ * golangci-lint phase 4
+ * Change wait to sleep in podmanimage readme
+ * bump cirrus images to get new conmon
+ * Implement conmon exec
+ * bump conmon to 1.0.0-rc2
+ * Cirrus: Temp. workaround missing imgprune image
+ * vendor github.com/containers/image@v2.0.1
+ * golangci-lint round #3
+ * Remove debug message
+ * Cleanup Pull Message
+ * Cirrus: Fix post-merge env. var. not set.
+ * mkdir -p /etc/cni/net.d requires sudo
+ * Add support for listing read/only and read/write images
+ * support podman ps filter regular expressions
+ * rootless: add rw devices with --privileged
+ * Cirrus: Minor scripting typo fix
+ * fix --dns* and --network not set to host conflict
+ * podman-remote make --size optional in ps
+ * Remove exec PID files after use to prevent memory leaks
+ * Add DefaultContent API to retrieve apparmor profile content
+ * libpod: support for cgroup namespace
+ * Make GOPATH-related symlinking more precise
+ * Populate inspect with security-opt settings
+ * Properly retrieve Conmon PID
+ * Move the HostConfig portion of Inspect inside libpod
+ * Fix play kube command
+ * spec: rework --ulimit host
+ * Cirrus: Add image-test for locked dpkg
+ * Cirrus: Use images w/o periodic svcs
+ * Cirrus: Disable most periodic services/timers
+ * dependency/analyses: simplify scripts
+ * dependency-tree analysis: direct and transitive
+ * analyses: README: consistent code examples
+ * analyses: README: fix typos
+ * analyses: add dependency-tree.sh
+ * analyses: add README.md
+ * hack/analyses -> dependencies/analyses
+ * hack/analyses/go-archive-analysis.sh: fix sorting
+ * add hack/analyses/nm-symbols-analysis.sh
+ * analyse package sizes
+ * Completion: complete "--health-start-period" in bash
+ * Make the healthcheck flags compatible with Docker CLI
+ * healthcheck: reject empty commands
+ * create: ignore check if image has HEALTHCHECK NONE
+ * create: apply defaults on image healthcheck options
+ * healthcheck: improve command list parser
+ * Completion: --no-healthcheck is not an option
+ * Cirrus: Abstract destination branch refs.
+ * Cirrus: Print images that should be pruned
+ * create: improve parser for --healthcheck-command
+ * Improves STD output/readability in combination with debug output.
+ * Fix the double replySendFile()
+ * Cirrus: Update to freshly built cache-images
+ * Cirrus: Execute system-tests during image-validation
+ * Cirrus: Fix missing removal of packaged podman
+ * cgroupsv2: do not enable controllers for the last component
+ * spec: fix userns with less than 5 gids
+ * Fix spelling mistakes in man pages and other docs
+ * Add glob parsing for --env flag
+ * Add support for -env-host
+ * cgroups: fix a leak when using cgroupfs
+ * cgroups: attempt a recursive rmdir
+ * Fix a bug where ctrs could not be removed from pods
+ * golangci-lint pass number 2
+ * Add tests for --ignore-rootfs checkpoint/restore option
+ * Add --ignore-rootfs option for checkpoint/restore
+ * Fix typo in checkpoint/restore related texts
+ * Include root file-system changes in container migration
+ * Add function to get a filtered tarstream diff
+ * Correctly set FinishedTime for checkpointed container
+ * first pass of corrections for golangci-lint
+ * Cirrus: Fix #3543: Failure in 'release' task
+ * fix bug convert volume host path to absolute
+ * Cirrus: Fix 473d06045 / enable build_without_cgo
+ * account for varlink calls that dont use more
+ * runtime: drop spurious message log
+ * Ensure we have a valid store when we refresh
+ * cgroups: skip not existing cpuacct files
+ * cgroups: support creating cgroupsv2 paths
+ * make localsystem: wipe all user config state
+ * podman: create and run honors auth file location
+ * healthcheck: support rootless mode
+ * Use random IP addresses during checkpoint/restore tests
+ * Fix podman-remote usage message to display `podman-remote` instead of `podman`
+ * rootless.md: Include GPFS as a parallel filesystem
+ * speed up rootless tests
+ * podman: add --ulimit host
+ * docs: fix --healthcheck-command option
+ * code cleanup
+ * fix integration flake tests
+ * CONTRIBUTING.md: fix project paths
+ * get last container event
+ * Do not hardcode podman binary location in generate systemd.
+ * Move skipping systemd tests to early setup.
+ * Reload systemd daemon on creation of units location dir in tests.
+ * Add debug information to "generate systemd" test.
+ * Use default conmon pidfile location for root containers.
+ * Use conmon pidfile in generated systemd unit as PIDFile.
+ * Cirrus: Automate releasing of tested binaries
+ * trivial cleanups from golang
+ * ps should use nostore when possible
+ * libpod: discerne partial IDs between containers and pods
+ * Added instruction to enable the user namespaces permanenty in Manjaro
+ * Addressed code review comments
+ * Updated install.md for Manjaro Linux
+ * Vendor latest OCICNI version
+ * Bump current version in README
+ * Wipe PID and ConmonPID in state after container stops
+ * Store Conmon's PID in our state and display in inspect
+ * Restart failed containers in tests
+ * Improve parsing of mounts
+ * Add test for generate kube with volumes
+ * Bump gitvalidation epoch
+ * Bump to v1.4.5-dev
+ * Fix rootless detection error for pause & unpause
+ * Deduplicate volumes
+ * cirrus: add test for compiling without cgo
+ * lock: new lock type "file"
+ * runtime: allow to specify the lock mechanism
+ * lock: disable without cgo
+ * spec: move cgo stuff to their own file
+ * rootless: allow to build without cgo
+ * attach: move cgo bits to a different file
+ * vendor: update containers/psgo
+ * Update the testing documentation with system tests.
+ * Pass along volumes to pod yaml
+ * Configure container volumes for generate kube
+ * configure runtime without store
+ * Add RUN priv'd test for build
+ * Cirrus: Use packaged dependencies
+ * Add exec after checkpoint/restore test
+ * Provide correct SELinux mount-label for restored container
+ * Track if a container is restored from an exported checkpoint
+ * libpod/container_internal: Make all errors loading explicitly configured hook dirs fatal
+
- Changelog for v1.4.4 (2019-07-02)
* Fix release notes
* Ensure locks are freed when ctr/pod creation fails
diff --git a/cmd/podman/main_local.go b/cmd/podman/main_local.go
index 0f43e0b88..587c8260f 100644
--- a/cmd/podman/main_local.go
+++ b/cmd/podman/main_local.go
@@ -1,4 +1,5 @@
// +build !remoteclient
+// +build linux
package main
diff --git a/cmd/podman/main_remote.go b/cmd/podman/main_remote.go
index d534f5bcb..a005e925c 100644
--- a/cmd/podman/main_remote.go
+++ b/cmd/podman/main_remote.go
@@ -3,14 +3,8 @@
package main
import (
- "fmt"
- "os"
"os/user"
- "path/filepath"
- "github.com/containers/libpod/pkg/util"
- "github.com/pkg/errors"
- "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
@@ -31,49 +25,6 @@ func init() {
rootCmd.PersistentFlags().BoolVar(&MainGlobalOpts.Syslog, "syslog", false, "Output logging information to syslog as well as the console")
}
-func setSyslog() error {
- var err error
- cfgHomeDir := os.Getenv("XDG_CONFIG_HOME")
- if cfgHomeDir == "" {
- if cfgHomeDir, err = util.GetRootlessConfigHomeDir(); err != nil {
- return err
- }
- if err = os.Setenv("XDG_CONFIG_HOME", cfgHomeDir); err != nil {
- return errors.Wrapf(err, "cannot set XDG_CONFIG_HOME")
- }
- }
- path := filepath.Join(cfgHomeDir, "containers")
-
- // Log to file if not using syslog
-
- if _, err := os.Stat(path); os.IsNotExist(err) {
- if err := os.MkdirAll(path, 0750); err != nil {
- fmt.Fprintf(os.Stderr, "%v", err)
- return err
- }
- }
-
- // Update path to include file name
- path = filepath.Join(path, "podman.log")
-
- // Create the log file if doesn't exist. And append to it if it already exists.
- file, err := os.OpenFile(path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0640)
- if err != nil {
- // Cannot open log file. Logging to stderr
- fmt.Fprintf(os.Stderr, "%v", err)
- return err
- } else {
- formatter := new(logrus.TextFormatter)
- formatter.FullTimestamp = true
- logrus.SetFormatter(formatter)
- logrus.SetOutput(file)
- }
-
- // Note this message is only logged if --log-level >= Info!
- logrus.Infof("Logging level set to %s", logrus.GetLevel().String())
- return nil
-}
-
func profileOn(cmd *cobra.Command) error {
return nil
}
diff --git a/cmd/podman/main_remote_supported.go b/cmd/podman/main_remote_supported.go
new file mode 100644
index 000000000..bb567c273
--- /dev/null
+++ b/cmd/podman/main_remote_supported.go
@@ -0,0 +1,57 @@
+// +build remoteclient
+// +build linux darwin
+
+package main
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+
+ "github.com/containers/libpod/pkg/util"
+ "github.com/pkg/errors"
+ "github.com/sirupsen/logrus"
+)
+
+func setSyslog() error {
+ var err error
+ cfgHomeDir := os.Getenv("XDG_CONFIG_HOME")
+ if cfgHomeDir == "" {
+ if cfgHomeDir, err = util.GetRootlessConfigHomeDir(); err != nil {
+ return err
+ }
+ if err = os.Setenv("XDG_CONFIG_HOME", cfgHomeDir); err != nil {
+ return errors.Wrapf(err, "cannot set XDG_CONFIG_HOME")
+ }
+ }
+ path := filepath.Join(cfgHomeDir, "containers")
+
+ // Log to file if not using syslog
+
+ if _, err := os.Stat(path); os.IsNotExist(err) {
+ if err := os.MkdirAll(path, 0750); err != nil {
+ fmt.Fprintf(os.Stderr, "%v", err)
+ return err
+ }
+ }
+
+ // Update path to include file name
+ path = filepath.Join(path, "podman.log")
+
+ // Create the log file if doesn't exist. And append to it if it already exists.
+ file, err := os.OpenFile(path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0640)
+ if err != nil {
+ // Cannot open log file. Logging to stderr
+ fmt.Fprintf(os.Stderr, "%v", err)
+ return err
+ } else {
+ formatter := new(logrus.TextFormatter)
+ formatter.FullTimestamp = true
+ logrus.SetFormatter(formatter)
+ logrus.SetOutput(file)
+ }
+
+ // Note this message is only logged if --log-level >= Info!
+ logrus.Infof("Logging level set to %s", logrus.GetLevel().String())
+ return nil
+}
diff --git a/cmd/podman/main_remote_windows.go b/cmd/podman/main_remote_windows.go
new file mode 100644
index 000000000..0ef1370ce
--- /dev/null
+++ b/cmd/podman/main_remote_windows.go
@@ -0,0 +1,7 @@
+// +build remoteclient,windows
+
+package main
+
+func setSyslog() error {
+ return nil
+}
diff --git a/contrib/cirrus/add_second_partition.sh b/contrib/cirrus/add_second_partition.sh
new file mode 100644
index 000000000..73db192c5
--- /dev/null
+++ b/contrib/cirrus/add_second_partition.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+# N/B: This script could mega f*!@up your disks if run by mistake.
+# it is left without the execute-bit on purpose!
+
+# $SLASH_DEVICE is the disk device to be f*xtuP
+SLASH_DEVICE="/dev/sda" # Always the case on GCP
+
+# The unallocated space results from the difference in disk-size between VM Image
+# and runtime request. The check_image.sh test includes a minimum-space check,
+# with the Image size set initially lower by contrib/cirrus/packer/libpod_images.yml
+NEW_PART_START="50%"
+NEW_PART_END="100%"
+
+set -eo pipefail
+
+source $(dirname $0)/lib.sh
+
+if [[ ! -r "/root" ]] || [[ -r "/root/second_partition_ready" ]]
+then
+ echo "Warning: Ignoring attempted execution of $(basename $0)"
+ exit 0
+fi
+
+[[ -n "type -P parted" ]] || \
+ die 2 "The parted command is required."
+
+[[ ! -b ${SLASH_DEVICE}2 ]] || \
+ die 5 "Found unexpected block device ${SLASH_DEVICE}2"
+
+PPRINTCMD="parted --script ${SLASH_DEVICE} print"
+FINDMNTCMD="findmnt --source=${SLASH_DEVICE}1 --mountpoint=/ --canonicalize --evaluate --first-only --noheadings"
+TMPF=$(mktemp -p '' $(basename $0)_XXXX)
+trap "rm -f $TMPF" EXIT
+
+if $FINDMNTCMD | tee $TMPF | egrep -q "^/\s+${SLASH_DEVICE}1"
+then
+ echo "Repartitioning original partition table:"
+ $PPRINTCMD
+else
+ die 6 "Unexpected output from '$FINDMNTCMD': $(<$TMPF)"
+fi
+
+echo "Adding partition offset within unpartitioned space."
+parted --script --align optimal /dev/sda unit % mkpart primary "" "" "$NEW_PART_START" "$NEW_PART_END"
+
+echo "New partition table:"
+$PPRINTCMD
+
+echo "Growing ${SLASH_DEVICE}1 meet start of ${SLASH_DEVICE}2"
+growpart ${SLASH_DEVICE} 1
+
+FSTYPE=$(findmnt --first-only --noheadings --output FSTYPE ${SLASH_DEVICE}1)
+echo "Expanding $FSTYPE filesystem on ${SLASH_DEVICE}1"
+case $FSTYPE in
+ ext*) resize2fs ${SLASH_DEVICE}1 ;;
+ *) die 11 "Script $(basename $0) doesn't know how to resize a $FSTYPE filesystem." ;;
+esac
+
+# Must happen last - signals completion to other tooling
+echo "Recording newly available disk partition device into /root/second_partition_ready"
+echo "${SLASH_DEVICE}2" > /root/second_partition_ready
diff --git a/contrib/cirrus/build_vm_images.sh b/contrib/cirrus/build_vm_images.sh
index dd5182c37..6230610cb 100755
--- a/contrib/cirrus/build_vm_images.sh
+++ b/contrib/cirrus/build_vm_images.sh
@@ -62,6 +62,6 @@ URI="gs://packer-import${POST_MERGE_BUCKET_SUFFIX}/manifest${BUILT_IMAGE_SUFFIX}
gsutil cp packer-manifest.json "$URI"
# Ensure any background 'gcloud compute images update' processes finish
-wait # CentOS has no -n option :(
+wait # No -n option in CentOS, this is the best that can be done :(
echo "Finished. A JSON manifest of produced images is available at $URI"
diff --git a/contrib/cirrus/check_image.sh b/contrib/cirrus/check_image.sh
index 22ed1ddc4..8a9fbae1d 100755
--- a/contrib/cirrus/check_image.sh
+++ b/contrib/cirrus/check_image.sh
@@ -7,7 +7,7 @@ source $(dirname $0)/lib.sh
NFAILS=0
echo "Validating VM image"
-MIN_SLASH_GIGS=50
+MIN_SLASH_GIGS=30
read SLASH_DEVICE SLASH_FSTYPE SLASH_SIZE JUNK <<<$(findmnt --df --first-only --noheadings / | cut -d '.' -f 1)
SLASH_SIZE_GIGS=$(echo "$SLASH_SIZE" | sed -r -e 's/G|g//')
item_test "Minimum available disk space" $SLASH_SIZE_GIGS -gt $MIN_SLASH_GIGS || let "NFAILS+=1"
diff --git a/contrib/cirrus/lib.sh b/contrib/cirrus/lib.sh
index 737ca3c01..ffb7cd45b 100644
--- a/contrib/cirrus/lib.sh
+++ b/contrib/cirrus/lib.sh
@@ -100,6 +100,9 @@ OS_RELEASE_VER="$(source /etc/os-release; echo $VERSION_ID | cut -d '.' -f 1)"
# Combined to ease soe usage
OS_REL_VER="${OS_RELEASE_ID}-${OS_RELEASE_VER}"
+# Installed into cache-images, supports overrides
+# by user-data in case of breakage or for debugging.
+CUSTOM_CLOUD_CONFIG_DEFAULTS="$GOSRC/$PACKER_BASE/cloud-init/$OS_RELEASE_ID/cloud.cfg.d"
# Pass in a list of one or more envariable names; exit non-zero with
# helpful error message if any value is empty
req_env_var() {
@@ -354,7 +357,7 @@ remove_packaged_podman_files(){
}
systemd_banish(){
- echo "Disabling periodic services that could destabilize testing:"
+ echo "Disabling periodic services that could destabilize testing (ignoring errors):"
set +e # Not all of these exist on every platform
for unit in $EVIL_UNITS
do
@@ -372,11 +375,20 @@ systemd_banish(){
_finalize(){
set +e # Don't fail at the very end
- set +e # make errors non-fatal
- echo "Removing leftover giblets from cloud-init"
+ if [[ -d "$CUSTOM_CLOUD_CONFIG_DEFAULTS" ]]
+ then
+ echo "Installing custom cloud-init defaults"
+ sudo cp -v "$CUSTOM_CLOUD_CONFIG_DEFAULTS"/* /etc/cloud/cloud.cfg.d/
+ else
+ echo "Could not find any files in $CUSTOM_CLOUD_CONFIG_DEFAULTS"
+ fi
+ echo "Re-initializing so next boot does 'first-boot' setup again."
+ sudo history -c
cd /
sudo rm -rf /var/lib/cloud/instanc*
sudo rm -rf /root/.ssh/*
+ sudo rm -rf /etc/ssh/*key*
+ sudo rm -rf /etc/ssh/moduli
sudo rm -rf /home/*
sudo rm -rf /tmp/*
sudo rm -rf /tmp/.??*
@@ -386,11 +398,6 @@ _finalize(){
rh_finalize(){
set +e # Don't fail at the very end
- # Allow root ssh-logins
- if [[ -r /etc/cloud/cloud.cfg ]]
- then
- sudo sed -re 's/^disable_root:.*/disable_root: 0/g' -i /etc/cloud/cloud.cfg
- fi
echo "Resetting to fresh-state for usage as cloud-image."
PKG=$(type -P dnf || type -P yum || echo "")
sudo $PKG clean all
diff --git a/contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/40_enable_root.cfg b/contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/40_enable_root.cfg
new file mode 100644
index 000000000..672d1907b
--- /dev/null
+++ b/contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/40_enable_root.cfg
@@ -0,0 +1 @@
+disable_root: 0
diff --git a/contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/50_custom_disk_setup.cfg b/contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/50_custom_disk_setup.cfg
new file mode 100644
index 000000000..c0fdf0e23
--- /dev/null
+++ b/contrib/cirrus/packer/cloud-init/fedora/cloud.cfg.d/50_custom_disk_setup.cfg
@@ -0,0 +1,4 @@
+#cloud-config
+growpart:
+ mode: false
+resize_rootfs: false
diff --git a/contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg b/contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg
new file mode 120000
index 000000000..98a0e3918
--- /dev/null
+++ b/contrib/cirrus/packer/cloud-init/ubuntu/cloud.cfg.d/40_enable_root.cfg
@@ -0,0 +1 @@
+../../fedora/cloud.cfg.d/40_enable_root.cfg \ No newline at end of file
diff --git a/contrib/cirrus/packer/fedora_setup.sh b/contrib/cirrus/packer/fedora_setup.sh
index 1e25a1a3c..e9b145391 100644
--- a/contrib/cirrus/packer/fedora_setup.sh
+++ b/contrib/cirrus/packer/fedora_setup.sh
@@ -17,6 +17,10 @@ trap "sudo rm -rf $GOPATH" EXIT
ooe.sh sudo dnf update -y
+echo "Enabling updates-testing repository"
+ooe.sh sudo dnf install -y 'dnf-command(config-manager)'
+ooe.sh sudo dnf config-manager --set-enabled updates-testing
+
echo "Installing general build/test dependencies"
ooe.sh sudo dnf install -y \
atomic-registries \
diff --git a/contrib/cirrus/packer/libpod_images.yml b/contrib/cirrus/packer/libpod_images.yml
index 91ed3b474..2e2b21426 100644
--- a/contrib/cirrus/packer/libpod_images.yml
+++ b/contrib/cirrus/packer/libpod_images.yml
@@ -33,7 +33,7 @@ builders:
image_name: '{{build_name}}{{user `BUILT_IMAGE_SUFFIX`}}'
image_family: '{{build_name}}-libpod'
source_image: '{{user `UBUNTU_BASE_IMAGE`}}'
- disk_size: 20
+ disk_size: 20 # REQUIRED: Runtime allocation > this value
project_id: '{{user `GCP_PROJECT_ID`}}'
service_account_email: '{{user `SERVICE_ACCOUNT`}}'
communicator: 'ssh'
diff --git a/contrib/cirrus/setup_environment.sh b/contrib/cirrus/setup_environment.sh
index 2230684ac..5d350263e 100755
--- a/contrib/cirrus/setup_environment.sh
+++ b/contrib/cirrus/setup_environment.sh
@@ -42,8 +42,11 @@ case "${OS_REL_VER}" in
ln -f "$CRIO_RUNC_PATH" "/usr/bin/runc"
fi
;;
- fedora-30) ;;
- fedora-29) ;;
+ fedora-30) ;& # continue to next item
+ fedora-29)
+ if [[ "$ADD_SECOND_PARTITION" == "true" ]]; then
+ bash "$SCRIPT_BASE/add_second_partition.sh"; fi
+ ;;
centos-7) # Current VM is an image-builder-image no local podman/testing
echo "No further setup required for VM image building"
exit 0
diff --git a/contrib/spec/podman.spec.in b/contrib/spec/podman.spec.in
index 7e361d757..0de797f2b 100644
--- a/contrib/spec/podman.spec.in
+++ b/contrib/spec/podman.spec.in
@@ -39,7 +39,7 @@
%global shortcommit_conmon %(c=%{commit_conmon}; echo ${c:0:7})
Name: podman
-Version: 1.4.5
+Version: 1.5.1
Release: #COMMITDATE#.git%{shortcommit0}%{?dist}
Summary: Manage Pods, Containers and Container Images
License: ASL 2.0
diff --git a/go.mod b/go.mod
index 9bdb5b5f4..00e1c1cf4 100644
--- a/go.mod
+++ b/go.mod
@@ -17,7 +17,7 @@ require (
github.com/containers/conmon v0.3.0 // indirect
github.com/containers/image v3.0.2+incompatible
github.com/containers/psgo v1.3.1
- github.com/containers/storage v1.13.1
+ github.com/containers/storage v1.13.2
github.com/coreos/bbolt v1.3.3 // indirect
github.com/coreos/etcd v3.3.13+incompatible // indirect
github.com/coreos/go-iptables v0.4.1
diff --git a/go.sum b/go.sum
index a5eb8da01..f09083eb7 100644
--- a/go.sum
+++ b/go.sum
@@ -99,6 +99,8 @@ github.com/containers/storage v1.12.16 h1:zePYS1GiG8CuRqLCeA0ufx4X27K06HcJLV50Dd
github.com/containers/storage v1.12.16/go.mod h1:QsZp4XMJjyPNNbQHZeyNW3OmhwsWviI+7S6iOcu6a4c=
github.com/containers/storage v1.13.1 h1:rjVirLS9fCGkUFlLDZEoGDDUugtIf46DufWvJu08wxQ=
github.com/containers/storage v1.13.1/go.mod h1:6D8nK2sU9V7nEmAraINRs88ZEscM5C5DK+8Npp27GeA=
+github.com/containers/storage v1.13.2 h1:UXZ0Ckmk6+6+4vj2M2ywruVtH97pnRoAhTG8ctd+yQI=
+github.com/containers/storage v1.13.2/go.mod h1:6D8nK2sU9V7nEmAraINRs88ZEscM5C5DK+8Npp27GeA=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
diff --git a/libpod/runtime_ctr.go b/libpod/runtime_ctr.go
index 61a871b28..92b2faefb 100644
--- a/libpod/runtime_ctr.go
+++ b/libpod/runtime_ctr.go
@@ -54,6 +54,14 @@ func (r *Runtime) RestoreContainer(ctx context.Context, rSpec *spec.Spec, config
}
// For an imported checkpoint no one has ever set the StartedTime. Set it now.
ctr.state.StartedTime = time.Now()
+
+ // If the path to ConmonPidFile starts with the default value (RunRoot), then
+ // the user has not specified '--conmon-pidfile' during run or create (probably).
+ // In that case reset ConmonPidFile to be set to the default value later.
+ if strings.HasPrefix(ctr.config.ConmonPidFile, r.config.StorageConfig.RunRoot) {
+ ctr.config.ConmonPidFile = ""
+ }
+
return r.setupContainer(ctx, ctr)
}
diff --git a/pkg/adapter/runtime_remote.go b/pkg/adapter/runtime_remote.go
index 828838bde..0cafbb2aa 100644
--- a/pkg/adapter/runtime_remote.go
+++ b/pkg/adapter/runtime_remote.go
@@ -10,6 +10,7 @@ import (
"io"
"io/ioutil"
"os"
+ "path/filepath"
"strings"
"text/template"
"time"
@@ -68,6 +69,12 @@ func GetRuntime(ctx context.Context, c *cliconfig.PodmanCommand) (*LocalRuntime,
cmd: c.GlobalFlags,
}
configPath := remoteclientconfig.GetConfigFilePath()
+ // Check if the basedir for configPath exists and if not, create it.
+ if _, err := os.Stat(filepath.Dir(configPath)); os.IsNotExist(err) {
+ if mkdirErr := os.MkdirAll(filepath.Dir(configPath), 0750); mkdirErr != nil {
+ return nil, mkdirErr
+ }
+ }
if len(c.GlobalFlags.RemoteConfigFilePath) > 0 {
configPath = c.GlobalFlags.RemoteConfigFilePath
customConfig = true
diff --git a/pkg/util/utils_windows.go b/pkg/util/utils_windows.go
index e7b2a272e..e781e6717 100644
--- a/pkg/util/utils_windows.go
+++ b/pkg/util/utils_windows.go
@@ -6,29 +6,31 @@ import (
"github.com/pkg/errors"
)
+var errNotImplemented = errors.New("not yet implemented")
+
// IsCgroup2UnifiedMode returns whether we are running in cgroup 2 unified mode.
func IsCgroup2UnifiedMode() (bool, error) {
- return false, errors.New("this function is not implemented for windows")
+ return false, errors.Wrap(errNotImplemented, "IsCgroup2Unified")
}
// GetContainerPidInformationDescriptors returns a string slice of all supported
// format descriptors of GetContainerPidInformation.
func GetContainerPidInformationDescriptors() ([]string, error) {
- return nil, errors.New("this function is not implemented for windows")
+ return nil, errors.Wrap(errNotImplemented, "GetContainerPidInformationDescriptors")
}
// GetRootlessPauseProcessPidPath returns the path to the file that holds the pid for
// the pause process
func GetRootlessPauseProcessPidPath() (string, error) {
- return "", errors.New("this function is not implemented for windows")
+ return "", errors.Wrap(errNotImplemented, "GetRootlessPauseProcessPidPath")
}
// GetRootlessRuntimeDir returns the runtime directory when running as non root
func GetRootlessRuntimeDir() (string, error) {
- return "", errors.New("this function is not implemented for windows")
+ return "", errors.Wrap(errNotImplemented, "GetRootlessRuntimeDir")
}
// GetRootlessConfigHomeDir returns the config home directory when running as non root
func GetRootlessConfigHomeDir() (string, error) {
- return "", errors.New("this function is not implemented for windows")
+ return "", errors.Wrap(errNotImplemented, "GetRootlessConfigHomeDir")
}
diff --git a/test/e2e/checkpoint_test.go b/test/e2e/checkpoint_test.go
index d37d7c7cc..1caefd299 100644
--- a/test/e2e/checkpoint_test.go
+++ b/test/e2e/checkpoint_test.go
@@ -375,23 +375,28 @@ var _ = Describe("Podman checkpoint", func() {
result := podmanTest.Podman([]string{"container", "checkpoint", "-l", "-e", fileName})
result.WaitWithDefaultTimeout()
+ // As the container has been started with '--rm' it will be completely
+ // cleaned up after checkpointing.
Expect(result.ExitCode()).To(Equal(0))
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
Expect(podmanTest.NumberOfContainers()).To(Equal(0))
- result = podmanTest.Podman([]string{"container", "restore", "-i", fileName})
+ // Restore container the first time with different name.
+ // Using '--ignore-static-ip' as for parallel test runs
+ // each containers gets a random IP address via '--ip'.
+ // '--ignore-static-ip' tells the restore to use the next
+ // available IP address.
+ // First restore the container with a new name/ID to make
+ // sure nothing in the restored container depends on the
+ // original container.
+ result = podmanTest.Podman([]string{"container", "restore", "-i", fileName, "-n", "restore_again", "--ignore-static-ip"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
Expect(podmanTest.GetContainerStatus()).To(ContainSubstring("Up"))
- // Restore container a second time with different name.
- // Using '--ignore-static-ip' as for parallel test runs
- // each containers gets a random IP address via '--ip'.
- // '--ignore-static-ip' tells the restore to use the next
- // available IP address.
- result = podmanTest.Podman([]string{"container", "restore", "-i", fileName, "-n", "restore_again", "--ignore-static-ip"})
+ result = podmanTest.Podman([]string{"container", "restore", "-i", fileName})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
diff --git a/test/system/001-basic.bats b/test/system/001-basic.bats
index 85b9bc1ca..5fc07acfb 100644
--- a/test/system/001-basic.bats
+++ b/test/system/001-basic.bats
@@ -13,6 +13,14 @@ function setup() {
@test "podman version emits reasonable output" {
run_podman version
+ # First line of podman-remote is "Client:<blank>".
+ # Just delete it (i.e. remove the first entry from the 'lines' array)
+ if is_remote; then
+ if expr "${lines[0]}" : "Client:" >/dev/null; then
+ lines=("${lines[@]:1}")
+ fi
+ fi
+
is "${lines[0]}" "Version:[ ]\+[1-9][0-9.]\+" "Version line 1"
is "$output" ".*Go Version: \+" "'Go Version' in output"
is "$output" ".*RemoteAPI Version: \+" "API version in output"
diff --git a/test/system/070-build.bats b/test/system/070-build.bats
index c1e7c7ec4..5ef84e9b8 100644
--- a/test/system/070-build.bats
+++ b/test/system/070-build.bats
@@ -6,10 +6,8 @@
load helpers
@test "podman build - basic test" {
- if [[ "$PODMAN" =~ -remote ]]; then
- if [ "$(id -u)" -ne 0 ]; then
- skip "unreliable with podman-remote and rootless; #2972"
- fi
+ if is_remote && is_rootless; then
+ skip "unreliable with podman-remote and rootless; #2972"
fi
rand_filename=$(random_string 20)
diff --git a/test/system/200-pod-top.bats b/test/system/200-pod-top.bats
index 10808ddb2..bba1e8d14 100644
--- a/test/system/200-pod-top.bats
+++ b/test/system/200-pod-top.bats
@@ -3,6 +3,8 @@
load helpers
@test "podman pod top - containers in different PID namespaces" {
+ skip_if_remote "podman-pod does not work with podman-remote"
+
# With infra=false, we don't get a /pause container (we also
# don't pull k8s.gcr.io/pause )
no_infra='--infra=false'
diff --git a/test/system/README.md b/test/system/README.md
index d98b1c0fe..fe6d1ed52 100644
--- a/test/system/README.md
+++ b/test/system/README.md
@@ -28,6 +28,8 @@ on failure.
* `skip_if_rootless` - if rootless, skip this test with a helpful message.
+* `skip_if_remote` - like the above, but skip if testing `podman-remote`
+
* `random_string` - returns a pseudorandom alphanumeric string
Test files are of the form `NNN-name.bats` where NNN is a three-digit
diff --git a/test/system/helpers.bash b/test/system/helpers.bash
index fe0a25b37..3d607f4bd 100644
--- a/test/system/helpers.bash
+++ b/test/system/helpers.bash
@@ -216,26 +216,31 @@ function wait_for_ready {
###############################################################################
# BEGIN miscellaneous tools
+# Shortcuts for common needs:
+function is_rootless() {
+ [ "$(id -u)" -ne 0 ]
+}
+
+function is_remote() {
+ [[ "$PODMAN" =~ -remote ]]
+}
+
######################
# skip_if_rootless # ...with an optional message
######################
function skip_if_rootless() {
- if [ "$(id -u)" -eq 0 ]; then
- return
+ if is_rootless; then
+ skip "${1:-not applicable under rootless podman}"
fi
-
- skip "${1:-not applicable under rootless podman}"
}
####################
# skip_if_remote # ...with an optional message
####################
function skip_if_remote() {
- if [[ ! "$PODMAN" =~ -remote ]]; then
- return
+ if is_remote; then
+ skip "${1:-test does not work with podman-remote}"
fi
-
- skip "${1:-test does not work with podman-remote}"
}
#########################
diff --git a/vendor/github.com/containers/storage/VERSION b/vendor/github.com/containers/storage/VERSION
index b50dd27dd..065f9ec4c 100644
--- a/vendor/github.com/containers/storage/VERSION
+++ b/vendor/github.com/containers/storage/VERSION
@@ -1 +1 @@
-1.13.1
+1.13.3-dev
diff --git a/vendor/github.com/containers/storage/drivers/btrfs/btrfs.go b/vendor/github.com/containers/storage/drivers/btrfs/btrfs.go
index 30264ef4a..1f719fa85 100644
--- a/vendor/github.com/containers/storage/drivers/btrfs/btrfs.go
+++ b/vendor/github.com/containers/storage/drivers/btrfs/btrfs.go
@@ -645,7 +645,15 @@ func (d *Driver) Get(id string, options graphdriver.MountOpts) (string, error) {
if err != nil {
return "", err
}
- if len(options.Options) > 0 {
+ switch len(options.Options) {
+ case 0:
+ case 1:
+ if options.Options[0] == "ro" {
+ // ignore "ro" option
+ break
+ }
+ fallthrough
+ default:
return "", fmt.Errorf("btrfs driver does not support mount options")
}
diff --git a/vendor/github.com/containers/storage/drivers/windows/windows.go b/vendor/github.com/containers/storage/drivers/windows/windows.go
index 11f1c98b1..c1ab93e1d 100644
--- a/vendor/github.com/containers/storage/drivers/windows/windows.go
+++ b/vendor/github.com/containers/storage/drivers/windows/windows.go
@@ -372,7 +372,15 @@ func (d *Driver) Get(id string, options graphdriver.MountOpts) (string, error) {
logrus.Debugf("WindowsGraphDriver Get() id %s mountLabel %s", id, options.MountLabel)
var dir string
- if len(options.Options) > 0 {
+ switch len(options.Options) {
+ case 0:
+ case 1:
+ if options.Options[0] == "ro" {
+ // ignore "ro" option
+ break
+ }
+ fallthrough
+ default:
return "", fmt.Errorf("windows driver does not support mount options")
}
rID, err := d.resolveID(id)
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 2726a53a9..efb7d99da 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -103,7 +103,7 @@ github.com/containers/psgo/internal/dev
github.com/containers/psgo/internal/proc
github.com/containers/psgo/internal/process
github.com/containers/psgo/internal/host
-# github.com/containers/storage v1.13.1
+# github.com/containers/storage v1.13.2
github.com/containers/storage
github.com/containers/storage/pkg/archive
github.com/containers/storage/pkg/chrootarchive
diff --git a/version/version.go b/version/version.go
index 286f66093..d5f91210e 100644
--- a/version/version.go
+++ b/version/version.go
@@ -4,7 +4,7 @@ package version
// NOTE: remember to bump the version at the top
// of the top-level README.md file when this is
// bumped.
-const Version = "1.4.5-dev"
+const Version = "1.5.1-dev"
// RemoteAPIVersion is the version for the remote
// client API. It is used to determine compatibility