summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cirrus.yml70
-rw-r--r--Dockerfile.fedora3
-rw-r--r--Makefile2
-rw-r--r--RELEASE_NOTES.md9
-rw-r--r--changelog.txt29
-rw-r--r--cmd/podman/shared/container_inspect.go44
-rw-r--r--contrib/cirrus/README.md33
-rwxr-xr-xcontrib/cirrus/integration_test.sh3
-rw-r--r--contrib/cirrus/lib.sh36
-rw-r--r--contrib/cirrus/packer/cloud-init/fedora/cloud-init.service20
-rw-r--r--contrib/cirrus/packer/fedora_base-setup.sh8
-rw-r--r--contrib/cirrus/packer/libpod_base_images.yml6
-rw-r--r--contrib/cirrus/packer/libpod_images.yml4
-rwxr-xr-xcontrib/cirrus/setup_environment.sh16
-rw-r--r--contrib/gate/Dockerfile5
-rw-r--r--contrib/spec/podman.spec.in2
-rwxr-xr-xhack/get_ci_vm.sh2
-rw-r--r--libpod/container_inspect.go114
-rw-r--r--logo/podman-logo-source.svg531
-rw-r--r--logo/podman-logo.pngbin41734 -> 37056 bytes
-rw-r--r--logo/podman-logo.svg1
-rw-r--r--pkg/hooks/docs/oci-hooks.5.md2
-rw-r--r--test/e2e/common_test.go27
-rw-r--r--test/e2e/port_test.go30
-rw-r--r--test/install/Dockerfile.Fedora2
-rw-r--r--vendor.conf2
-rw-r--r--vendor/github.com/containers/buildah/buildah.go2
-rw-r--r--vendor/github.com/containers/buildah/run_linux.go8
-rw-r--r--version/version.go2
29 files changed, 831 insertions, 182 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 3b1c60638..c1b05c1bf 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -29,9 +29,9 @@ env:
####
#### Cache-image names to test with
###
- FEDORA_CACHE_IMAGE_NAME: "fedora-29-libpod-4844850202017792"
- PRIOR_FEDORA_CACHE_IMAGE_NAME: "fedora-28-libpod-4844850202017792"
- UBUNTU_CACHE_IMAGE_NAME: "ubuntu-18-libpod-4844850202017792"
+ FEDORA_CACHE_IMAGE_NAME: "fedora-30-libpod-5156500369047552"
+ PRIOR_FEDORA_CACHE_IMAGE_NAME: "fedora-29-libpod-5156500369047552"
+ UBUNTU_CACHE_IMAGE_NAME: "ubuntu-18-libpod-5156500369047552"
####
#### Variables for composing new cache-images (used in PR testing) from
@@ -209,8 +209,9 @@ build_each_commit_task:
setup_environment_script: '$SCRIPT_BASE/setup_environment.sh |& ${TIMESTAMP}'
build_each_commit_script:
+ - 'source $SCRIPT_BASE/lib.sh'
- 'git fetch --depth $CIRRUS_CLONE_DEPTH origin $CIRRUS_BASE_BRANCH |& ${TIMESTAMP}'
- - 'env GOPATH=/var/tmp/go/ make build-all-new-commits GIT_BASE_BRANCH=origin/$CIRRUS_BASE_BRANCH |& ${TIMESTAMP}'
+ - 'make build-all-new-commits GIT_BASE_BRANCH=origin/$CIRRUS_BASE_BRANCH |& ${TIMESTAMP}'
on_failure:
failed_master_script: '$CIRRUS_WORKING_DIR/$SCRIPT_BASE/notice_master_failure.sh'
@@ -265,7 +266,7 @@ testing_task:
matrix:
# Images are generated separately, from build_images_task (below)
image_name: "${FEDORA_CACHE_IMAGE_NAME}"
- #image_name: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
+ image_name: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
image_name: "${UBUNTU_CACHE_IMAGE_NAME}"
timeout_in: 120m
@@ -373,6 +374,12 @@ test_build_cache_images_task:
environment_script: '$SCRIPT_BASE/setup_environment.sh |& ${TIMESTAMP}'
build_vm_images_script: '$SCRIPT_BASE/build_vm_images.sh |& ${TIMESTAMP}'
+ df_script: '${DFCMD}'
+ journalctl_b_script: 'journalctl -b'
+
+ on_failure:
+ failed_df_script: '${DFCMD}'
+ failed_journalctl_b_script: 'journalctl -b || echo "Uh oh, journalctl -b failed"'
# Test building of new cache-images for future PR testing, in this PR.
@@ -391,8 +398,8 @@ verify_test_built_images_task:
gce_instance:
matrix:
# Images are generated separately, from build_images_task (below)
- #image_name: "fedora-28${BUILT_IMAGE_SUFFIX}"
image_name: "fedora-29${BUILT_IMAGE_SUFFIX}"
+ image_name: "fedora-30${BUILT_IMAGE_SUFFIX}"
image_name: "ubuntu-18${BUILT_IMAGE_SUFFIX}"
env:
@@ -411,56 +418,6 @@ verify_test_built_images_task:
<<: *standardlogs
-# Build new cache-images for future PR testing, but only after a PR merge.
-# The cache-images save install/setup time needed test every PR. The 'active' images
-# are selected by the 'image_name' items tasks above. Currently this requires
-# manually updating the names, but this could be automated (see comment below).
-build_cache_images_task:
- # Only produce new cache-images after a PR merge, and if a magic string
- # is present in the most recent ___commit-message___.
- only_if: >-
- $CIRRUS_BRANCH == 'master' &&
- $CIRRUS_CHANGE_MESSAGE =~ '.*\*\*\*\s*CIRRUS:\s*REBUILD\s*IMAGES\s*\*\*\*.*'
-
- # Require tests to pass first.
- depends_on:
- - "gating"
- - "testing"
- - "rootless_testing"
-
- # VMs created by packer are not cleaned up by cirrus
- auto_cancellation: $CI != "true"
-
- gce_instance:
- image_project: "libpod-218412"
- zone: "us-central1-a" # Required by Cirrus for the time being
- cpu: 4
- memory: "4Gb"
- disk: 200
- image_name: "${IMAGE_BUILDER_CACHE_IMAGE_NAME}"
- # Additional permissions for building GCE images, within a GCE VM
- scopes:
- - compute
- - devstorage.full_control
-
- environment_script: '$SCRIPT_BASE/setup_environment.sh |& ${TIMESTAMP}'
- build_vm_images_script: '$SCRIPT_BASE/build_vm_images.sh |& ${TIMESTAMP}'
-
- # TODO,Continuous Delivery: Automatically open a libpod PR after using 'sed' to replace
- # the image_names with the new (just build) images. That will
- # cause a new round of testing to happen (via the PR) using
- # the new images. When all is good, the PR may be manually
- # merged so all PR testing uses the new images. The script
- # names (below) describe their purpose in this workflow.
- # deploy_images_script:
- # - clone_podman_release_branch.sh
- # - modify_cirrus_yaml_image_names.sh
- # - commit_and_create_upstream_pr.sh
-
- on_failure:
- failed_master_script: '$CIRRUS_WORKING_DIR/$SCRIPT_BASE/notice_master_failure.sh |& ${TIMESTAMP}'
-
-
# Post message to IRC if everything passed
success_task:
@@ -477,7 +434,6 @@ success_task:
- "special_testing_in_podman"
- "test_build_cache_images"
- "verify_test_built_images"
- - "build_cache_images"
env:
CIRRUS_WORKING_DIR: "/usr/src/libpod"
diff --git a/Dockerfile.fedora b/Dockerfile.fedora
index c34d4bb16..5cbc6e1fe 100644
--- a/Dockerfile.fedora
+++ b/Dockerfile.fedora
@@ -1,9 +1,8 @@
-FROM registry.fedoraproject.org/fedora:29
+FROM registry.fedoraproject.org/fedora:30
RUN dnf -y install btrfs-progs-devel \
atomic-registries \
bzip2 \
- conmon \
device-mapper-devel \
findutils \
git \
diff --git a/Makefile b/Makefile
index 027f10445..881236452 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
GO ?= go
DESTDIR ?=
-EPOCH_TEST_COMMIT ?= 90e3c9002b2293569e0cec168a30ecb962b00034
+EPOCH_TEST_COMMIT ?= 5df8178c995fe6422f0fed258cd65f6cbcf26f2e
HEAD ?= HEAD
CHANGELOG_BASE ?= HEAD~
CHANGELOG_TARGET ?= HEAD
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index d5717f7db..2264dbaa9 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,5 +1,14 @@
# Release Notes
+## 1.4.2
+### Bugfixes
+- Fixed a bug where Podman could not run containers using an older version of Systemd as init ([#3295](https://github.com/containers/libpod/issues/3295))
+
+### Misc
+- Updated vendored Buildah to v1.9.0 to resolve a critical bug with Dockerfile `RUN` instructions
+- The error message for running `podman kill` on containers that are not running has been improved
+- The Podman remote client can now log to a file if syslog is not available
+
## 1.4.1
### Features
- The `podman exec` command now sets its error code differently based on whether the container does not exist, and the command in the container does not exist
diff --git a/changelog.txt b/changelog.txt
index 3b1260c90..9e201ecb4 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,32 @@
+- Changelog for v1.4.2 (2019-06-18)
+ * Update release notes for Podman 1.4.2
+ * updating podman logo files
+ * fix port -l timing with healthchecks
+ * Bump Buildah to v1.9.0
+ * Swap to using the on-disk spec for inspect mounts
+ * Replace podman.svg; closes #3350
+ * cmd, docs, test: fix some typos
+ * run BATS tests in Cirrus
+ * Move the Config portion of Inspect into libpod
+ * Add remote client logging to a file
+ * Fix subgidname option in docs for podman run
+ * stop/kill: inproper state errors: s/in state/is in state/
+ * test: add test for logs -f
+ * kill: print ID and state for non-running containers
+ * API.md: fix few typos
+ * docs/podamn.1.md: fix typo: remove double the
+ * CONTRIBUTING.md: fix typo
+ * Remove unnecessary var type to fix lint warning
+ * Move installPrefix and etcDir into runtime.go
+ * Improve DESTDIR/PREFIX/ETCDIR handling
+ * Bump gitvalidation epoch
+ * Bump to v1.4.2-dev
+ * Change container command to contained
+ * Cirrus: Simplify log collection commands
+ * Accidently removed /run/lock from systemd mounts
+ * Add warning while untagging an image podman-load
+ * podman copy files to the volume with a container
+
- Changelog for v1.4.1 (2019-06-14)
* Completely disable global options test
* Update release notes for 1.4.1
diff --git a/cmd/podman/shared/container_inspect.go b/cmd/podman/shared/container_inspect.go
index fed089d29..c89daf6bb 100644
--- a/cmd/podman/shared/container_inspect.go
+++ b/cmd/podman/shared/container_inspect.go
@@ -1,9 +1,6 @@
package shared
import (
- "strings"
-
- "github.com/containers/image/manifest"
"github.com/containers/libpod/libpod"
cc "github.com/containers/libpod/pkg/spec"
"github.com/docker/go-connections/nat"
@@ -17,7 +14,6 @@ import (
type InspectContainer struct {
*libpod.InspectContainerData
HostConfig *InspectContainerHostConfig `json:"HostConfig"`
- Config *InspectContainerConfig `json:"Config"`
}
// InspectContainerHostConfig holds Container configuration that is not specific
@@ -82,31 +78,6 @@ type InspectContainerHostConfig struct {
Tmpfs []string `json:"Tmpfs"`
}
-// InspectContainerConfig holds further data about a container, again mostly
-// not directly stored in Libpod. This struct is matched to the output of
-// `docker inspect`.
-type InspectContainerConfig struct {
- Hostname string `json:"Hostname"`
- DomainName string `json:"Domainname"` //TODO
- User specs.User `json:"User"`
- AttachStdin bool `json:"AttachStdin"` //TODO
- AttachStdout bool `json:"AttachStdout"` //TODO
- AttachStderr bool `json:"AttachStderr"` //TODO
- Tty bool `json:"Tty"`
- OpenStdin bool `json:"OpenStdin"`
- StdinOnce bool `json:"StdinOnce"` //TODO
- Env []string `json:"Env"`
- Cmd []string `json:"Cmd"`
- Image string `json:"Image"`
- Volumes map[string]struct{} `json:"Volumes"`
- WorkingDir string `json:"WorkingDir"`
- Entrypoint string `json:"Entrypoint"`
- Labels map[string]string `json:"Labels"`
- Annotations map[string]string `json:"Annotations"`
- StopSignal uint `json:"StopSignal"`
- Healthcheck *manifest.Schema2HealthConfig `json:"Healthcheck,omitempty"`
-}
-
// InspectLogConfig holds information about a container's configured log driver
// and is presently unused. It is retained for Docker compatibility.
type InspectLogConfig struct {
@@ -181,21 +152,6 @@ func GetCtrInspectInfo(config *libpod.ContainerConfig, ctrInspectData *libpod.In
SecurityOpt: createArtifact.SecurityOpts,
Tmpfs: createArtifact.Tmpfs,
},
- &InspectContainerConfig{
- Hostname: spec.Hostname,
- User: spec.Process.User,
- Env: spec.Process.Env,
- Image: config.RootfsImageName,
- WorkingDir: spec.Process.Cwd,
- Labels: config.Labels,
- Annotations: spec.Annotations,
- Tty: spec.Process.Terminal,
- OpenStdin: config.Stdin,
- StopSignal: config.StopSignal,
- Cmd: config.Spec.Process.Args,
- Entrypoint: strings.Join(createArtifact.Entrypoint, " "),
- Healthcheck: config.HealthCheckConfig,
- },
}
return data, nil
}
diff --git a/contrib/cirrus/README.md b/contrib/cirrus/README.md
index 94494a558..5ff4f290f 100644
--- a/contrib/cirrus/README.md
+++ b/contrib/cirrus/README.md
@@ -96,10 +96,18 @@ images following the standard naming format; ***however, only runs a limited
sub-set of automated tests***. Validating newly built images fully, requires
updating ``.cirrus.yml``.
-***Manual Steps:*** Assuming `verify_test_built_images` passes, then
+***N/B: Steps below are performed by automation***
+
+1. Using the just build VM images, launch VMs and wait for them to boot.
+
+2. Execute the `setup_environment.sh` as in the `testing` task.
+
+2. Execute the `integration_test.sh` as in the `testing` task.
+
+
+***Manual Steps:*** Assuming the automated steps pass, then
you'll find the new image names displayed at the end of the
-`test_build_cache_images_task` in the `build_vm_images` output.
-For example:
+`test_build_cache_images`. For example:
```
@@ -135,18 +143,6 @@ the magic ``***CIRRUS: TEST IMAGES***`` string. Keeping it and
and test images again.
-### ``build_cache_images`` Task *(Deprecated)*
-
-Exactly the same as ``test_build_cache_images_task`` task, but only runs on
-the master branch. Requires a magic string to be in the `HEAD`
-commit message: ``***CIRRUS: BUILD IMAGES***``
-
-When successful, the manifest file along with all VM disks, are moved
-into a dedicated google storage bucket, separate from the one used by
-`test_build_cache_images_task`. These may be used to create new cache-images for
-PR testing by manually importing them as described above.
-
-
### Base-images
Base-images are VM disk-images specially prepared for executing as GCE VMs.
@@ -158,10 +154,9 @@ as the standard 'cloud-init' services.
with services pre-installed, for many platforms. For example,
RHEL, CentOS, and Ubuntu.
-* Google does ***not*** provide any images for Fedora or Fedora Atomic
- Host (as of 11/2018), nor do they provide a base-image prepared to
- run packer for creating other images in the ``build_vm_images`` Task
- (above).
+* Google does ***not*** provide any images for Fedora (as of 5/2019), nor do
+ they provide a base-image prepared to run packer for creating other images
+ in the ``test_build_vm_images`` Task (above).
* Base images do not need to be produced often, but doing so completely
manually would be time-consuming and error-prone. Therefor a special
diff --git a/contrib/cirrus/integration_test.sh b/contrib/cirrus/integration_test.sh
index f9ba010cd..b163834d5 100755
--- a/contrib/cirrus/integration_test.sh
+++ b/contrib/cirrus/integration_test.sh
@@ -28,8 +28,6 @@ then
-e "DIST=$OS_RELEASE_ID" \
-e "CONTAINER_RUNTIME=$CONTAINER_RUNTIME" \
$IN_PODMAN_IMAGE bash $GOSRC/$SCRIPT_BASE/container_test.sh -b -i -t
-
- exit $?
elif [[ "$SPECIALMODE" == "rootless" ]]
then
req_env_var ROOTLESS_USER
@@ -52,5 +50,4 @@ else
else
make local${TESTSUITE}
fi
- exit $?
fi
diff --git a/contrib/cirrus/lib.sh b/contrib/cirrus/lib.sh
index 97901cfc7..30141db67 100644
--- a/contrib/cirrus/lib.sh
+++ b/contrib/cirrus/lib.sh
@@ -55,15 +55,15 @@ PACKER_VER="1.3.5"
# CSV of cache-image names to build (see $PACKER_BASE/libpod_images.json)
# Base-images rarely change, define them here so they're out of the way.
-PACKER_BUILDS="${PACKER_BUILDS:-ubuntu-18,fedora-29,fedora-28}"
+PACKER_BUILDS="${PACKER_BUILDS:-ubuntu-18,fedora-30,fedora-29}"
# Google-maintained base-image names
UBUNTU_BASE_IMAGE="ubuntu-1804-bionic-v20181203a"
# Manually produced base-image names (see $SCRIPT_BASE/README.md)
-FEDORA_BASE_IMAGE="fedora-cloud-base-29-1-2-1541789245"
-# FEDORA_BASE_IMAGE: "fedora-cloud-base-30-1-2-1556821664"
-PRIOR_FEDORA_BASE_IMAGE="fedora-cloud-base-28-1-1-1544474897"
-# PRIOR_FEDORA_BASE_IMAGE="fedora-cloud-base-29-1-2-1541789245"
+FEDORA_BASE_IMAGE="fedora-cloud-base-30-1-2-1559164849"
+PRIOR_FEDORA_BASE_IMAGE="fedora-cloud-base-29-1-2-1559164849"
BUILT_IMAGE_SUFFIX="${BUILT_IMAGE_SUFFIX:--$CIRRUS_REPO_NAME-${CIRRUS_BUILD_ID}}"
+# IN_PODMAN container image
+IN_PODMAN_IMAGE="quay.io/libpod/in_podman:latest"
# Safe env. vars. to transfer from root -> $ROOTLESS_USER (go env handled separetly)
ROOTLESS_ENV_RE='(CIRRUS_.+)|(ROOTLESS_.+)|(.+_IMAGE.*)|(.+_BASE)|(.*DIRPATH)|(.*FILEPATH)|(SOURCE.*)|(DEPEND.*)|(.+_DEPS_.+)|(OS_REL.*)|(.+_ENV_RE)|(TRAVIS)|(CI.+)|(TEST_REMOTE.*)'
@@ -74,9 +74,6 @@ SPECIALMODE="${SPECIALMODE:-none}"
TEST_REMOTE_CLIENT="${TEST_REMOTE_CLIENT:-false}"
export CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-podman}
-# IN_PODMAN container image
-IN_PODMAN_IMAGE="quay.io/libpod/in_podman:latest"
-
# When running as root, this may be empty or not, as a user, it MUST be set.
if [[ "$USER" == "root" ]]
then
@@ -211,8 +208,25 @@ setup_rootless() {
# Works with older versions of bash
printf "${_env_var_name}=%q\n" "$(printenv $_env_var_name)" >> "/home/$ROOTLESS_USER/.bashrc"
done
- echo "Ensure the systems ssh process is up and running"
- systemctl --wait restart sshd # a regular 'start' could hang forever
+
+ echo "Ensure the systems ssh process is up and running within 5 minutes"
+ systemctl start sshd
+ NOW=$(date +%s)
+ TIMEOUT=$(date --date '+5 minutes' +%s)
+ while [[ "$(date +%s)" -lt "$TIMEOUT" ]]
+ do
+ if timeout --foreground -k 1s 1s \
+ ssh $ROOTLESS_USER@localhost \
+ -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o CheckHostIP=no \
+ true
+ then
+ break
+ else
+ sleep 2s
+ fi
+ done
+ [[ "$(date +%s)" -lt "$TIMEOUT" ]] || \
+ die 11 "Timeout exceeded waiting for localhost ssh capability"
}
# Helper/wrapper script to only show stderr/stdout on non-zero exit
@@ -347,7 +361,7 @@ _finalize(){
set +e # make errors non-fatal
echo "Removing leftover giblets from cloud-init"
cd /
- sudo rm -rf /var/lib/cloud/instance?
+ sudo rm -rf /var/lib/cloud/instanc*
sudo rm -rf /root/.ssh/*
sudo rm -rf /home/*
sudo rm -rf /tmp/*
diff --git a/contrib/cirrus/packer/cloud-init/fedora/cloud-init.service b/contrib/cirrus/packer/cloud-init/fedora/cloud-init.service
new file mode 100644
index 000000000..4d2197d87
--- /dev/null
+++ b/contrib/cirrus/packer/cloud-init/fedora/cloud-init.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Initial cloud-init job (metadata service crawler)
+DefaultDependencies=no
+Wants=cloud-init-local.service
+After=cloud-init-local.service
+Wants=google-network-daemon.service
+After=google-network-daemon.service
+Before=systemd-user-sessions.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/cloud-init init
+RemainAfterExit=yes
+TimeoutSec=0
+
+# Output needs to appear in instance console output
+StandardOutput=journal+console
+
+[Install]
+WantedBy=cloud-init.target
diff --git a/contrib/cirrus/packer/fedora_base-setup.sh b/contrib/cirrus/packer/fedora_base-setup.sh
index 2e6d3eceb..a425b2b57 100644
--- a/contrib/cirrus/packer/fedora_base-setup.sh
+++ b/contrib/cirrus/packer/fedora_base-setup.sh
@@ -16,11 +16,17 @@ echo "Updating packages"
ooe.sh dnf -y update
echo "Installing necessary packages and google services"
-ooe.sh dnf -y install rng-tools google-compute-engine-tools google-compute-engine-oslogin
+ooe.sh dnf -y install rng-tools google-compute-engine-tools google-compute-engine-oslogin ethtool
echo "Enabling services"
ooe.sh systemctl enable rngd
+# There is a race that can happen on boot between the GCE services configuring
+# the VM, and cloud-init trying to do similar activities. Use a customized
+# unit file to make sure cloud-init starts after the google-compute-* services.
+echo "Setting cloud-init service to start after google-network-daemon.service"
+cp -v $GOSRC/$PACKER_BASE/cloud-init/fedora/cloud-init.service /etc/systemd/system/
+
rh_finalize
echo "SUCCESS!"
diff --git a/contrib/cirrus/packer/libpod_base_images.yml b/contrib/cirrus/packer/libpod_base_images.yml
index 560cb321c..e519d2fba 100644
--- a/contrib/cirrus/packer/libpod_base_images.yml
+++ b/contrib/cirrus/packer/libpod_base_images.yml
@@ -78,7 +78,7 @@ builders:
ssh_username: 'root'
- <<: *nested_virt
- name: 'prior-fedora'
+ name: 'prior_fedora'
iso_url: '{{user `PRIOR_FEDORA_IMAGE_URL`}}'
iso_checksum_url: '{{user `PRIOR_FEDORA_CSUM_URL`}}'
@@ -121,7 +121,7 @@ provisioners:
post-processors:
- - type: "compress"
- only: ['fedora', 'prior-fedora']
+ only: ['fedora', 'prior_fedora']
output: '/tmp/{{build_name}}/disk.raw.tar.gz'
format: '.tar.gz'
compression_level: 9
@@ -136,7 +136,7 @@ post-processors:
image_description: 'Based on {{user `FEDORA_IMAGE_URL`}}'
image_family: '{{user `FEDORA_BASE_IMAGE_NAME`}}'
- <<: *gcp_import
- only: ['prior-fedora']
+ only: ['prior_fedora']
image_name: "{{user `PRIOR_FEDORA_BASE_IMAGE_NAME`}}-{{user `TIMESTAMP`}}"
image_description: 'Based on {{user `PRIOR_FEDORA_IMAGE_URL`}}'
image_family: '{{user `PRIOR_FEDORA_BASE_IMAGE_NAME`}}'
diff --git a/contrib/cirrus/packer/libpod_images.yml b/contrib/cirrus/packer/libpod_images.yml
index 34d4db7fb..c25da25ac 100644
--- a/contrib/cirrus/packer/libpod_images.yml
+++ b/contrib/cirrus/packer/libpod_images.yml
@@ -55,11 +55,11 @@ builders:
# v----- is a YAML alias, allows partial re-use of the anchor object
- <<: *gce_hosted_image
- name: 'fedora-29'
+ name: 'fedora-30'
source_image: '{{user `FEDORA_BASE_IMAGE`}}'
- <<: *gce_hosted_image
- name: 'fedora-28'
+ name: 'fedora-29'
source_image: '{{user `PRIOR_FEDORA_BASE_IMAGE`}}'
# The brains of the operation, making actual modifications to the base-image.
diff --git a/contrib/cirrus/setup_environment.sh b/contrib/cirrus/setup_environment.sh
index 13bce506a..8fdcf5897 100755
--- a/contrib/cirrus/setup_environment.sh
+++ b/contrib/cirrus/setup_environment.sh
@@ -33,20 +33,8 @@ done
# (see docs).
case "${OS_REL_VER}" in
ubuntu-18) ;;
- fedora-29)
- # Occasionally, and seemingly only on F29 the root disk fails to expand
- # upon boot. When this happens, any number of failures could occur if
- # space runs out. Until there is time to investigate the actual cause,
- # workaround this problem by detecting it and acting accordingly.
- REMAINING=$(df /dev/sda1 | tail -1 | awk '{print $4}')
- if [[ "$REMAINING" -lt "100000000" ]] # .cirrus.yml specifies 200gig
- then
- echo "Fixing failure to expand root filesystem"
- growpart /dev/sda 1 # device guaranteed by cloud provider
- resize2fs /dev/sda1 # growpart & resuze guaranteed by base-image
- fi
- ;;
- fedora-28) ;;
+ fedora-30) ;;
+ fedora-29) ;;
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/gate/Dockerfile b/contrib/gate/Dockerfile
index 630371c76..c886fc9aa 100644
--- a/contrib/gate/Dockerfile
+++ b/contrib/gate/Dockerfile
@@ -1,18 +1,15 @@
-FROM fedora:29
+FROM fedora:30
RUN dnf -y install \
atomic-registries \
btrfs-progs-devel \
bzip2 \
- conmon \
container-selinux \
containernetworking-cni \
- containernetworking-cni-devel \
device-mapper-devel \
findutils \
git \
glib2-devel \
glibc-static \
- gnupg \
golang \
gpgme-devel \
iptables \
diff --git a/contrib/spec/podman.spec.in b/contrib/spec/podman.spec.in
index d0ad07044..68d02325a 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.2
+Version: 1.4.3
Release: #COMMITDATE#.git%{shortcommit0}%{?dist}
Summary: Manage Pods, Containers and Container Images
License: ASL 2.0
diff --git a/hack/get_ci_vm.sh b/hack/get_ci_vm.sh
index 12dd211f4..90e3aea8e 100755
--- a/hack/get_ci_vm.sh
+++ b/hack/get_ci_vm.sh
@@ -168,7 +168,7 @@ parse_args(){
if echo "$IMAGE_NAME" | grep -q "image-builder-image"
then
echo -e "Creating an image-builder VM, I hope you know what you're doing.\n"
- IBI_ARGS="--scopes=compute-rw,storage-rw,userinfo-email \"--min-cpu-platform=Intel Haswell\""
+ IBI_ARGS="--scopes=compute-rw,storage-rw,userinfo-email"
SSHUSER="centos"
else
unset IBI_ARGS
diff --git a/libpod/container_inspect.go b/libpod/container_inspect.go
index 0a62ceb7c..752823634 100644
--- a/libpod/container_inspect.go
+++ b/libpod/container_inspect.go
@@ -1,8 +1,10 @@
package libpod
import (
+ "strings"
"time"
+ "github.com/containers/image/manifest"
"github.com/containers/libpod/libpod/driver"
"github.com/cri-o/ocicni/pkg/ocicni"
spec "github.com/opencontainers/runtime-spec/specs-go"
@@ -49,6 +51,53 @@ type InspectContainerData struct {
ExitCommand []string `json:"ExitCommand"`
Namespace string `json:"Namespace"`
IsInfra bool `json:"IsInfra"`
+ Config *InspectContainerConfig `json:"Config"`
+}
+
+// InspectContainerConfig holds further data about how a container was initially
+// configured.
+type InspectContainerConfig struct {
+ // Container hostname
+ Hostname string `json:"Hostname"`
+ // Container domain name - unused at present
+ DomainName string `json:"Domainname"`
+ // User the container was launched with
+ User string `json:"User"`
+ // Unused, at present
+ AttachStdin bool `json:"AttachStdin"`
+ // Unused, at present
+ AttachStdout bool `json:"AttachStdout"`
+ // Unused, at present
+ AttachStderr bool `json:"AttachStderr"`
+ // Whether the container creates a TTY
+ Tty bool `json:"Tty"`
+ // Whether the container leaves STDIN open
+ OpenStdin bool `json:"OpenStdin"`
+ // Whether STDIN is only left open once.
+ // Presently not supported by Podman, unused.
+ StdinOnce bool `json:"StdinOnce"`
+ // Container environment variables
+ Env []string `json:"Env"`
+ // Container command
+ Cmd []string `json:"Cmd"`
+ // Container image
+ Image string `json:"Image"`
+ // Unused, at present. I've never seen this field populated.
+ Volumes map[string]struct{} `json:"Volumes"`
+ // Container working directory
+ WorkingDir string `json:"WorkingDir"`
+ // Container entrypoint
+ Entrypoint string `json:"Entrypoint"`
+ // On-build arguments - presently unused. More of Buildah's domain.
+ OnBuild *string `json:"OnBuild"`
+ // Container labels
+ Labels map[string]string `json:"Labels"`
+ // Container annotations
+ Annotations map[string]string `json:"Annotations"`
+ // Container stop signal
+ StopSignal uint `json:"StopSignal"`
+ // Configured healthcheck for the container
+ Healthcheck *manifest.Schema2HealthConfig `json:"Healthcheck,omitempty"`
}
// InspectMount provides a record of a single mount in a container. It contains
@@ -192,7 +241,7 @@ func (c *Container) getContainerInspectData(size bool, driverData *driver.Data)
}
}
- mounts, err := c.getInspectMounts()
+ mounts, err := c.getInspectMounts(spec)
if err != nil {
return nil, err
}
@@ -284,6 +333,12 @@ func (c *Container) getContainerInspectData(size bool, driverData *driver.Data)
// Get information on the container's network namespace (if present)
data = c.getContainerNetworkInfo(data)
+ inspectConfig, err := c.generateInspectContainerConfig(spec)
+ if err != nil {
+ return nil, err
+ }
+ data.Config = inspectConfig
+
if size {
rootFsSize, err := c.rootFsSize()
if err != nil {
@@ -302,7 +357,7 @@ func (c *Container) getContainerInspectData(size bool, driverData *driver.Data)
// Get inspect-formatted mounts list.
// Only includes user-specified mounts. Only includes bind mounts and named
// volumes, not tmpfs volumes.
-func (c *Container) getInspectMounts() ([]*InspectMount, error) {
+func (c *Container) getInspectMounts(ctrSpec *spec.Spec) ([]*InspectMount, error) {
inspectMounts := []*InspectMount{}
// No mounts, return early
@@ -319,7 +374,7 @@ func (c *Container) getInspectMounts() ([]*InspectMount, error) {
for _, namedVol := range c.config.NamedVolumes {
namedVolumes[namedVol.Dest] = namedVol
}
- for _, mount := range c.config.Spec.Mounts {
+ for _, mount := range ctrSpec.Mounts {
mounts[mount.Destination] = mount
}
@@ -401,3 +456,56 @@ func parseMountOptionsForInspect(options []string, mount *InspectMount) {
mount.Mode = zZ
mount.Options = otherOpts
}
+
+// Generate the InspectContainerConfig struct for the Config field of Inspect.
+func (c *Container) generateInspectContainerConfig(spec *spec.Spec) (*InspectContainerConfig, error) {
+ ctrConfig := new(InspectContainerConfig)
+
+ ctrConfig.Hostname = c.Hostname()
+ ctrConfig.User = c.config.User
+ if spec.Process != nil {
+ ctrConfig.Tty = spec.Process.Terminal
+ ctrConfig.Env = []string{}
+ for _, val := range spec.Process.Env {
+ ctrConfig.Env = append(ctrConfig.Env, val)
+ }
+ ctrConfig.WorkingDir = spec.Process.Cwd
+ }
+
+ ctrConfig.OpenStdin = c.config.Stdin
+ ctrConfig.Image = c.config.RootfsImageName
+
+ // Leave empty is not explicitly overwritten by user
+ if len(c.config.Command) != 0 {
+ ctrConfig.Cmd = []string{}
+ for _, val := range c.config.Command {
+ ctrConfig.Cmd = append(ctrConfig.Cmd, val)
+ }
+ }
+
+ // Leave empty if not explicitly overwritten by user
+ if len(c.config.Entrypoint) != 0 {
+ ctrConfig.Entrypoint = strings.Join(c.config.Entrypoint, " ")
+ }
+
+ if len(c.config.Labels) != 0 {
+ ctrConfig.Labels = make(map[string]string)
+ for k, v := range c.config.Labels {
+ ctrConfig.Labels[k] = v
+ }
+ }
+
+ if len(spec.Annotations) != 0 {
+ ctrConfig.Annotations = make(map[string]string)
+ for k, v := range spec.Annotations {
+ ctrConfig.Annotations[k] = v
+ }
+ }
+
+ ctrConfig.StopSignal = c.config.StopSignal
+ // TODO: should JSON deep copy this to ensure internal pointers don't
+ // leak.
+ ctrConfig.Healthcheck = c.config.HealthCheckConfig
+
+ return ctrConfig, nil
+}
diff --git a/logo/podman-logo-source.svg b/logo/podman-logo-source.svg
new file mode 100644
index 000000000..9e5cc6625
--- /dev/null
+++ b/logo/podman-logo-source.svg
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ id="svg8"
+ version="1.1"
+ viewBox="0 0 228.25899 61.226642"
+ height="231.40778"
+ width="862.71112">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker5584"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.2)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
+ id="path5582" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="DiamondS"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.2)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
+ id="path5359" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="DotL"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+ id="path5335" />
+ </marker>
+ <clipPath
+ id="clipPath81511"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ y="-1.4835175"
+ x="934.65692"
+ height="12.832292"
+ width="26.19375"
+ id="rect81513"
+ style="opacity:1;fill:#e7e8e9;fill-opacity:1;stroke:#a7a9ac;stroke-width:0.52916664;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1" />
+ </clipPath>
+ </defs>
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(-1170.4453,517.6202)"
+ id="layer1">
+ <g
+ id="g163426" />
+ <g
+ id="g10819"
+ transform="translate(0,-285.75012)">
+ <g
+ id="text10671"
+ style="font-style:normal;font-weight:normal;font-size:37.59195328px;line-height:22.55517006px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#892ca0;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ aria-label="podman">
+ <path
+ id="path80700"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:Montserrat;fill:#892ca0;fill-opacity:1;stroke-width:0.26458332px"
+ d="m 1249.8778,-209.9329 c -3.1202,0 -5.526,1.27812 -6.9921,3.60883 v -3.45846 h -4.3231 v 27.29175 h 4.3231 v -10.75129 c 1.4661,2.3307 3.8719,3.60882 7.0673,3.60882 5.7139,0 9.4731,-4.09752 9.4731,-10.07464 0,-6.0899 -3.8719,-10.22501 -9.5483,-10.22501 z m -0.9022,16.61564 c -3.5713,0 -6.0899,-2.66903 -6.0899,-6.541 0,-3.75919 2.5186,-6.46581 6.0899,-6.46581 3.5712,0 6.0899,2.74421 6.0899,6.46581 0,3.83438 -2.5187,6.541 -6.0899,6.541 z" />
+ <path
+ id="path80702"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:Montserrat;fill:#892ca0;fill-opacity:1;stroke-width:0.26458332px"
+ d="m 1272.4964,-209.9329 c -6.2027,0 -10.4506,4.09752 -10.4506,10.14983 0,6.01471 4.2479,10.14982 10.4506,10.14982 6.1651,0 10.413,-4.13511 10.413,-10.14982 0,-6.05231 -4.2479,-10.14983 -10.413,-10.14983 z m 0,3.7216 c 3.5712,0 6.0899,2.63144 6.0899,6.46582 0,3.87197 -2.5187,6.50341 -6.0899,6.50341 -3.6088,0 -6.1275,-2.63144 -6.1275,-6.50341 0,-3.83438 2.5187,-6.46582 6.1275,-6.46582 z" />
+ <path
+ id="path80704"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:Montserrat;fill:#892ca0;fill-opacity:1;stroke-width:0.26458332px"
+ d="m 1302.1564,-217.67684 v 11.35277 c -1.466,-2.33071 -3.8719,-3.64642 -7.1048,-3.64642 -5.6388,0 -9.5108,4.09752 -9.5108,10.11223 0,6.0899 3.8344,10.2626 9.5859,10.2626 3.1954,0 5.6012,-1.27812 7.0297,-3.60882 v 3.42086 h 4.3231 v -27.89322 z m -6.1275,24.47236 c -3.6464,0 -6.1274,-2.70662 -6.165,-6.50341 0.038,-3.83438 2.5562,-6.57859 6.165,-6.57859 3.6089,0 6.1275,2.70662 6.1275,6.57859 0,3.79679 -2.5186,6.50341 -6.1275,6.50341 z" />
+ <path
+ id="path80706"
+ style="fill:#60605b"
+ d="m 1339.1334,-209.9329 c -3.6464,0 -6.3154,1.46608 -7.5936,4.81177 -0.9398,-3.04495 -3.3832,-4.81177 -6.9545,-4.81177 -3.3081,0 -5.8643,1.20294 -7.2552,4.02234 v -3.87197 h -4.2855 v 19.99891 h 4.2855 v -9.88668 c 0,-3.49605 2.1051,-6.12749 5.5636,-6.24026 2.9322,0 4.699,1.842 4.699,4.88695 v 11.23999 h 4.3231 v -9.88668 c 0,-3.49605 2.0675,-6.12749 5.4884,-6.24026 2.9321,0 4.7366,1.842 4.7366,4.88695 v 11.23999 h 4.323 v -12.44293 c 0,-4.77418 -2.7442,-7.70635 -7.3304,-7.70635 z" />
+ <path
+ id="path80708"
+ style="fill:#60605b"
+ d="m 1368.4916,-189.78362 -0.038,-13.11959 c -0.038,-4.39826 -2.9322,-7.02969 -8.0823,-7.02969 -3.7968,0 -5.8268,0.86461 -8.6086,2.51866 l 1.7669,3.00736 c 1.9923,-1.35332 3.9847,-2.02997 5.9019,-2.02997 3.1577,0 4.7742,1.50368 4.7742,4.02234 v 0.60147 h -6.0523 c -4.8118,0.0376 -7.556,2.36829 -7.556,6.01471 0,3.53365 2.7066,6.20267 7.0297,6.20267 2.8946,0 5.1877,-0.86461 6.6162,-2.63143 v 2.44347 z m -9.9619,-3.2329 c -2.4059,0 -3.872,-1.16535 -3.872,-2.96977 0,-1.91719 1.3157,-2.66903 4.1351,-2.66903 h 5.4133 v 1.84201 c -0.2256,2.18033 -2.5939,3.79679 -5.6764,3.79679 z" />
+ <path
+ id="path80710"
+ style="fill:#60605b"
+ d="m 1385.9695,-209.9329 c -3.3833,0 -5.9396,1.20294 -7.3681,3.98474 v -3.83437 h -4.323 v 19.99891 h 4.323 v -10.63852 c 0.3008,-3.12013 2.3683,-5.41324 5.6764,-5.45083 3.0074,0 4.8118,1.842 4.8118,4.84936 v 11.23999 h 4.3231 v -12.44293 c 0,-4.77418 -2.7818,-7.70635 -7.4432,-7.70635 z" />
+ </g>
+ </g>
+ <g
+ id="g10987"
+ transform="translate(-4.0076941e-7,-285.75012)">
+ <g
+ id="g10985"
+ transform="translate(238.41304,-199.74894)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#3c6eb4;stroke-width:1.05833328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 963.98321,-1.2653795 h 12.72207"
+ id="path10821" />
+ <path
+ id="path10823"
+ d="m 966.09989,1.3804536 h 12.72207"
+ style="fill:none;fill-rule:evenodd;stroke:#3c6eb4;stroke-width:1.05833328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ style="stroke-width:0.86916679"
+ transform="matrix(1.1500458,0,0,1.1510087,-143.9252,0.43908228)"
+ id="g10875">
+ <path
+ id="path10825"
+ d="m 973.10356,3.3983398 c -2.30839,-3.74257021 -1.79145,-7.3525044 -2.88299,-12.510239 -0.59897,-3.1855248 -2.62142,-5.8149598 -5.25403,-6.7776908 -2.17189,-0.757647 -6.68263,-0.759955 -8.59472,0 -2.63261,0.962731 -4.65498,3.592166 -5.25395,6.7776908 -1.09155,5.1577346 -0.57458,8.76766879 -2.88297,12.510239"
+ style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.68990111;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <ellipse
+ style="opacity:1;fill:#e7e8e9;fill-opacity:1;stroke:none;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1"
+ id="ellipse10827"
+ cx="966.56354"
+ cy="-4.1070371"
+ rx="1.1158856"
+ ry="1.1746163" />
+ <ellipse
+ ry="1.1746163"
+ rx="1.1158856"
+ cy="-4.1070371"
+ cx="955.28723"
+ id="ellipse10829"
+ style="opacity:1;fill:#e7e8e9;fill-opacity:1;stroke:none;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1" />
+ <g
+ id="g10839"
+ style="stroke:#a7a9ac;stroke-width:0.51800275;stroke-miterlimit:4;stroke-dasharray:none"
+ transform="matrix(0.88789899,0,0,0.88789899,108.02196,0.55783395)">
+ <path
+ id="path10831"
+ d="m 956.41893,-5.9814347 -4.67056,1.2514712"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10833"
+ d="m 956.9481,-5.2538306 -4.6966,2.711577"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10835"
+ d="m 957.34497,-4.3939348 -4.7625,4.76249998"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10837"
+ d="m 957.5434,-3.2694556 -2.434,4.21584432"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(-0.88789899,0,0,0.88789899,1814.1581,0.55783389)"
+ style="stroke:#a7a9ac;stroke-width:0.51800275;stroke-miterlimit:4;stroke-dasharray:none"
+ id="g10849">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 956.41893,-5.9814347 -4.67056,1.2514712"
+ id="path10841" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 956.9481,-5.2538306 -4.6966,2.711577"
+ id="path10843" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 957.34497,-4.3939348 -4.7625,4.76249998"
+ id="path10845" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.51800275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 957.5434,-3.2694556 -2.434,4.21584432"
+ id="path10847" />
+ </g>
+ <ellipse
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#60605b;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1"
+ id="ellipse10851"
+ cx="961.04285"
+ cy="-4.9292688"
+ rx="3.5825801"
+ ry="3.4063873" />
+ <ellipse
+ transform="scale(-1,1)"
+ style="fill:#000000;fill-opacity:1;stroke:#892ca0;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse10853"
+ cx="-966.52734"
+ cy="-7.8406329"
+ rx="1.7252614"
+ ry="1.7690334" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.68990105;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 968.07427,-11.544209 c -0.34474,-0.448317 -0.89334,-0.733231 -1.45836,-0.757402 -0.53344,-0.02282 -1.07281,0.185834 -1.45201,0.561706"
+ id="path10855" />
+ <g
+ id="g10863"
+ style="stroke-width:0.77700406;stroke-miterlimit:4;stroke-dasharray:none"
+ transform="matrix(0.88789899,0,0,0.88789899,106.61242,0.08798743)">
+ <g
+ id="g10861"
+ transform="translate(0,-0.52916667)"
+ style="stroke-width:0.77700406">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.77700406;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 962.30591,-5.7829972 0.0993,1.9843749 c 0,0 1.58751,1.4221355 2.51355,-0.033073 0,0 -0.0993,-0.8268214 -0.16541,-1.0914047"
+ id="path10857" />
+ <path
+ id="path10859"
+ d="m 962.28751,-5.7829972 -0.0993,1.9843749 c 0,0 -1.58751,1.4221355 -2.51355,-0.033073 0,0 0.0993,-0.8268214 0.16541,-1.0914047"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.77700406;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ <path
+ id="path10865"
+ style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 962.57174,-5.5436767 c -0.1202,-0.3110186 -0.1202,-0.9330691 -0.48062,-0.9330691 -0.36047,0 -0.69372,-0.2332673 -1.04826,-0.2332673 -0.35456,0 -0.68781,0.2332673 -1.04828,0.2332673 -0.36046,0 -0.36046,0.6220505 -0.48061,0.9330691 -0.1202,0.3110253 1.52889,1.3218472 1.52889,1.3218472 0,0 1.64903,-1.0108219 1.52888,-1.3218472 z" />
+ <ellipse
+ ry="1.7690334"
+ rx="1.7252614"
+ cy="-7.8406329"
+ cx="955.36047"
+ id="ellipse10867"
+ style="fill:#000000;fill-opacity:1;stroke:#892ca0;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <ellipse
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse10869"
+ cx="954.78467"
+ cy="-8.3384542"
+ rx="0.8483994"
+ ry="0.88143349" />
+ <path
+ id="path10871"
+ d="m 953.81353,-11.544209 c 0.34474,-0.448315 0.89333,-0.73323 1.45835,-0.757402 0.53344,-0.02282 1.07281,0.185833 1.45201,0.561706"
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.68990105;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <ellipse
+ ry="0.88143349"
+ rx="0.8483994"
+ cy="-8.3384542"
+ cx="967.05286"
+ id="ellipse10873"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.68990111;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <path
+ id="path10877"
+ d="m 948.21183,4.2931494 h 32.92765"
+ style="fill:none;fill-rule:evenodd;stroke:#3c6eb4;stroke-width:1.05833328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ style="stroke-width:1.20411575"
+ transform="matrix(0.83048493,0,0,0.83048493,164.55035,-1.4237955)"
+ clip-path="url(#clipPath81511)"
+ id="g10929">
+ <path
+ id="path10879"
+ d="m 958.31594,13.737399 c -0.26199,-1.782196 -0.38924,-3.720848 -0.8727,-6.0017375 -0.53058,-2.8174518 -2.32212,-5.1430676 -4.65415,-5.9945597 -1.92393,-0.6701043 -5.91966,-0.6721461 -7.61343,0 -2.33204,0.8514921 -4.1235,3.1771079 -4.65409,5.9945597 -0.48346,2.2808895 -0.61071,4.2195415 -0.87269,6.0017375"
+ style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95576686;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <ellipse
+ style="opacity:1;fill:#e7e8e9;fill-opacity:1;stroke:none;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1"
+ id="ellipse10881"
+ cx="954.20367"
+ cy="12.16224"
+ rx="0.98848081"
+ ry="1.0388949" />
+ <ellipse
+ ry="1.0388949"
+ rx="0.98848081"
+ cy="12.16224"
+ cx="944.21478"
+ id="ellipse10883"
+ style="opacity:1;fill:#e7e8e9;fill-opacity:1;stroke:none;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1" />
+ <g
+ id="g10893"
+ style="stroke:#a7a9ac;stroke-width:0.81074655;stroke-miterlimit:4;stroke-dasharray:none"
+ transform="matrix(0.7865243,0,0,0.7853064,193.68501,16.288101)">
+ <path
+ id="path10885"
+ d="m 956.41893,-5.9814347 -4.67056,1.2514712"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10887"
+ d="m 956.9481,-5.2538306 -4.6966,2.711577"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10889"
+ d="m 957.34497,-4.3939348 -4.7625,4.76249998"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10891"
+ d="m 957.5434,-3.2694556 -2.434,4.21584432"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(-0.7865243,0,0,0.7853064,1705.0252,16.288101)"
+ style="stroke:#a7a9ac;stroke-width:0.81074655;stroke-miterlimit:4;stroke-dasharray:none"
+ id="g10903">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 956.41893,-5.9814347 -4.67056,1.2514712"
+ id="path10895" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 956.9481,-5.2538306 -4.6966,2.711577"
+ id="path10897" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 957.34497,-4.3939348 -4.7625,4.76249998"
+ id="path10899" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.81074655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 957.5434,-3.2694556 -2.434,4.21584432"
+ id="path10901" />
+ </g>
+ <ellipse
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#60605b;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1"
+ id="ellipse10905"
+ cx="949.31329"
+ cy="11.435012"
+ rx="3.1735437"
+ ry="3.0127952" />
+ <ellipse
+ transform="scale(-1,1)"
+ style="fill:#000000;fill-opacity:1;stroke:#892ca0;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse10907"
+ cx="-954.17163"
+ cy="8.8600426"
+ rx="1.528282"
+ ry="1.5646298" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.9557668;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 955.54199,5.5843938 c -0.30575,-0.3965787 -0.79155,-0.6484892 -1.29185,-0.6698876 -0.4724,-0.020205 -0.95006,0.1642901 -1.28623,0.4968037"
+ id="path10909" />
+ <g
+ id="g10917"
+ style="stroke-width:1.21611977;stroke-miterlimit:4;stroke-dasharray:none"
+ transform="matrix(0.7865243,0,0,0.7853064,192.4364,15.872544)">
+ <g
+ style="stroke-width:1.21611977"
+ id="g10915"
+ transform="translate(0,-0.52916667)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.21611977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 962.30591,-5.7829972 0.0993,1.9843749 c 0,0 1.58751,1.4221355 2.51355,-0.033073 0,0 -0.0993,-0.8268214 -0.16541,-1.0914047"
+ id="path10911" />
+ <path
+ id="path10913"
+ d="m 962.28751,-5.7829972 -0.0993,1.9843749 c 0,0 -1.58751,1.4221355 -2.51355,-0.033073 0,0 0.0993,-0.8268214 0.16541,-1.0914047"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.21611977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ <path
+ id="path10919"
+ style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 950.66771,10.891591 c -0.10648,-0.275082 -0.10648,-0.825257 -0.42575,-0.825257 -0.31931,0 -0.61451,-0.2063147 -0.92858,-0.2063147 -0.31407,0 -0.60928,0.2063147 -0.92858,0.2063147 -0.31932,0 -0.31932,0.550175 -0.42575,0.825257 -0.10647,0.275088 1.35433,1.169114 1.35433,1.169114 0,0 1.46076,-0.894026 1.35433,-1.169114 z" />
+ <ellipse
+ ry="1.5646298"
+ rx="1.528282"
+ cy="8.8600426"
+ cx="944.27972"
+ id="ellipse10921"
+ style="fill:#000000;fill-opacity:1;stroke:#892ca0;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <ellipse
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse10923"
+ cx="943.76965"
+ cy="8.4197426"
+ rx="0.75153452"
+ ry="0.77958798" />
+ <path
+ id="path10925"
+ d="m 942.90945,5.5843938 c 0.30575,-0.3965787 0.79155,-0.6484892 1.29185,-0.6698876 0.4724,-0.020205 0.95006,0.1642901 1.28623,0.4968037"
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.9557668;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <ellipse
+ ry="0.77958798"
+ rx="0.75153452"
+ cy="8.4197426"
+ cx="954.63715"
+ id="ellipse10927"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.95576686;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#892ca0;stroke-width:1.0583334;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 961.97165,23.28467 -19.29817,-9.23285 -4.82036,-20.8616002 13.2871,-16.7806158 21.38926,-0.06408 13.38485,16.7011458 -4.69887,20.8897002 z"
+ id="path10931" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#3c6eb4;stroke-width:1.05833328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 943.44933,8.5264827 h 19.83144"
+ id="path10933" />
+ <path
+ id="path10935"
+ d="m 952.87074,12.492952 h 27.50208"
+ style="fill:none;fill-rule:evenodd;stroke:#3c6eb4;stroke-width:1.05833328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="translate(0.78045403,0.88370984)"
+ id="g10979">
+ <path
+ style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 977.46866,11.110796 c -0.23262,-1.5824091 -0.34561,-3.3037374 -0.77487,-5.3289381 -0.4711,-2.5016132 -2.06181,-4.566525 -4.13242,-5.32256411 -1.70825,-0.59498494 -5.25606,-0.59679785 -6.75995,0 -2.07062,0.75603911 -3.66125,2.82095091 -4.13236,5.32256411 -0.42927,2.0252007 -0.54225,3.746529 -0.77486,5.3289381"
+ id="path10937" />
+ <ellipse
+ ry="0.92243373"
+ rx="0.87767112"
+ cy="9.7122078"
+ cx="973.81744"
+ id="ellipse10939"
+ style="opacity:1;fill:#e7e8e9;fill-opacity:1;stroke:none;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1" />
+ <ellipse
+ style="opacity:1;fill:#e7e8e9;fill-opacity:1;stroke:none;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1"
+ id="ellipse10941"
+ cx="964.9483"
+ cy="9.7122078"
+ rx="0.87767112"
+ ry="0.92243373" />
+ <g
+ transform="matrix(0.69835413,0,0,0.69727276,299.02348,11.966021)"
+ style="stroke:#a7a9ac;stroke-width:0.7583214;stroke-miterlimit:4;stroke-dasharray:none"
+ id="g10947">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.7583214;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 955.74614,-3.9599306 -4.67056,1.2514712"
+ id="path10943" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.7583214;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 956.27531,-3.2323265 -4.6966,2.71157695"
+ id="path10945" />
+ </g>
+ <g
+ id="g10953"
+ style="stroke:#a7a9ac;stroke-width:0.7583214;stroke-miterlimit:4;stroke-dasharray:none"
+ transform="matrix(-0.69835413,0,0,0.69727276,1640.4712,13.375562)">
+ <path
+ id="path10949"
+ d="m 956.41893,-5.9814347 -4.67056,1.2514712"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.7583214;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10951"
+ d="m 956.9481,-5.2538306 -4.6966,2.711577"
+ style="fill:none;fill-rule:evenodd;stroke:#a7a9ac;stroke-width:0.7583214;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <ellipse
+ ry="2.6750579"
+ rx="2.8177862"
+ cy="9.0665035"
+ cx="969.47528"
+ id="ellipse10955"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#60605b;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:5.99999952;stroke-opacity:1" />
+ <ellipse
+ ry="1.3892332"
+ rx="1.3569601"
+ cy="6.7801905"
+ cx="-973.789"
+ id="ellipse10957"
+ style="fill:#000000;fill-opacity:1;stroke:#892ca0;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <path
+ id="path10959"
+ d="m 975.00567,3.8717489 c -0.27147,-0.3521218 -0.70281,-0.575793 -1.14703,-0.5947926 -0.41945,-0.01794 -0.84356,0.1458731 -1.14204,0.4411116"
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.79374993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="matrix(0.69835413,0,0,0.69727276,297.44499,13.006589)"
+ style="stroke-width:1.13748205;stroke-miterlimit:4;stroke-dasharray:none"
+ id="g10967">
+ <g
+ transform="translate(0,-0.52916667)"
+ id="g10965"
+ style="stroke-width:1.13748205">
+ <path
+ id="path10961"
+ d="m 962.30591,-5.7829972 0.0993,1.9843749 c 0,0 1.58751,1.4221355 2.51355,-0.033073 0,0 -0.0993,-0.8268214 -0.16541,-1.0914047"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.13748205;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.13748205;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 962.28751,-5.7829972 -0.0993,1.9843749 c 0,0 -1.58751,1.4221355 -2.51355,-0.033073 0,0 0.0993,-0.8268214 0.16541,-1.0914047"
+ id="path10963" />
+ </g>
+ </g>
+ <path
+ d="m 970.6778,8.5840058 c -0.0945,-0.2442451 -0.0945,-0.7327449 -0.37802,-0.7327449 -0.28351,0 -0.54562,-0.1831865 -0.82448,-0.1831865 -0.27887,0 -0.54098,0.1831865 -0.82449,0.1831865 -0.28352,0 -0.28352,0.4884998 -0.37802,0.7327449 -0.0945,0.2442506 1.20251,1.0380563 1.20251,1.0380563 0,0 1.297,-0.7938057 1.2025,-1.0380563 z"
+ style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path10969" />
+ <ellipse
+ style="fill:#000000;fill-opacity:1;stroke:#892ca0;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse10971"
+ cx="965.00598"
+ cy="6.7801905"
+ rx="1.3569601"
+ ry="1.3892332" />
+ <ellipse
+ ry="0.69219536"
+ rx="0.66728675"
+ cy="6.3892479"
+ cx="964.5531"
+ id="ellipse10973"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.79374993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 963.78925,3.8717489 c 0.27148,-0.3521208 0.70281,-0.5757916 1.14703,-0.5947926 0.41945,-0.017942 0.84357,0.1458717 1.14205,0.4411116"
+ id="path10975" />
+ <ellipse
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.79374999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse10977"
+ cx="974.20233"
+ cy="6.3892479"
+ rx="0.66728675"
+ ry="0.69219536" />
+ </g>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#3c6eb4;stroke-width:1.05833328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 950.75405,15.138787 h 12.72207"
+ id="path10981" />
+ <path
+ id="path10983"
+ d="m 958.16237,17.784622 h 10.477"
+ style="fill:none;fill-rule:evenodd;stroke:#3c6eb4;stroke-width:1.05833328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/logo/podman-logo.png b/logo/podman-logo.png
index b0dcc75d2..70c8b1191 100644
--- a/logo/podman-logo.png
+++ b/logo/podman-logo.png
Binary files differ
diff --git a/logo/podman-logo.svg b/logo/podman-logo.svg
deleted file mode 100644
index b7e008350..000000000
--- a/logo/podman-logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="3.68 3.68 848.64 213.64"><title>Podman logo</title><defs><style>.cls-1{isolation:isolate}.cls-2{fill:#892ca0}.cls-3{fill:#fff}.cls-4{opacity:.95294}.cls-5{fill:#ccc}.cls-6{fill:#3c6eb4}.cls-7{fill:#d7d8da}.cls-8{fill:#f1f1f1}.cls-9{fill:#60605b}.cls-10{fill:gray}</style></defs><g class="cls-1"><path d="M335.98 112.339c0 22.163-14.492 37.65-35.661 37.65-13.355 0-23.585-6.11-29.126-16.481v43.617h-11.081V74.689h11.081v16.197c5.541-10.514 15.77-16.623 28.842-16.623 21.17 0 35.944 15.628 35.944 38.076zm-11.224-.284c0-16.055-11.082-27.847-26.71-27.847-15.77 0-26.853 11.65-26.853 27.847 0 16.339 11.082 27.846 26.853 27.846 15.628 0 26.71-11.649 26.71-27.846zm99.028 0c0 22.447-15.77 37.933-37.933 37.933-22.164 0-37.935-15.486-37.935-37.933 0-22.306 15.77-37.65 37.935-37.65 22.163 0 37.933 15.344 37.933 37.65zm-64.786.142c0 16.48 11.224 27.846 26.853 27.846 15.628 0 26.851-11.365 26.851-27.846 0-16.339-11.223-27.705-26.851-27.705-15.63 0-26.853 11.366-26.853 27.705zm153.017 37.366h-11.081v-16.055c-5.541 10.513-15.77 16.623-29.126 16.623-21.311 0-36.087-15.77-36.087-38.076 0-22.448 14.776-37.934 35.945-37.934 13.354 0 23.727 6.109 29.268 16.765V44.143h11.08zm-11.081-37.224c0-16.339-11.225-28.131-26.995-28.131-15.913 0-27.136 11.792-27.136 28.13 0 16.197 11.223 27.848 27.136 27.848 15.77 0 26.995-11.65 26.995-27.847z" class="cls-2"/></g><path d="M661.05 103.388v46.174h-11.08v-43.19c0-13.355-7.815-21.17-20.743-21.17-15.486.427-24.437 11.509-24.437 27.564v36.796h-11.224v-43.19c0-13.355-7.671-21.17-20.743-21.17-15.343.427-24.579 11.509-24.579 27.564v36.796h-10.94V74.69h10.94v16.907c4.973-11.65 15.06-17.19 28.558-17.333 14.065 0 23.726 7.246 26.851 19.606 4.689-13.213 15.202-19.464 29.552-19.606 17.476 0 27.847 11.082 27.847 29.125zm71.042 34.667c-5.967 8.097-15.486 12.076-27.42 12.076-15.486 0-25.432-9.945-25.432-22.874 0-13.071 10.372-21.311 27.99-21.453h24.578v-4.405c0-10.94-6.82-17.475-20.033-17.475-8.24 0-15.912 3.126-23.726 8.525l-4.689-8.099c9.661-6.393 17.76-10.087 30.546-10.087 18.47 0 28.7 9.803 28.842 25.858l.142 49.442h-10.798zm-.142-14.35v-8.951h-23.3c-12.503 0-19.038 3.836-19.038 12.076s6.677 13.64 17.19 13.64c12.645 0 22.306-6.394 25.148-16.765zm104.143-20.317v46.174h-11.081v-43.19c0-13.213-7.956-21.027-21.17-21.027-14.776.142-23.868 9.803-25.147 24.01v40.207h-11.082V74.69h11.082v16.48c5.257-11.366 15.344-16.765 28.984-16.907 17.901 0 28.414 11.082 28.414 29.125z" class=""/><g id="path194076"><path d="M113.156 199.408L40.22 164.512 22 85.665l50.22-63.423L153.06 22l50.589 63.122-17.76 78.953z" class="cls-3"/><path d="M113.156 201.408a1.997 1.997 0 0 1-.863-.196l-72.938-34.897a1.999 1.999 0 0 1-1.085-1.353L20.05 86.115a2.001 2.001 0 0 1 .382-1.692L70.65 21a2.001 2.001 0 0 1 1.562-.758L153.054 20a2.01 2.01 0 0 1 1.567.749l50.588 63.122a2.001 2.001 0 0 1 .39 1.69l-17.76 78.953a1.999 1.999 0 0 1-1.076 1.36l-72.733 35.333a2.004 2.004 0 0 1-.874.201zm-71.205-38.285l71.198 34.065 71-34.49 17.337-77.076-49.384-61.62-78.914.237-49.023 61.913z" class="cls-2"/></g><g id="path194078" class="cls-4"><path d="M76.507 28.331h1v11.096h-1z" class="cls-5" transform="rotate(-30.828 77.007 33.879)"/></g><g id="path194080" class="cls-4"><path d="M141.453 32.365h11.095v1h-11.095z" class="cls-5" transform="rotate(-60.831 147.001 32.865)"/></g><g id="g194084"><g id="path194082" class="cls-4"><path d="M188.65 88.835h11.095v1H188.65z" class="cls-5" transform="rotate(-13.263 194.198 89.335)"/></g></g><g id="g194088"><g id="path194086" class="cls-4"><path d="M32.412 83.786h1v11.095h-1z" class="cls-5" transform="rotate(-76.714 32.912 89.334)"/></g></g><path d="M161.725 118.099l-.007-2a67.05 67.05 0 0 0 16.733-1.84l.457 1.948a68.793 68.793 0 0 1-17.183 1.892z" class="cls-6" id="path194090"/><g id="path194092"><path d="M111.906 39.964a40.262 40.262 0 0 0-40.275 40.25c0 19.749.548 38.287-13.729 40.586 7.82 6.16 109.842 5.203 109.842.232-13.895-1.443-13.848-17.782-14.705-40.415-.858-22.632-18.89-40.653-41.133-40.653z" class="cls-7"/><path d="M112.618 126.048c-25.659 0-51.36-1.331-55.334-4.462a1 1 0 0 1 .46-1.773c12.923-2.082 12.907-18.488 12.888-37.486l-.001-2.114a41.309 41.309 0 0 1 41.275-41.249c22.74 0 41.247 18.28 42.132 41.615l.11 2.985c.775 21.187 1.287 35.184 13.699 36.472a1 1 0 0 1 .897.995c0 .653-.424 1.189-1.26 1.594-4.394 2.133-29.61 3.423-54.866 3.423zm-51.562-5.028c7.27 1.872 27.569 3.07 52.733 3.075 25.756-.022 44.54-1.277 50.861-2.642-11.237-3.28-11.776-18.008-12.5-37.816l-.111-2.982c-.843-22.257-18.472-39.69-40.133-39.69A39.306 39.306 0 0 0 72.63 80.212l.001 2.112c.018 17.68.035 34.45-11.576 38.695z"/></g><ellipse cx="82.19" cy="88.104" class="cls-8" rx="4.293" ry="4.501" transform="rotate(-2.016 82.19 88.104)" id="ellipse194094"/><g id="ellipse194096"><ellipse cx="112.872" cy="86.505" class="cls-3" rx="13.515" ry="11.942" transform="rotate(-.849 112.872 86.505)"/><path d="M112.816 99.447c-7.758 0-14.188-5.494-14.452-12.462a12.104 12.104 0 0 1 3.352-8.73 15.296 15.296 0 0 1 10.672-4.683c8.016-.247 14.721 5.324 14.99 12.453a12.105 12.105 0 0 1-3.351 8.73 15.295 15.295 0 0 1-10.672 4.683c-.18.006-.36.01-.54.01zm.112-23.884q-.236 0-.474.008a13.284 13.284 0 0 0-9.275 4.049 10.116 10.116 0 0 0-2.816 7.29c.228 6.032 6.034 10.768 12.927 10.53a13.285 13.285 0 0 0 9.273-4.049 10.118 10.118 0 0 0 2.817-7.29c-.223-5.893-5.763-10.538-12.452-10.538z" class="cls-9"/></g><path d="M138.513 65.143l-.314-.39a5.787 5.787 0 0 0-8.757-.288l-.339.368-.735-.678.339-.368a7.045 7.045 0 0 1 5.042-2.185 6.851 6.851 0 0 1 5.228 2.524l.314.39z" id="path194098"/><g id="g194106"><g id="g194104"><path d="M116.61 92.235a6.685 6.685 0 0 1-3.828-1.626l-.157-.138-.273-5.038.998-.055.25 4.61a5.081 5.081 0 0 0 3.37 1.222 2.554 2.554 0 0 0 1.765-1.202c-.084-.652-.264-1.956-.38-2.41l.969-.248c.17.666.417 2.633.427 2.716l.022.178-.096.152a3.615 3.615 0 0 1-2.57 1.804 3.5 3.5 0 0 1-.498.035z" id="path194100"/><path d="M109.073 92.267a3.577 3.577 0 0 1-.467-.03 3.617 3.617 0 0 1-2.585-1.783l-.098-.151.021-.178c.01-.084.24-2.053.405-2.72l.97.239c-.111.456-.28 1.76-.36 2.414a2.555 2.555 0 0 0 1.776 1.187 5.063 5.063 0 0 0 3.359-1.251l.212-4.611 1 .046-.233 5.04-.156.14a6.654 6.654 0 0 1-3.844 1.658z" id="path194102"/></g></g><g id="path194108"><path d="M117.316 82.976c-.356-.908-.362-2.728-1.418-2.724-1.055.008-2.034-.673-3.071-.669-1.038.007-2.012.691-3.067.696-1.055.007-1.048 1.824-1.395 2.736-.356.911 4.49 3.847 4.49 3.847s4.817-2.977 4.462-3.886z" class="cls-10"/><path d="M112.857 87.195l-.148-.09c-1.887-1.143-4.995-3.207-4.609-4.194a6.302 6.302 0 0 0 .222-.854c.197-.916.443-2.055 1.435-2.062a4.672 4.672 0 0 0 1.46-.335 5.125 5.125 0 0 1 1.608-.361h.011a5.081 5.081 0 0 1 1.6.348 3.928 3.928 0 0 0 1.46.321h.005c.99 0 1.244 1.134 1.449 2.045a6.364 6.364 0 0 0 .23.86c.386.982-2.7 3.072-4.575 4.231zm-.02-7.328h-.01a4.625 4.625 0 0 0-1.426.33 5.151 5.151 0 0 1-1.64.366c-.499.003-.68.67-.884 1.613a6.793 6.793 0 0 1-.247.94c-.068.404 1.89 1.983 4.224 3.413 2.316-1.448 4.257-3.04 4.198-3.45a6.68 6.68 0 0 1-.257-.942c-.21-.937-.397-1.6-.894-1.6h-.02a5.147 5.147 0 0 1-1.625-.352 4.596 4.596 0 0 0-1.42-.318z"/></g><path d="M85.934 65.32l-.82-.572.285-.411a6.786 6.786 0 0 1 10.221-1.059l.364.343-.686.728-.363-.343a5.787 5.787 0 0 0-8.715.903z" id="path194110"/><g id="g194116"><g id="ellipse194112"><ellipse cx="134.49" cy="76.249" rx="6.585" ry="6.841" transform="rotate(-2.025 134.49 76.25)"/><path d="M134.501 84.09a7.415 7.415 0 0 1-5.19-2.125 7.925 7.925 0 0 1-2.402-5.45 7.726 7.726 0 0 1 7.305-8.102 7.437 7.437 0 0 1 5.455 2.12 7.929 7.929 0 0 1 2.402 5.45 7.726 7.726 0 0 1-7.305 8.102 7.968 7.968 0 0 1-.265.005zm-.024-13.682a4.1 4.1 0 0 0-.192.004 5.724 5.724 0 0 0-5.377 6.033 5.936 5.936 0 0 0 1.794 4.084 5.391 5.391 0 0 0 3.993 1.557 5.724 5.724 0 0 0 5.377-6.033 5.937 5.937 0 0 0-1.794-4.084 5.434 5.434 0 0 0-3.801-1.56z" class="cls-2"/></g><ellipse cx="136.426" cy="74.255" class="cls-3" rx="3.238" ry="3.409" transform="rotate(-2.022 136.427 74.255)" id="ellipse194114"/></g><g id="g194126"><g id="g194124"><path d="M140.53 96.767a28.42 28.42 0 0 0-15.536-5.66l.053-.998a29.397 29.397 0 0 1 16.076 5.853z" class="cls-9" id="path194118"/><path d="M137.905 103.496c-3.416-4.101-7.891-8.47-15.18-9.764l.174-.984c7.607 1.35 12.243 5.868 15.775 10.108z" class="cls-9" id="path194120"/><path d="M132.76 109.21c-2.107-5.012-4.865-10.018-10.73-12.678l.413-.91c6.179 2.802 9.053 8.001 11.24 13.201z" class="cls-9" id="path194122"/></g></g><g id="g194136"><g id="g194134"><path d="M85.612 97.992l-.64-.767a29.4 29.4 0 0 1 15.691-6.815l.114.993a28.418 28.418 0 0 0-15.165 6.59z" class="cls-9" id="path194128"/><path d="M88.64 104.55l-.806-.593c3.268-4.446 7.622-9.235 15.133-11.043l.234.972c-7.198 1.733-11.4 6.363-14.562 10.664z" class="cls-9" id="path194130"/><path d="M93.662 110.087l-.943-.33c1.867-5.324 4.422-10.687 10.42-13.858l.467.884c-5.693 3.01-8.144 8.174-9.944 13.304z" class="cls-9" id="path194132"/></g></g><g id="g194142"><g id="ellipse194138"><ellipse cx="91.333" cy="76.249" rx="6.585" ry="6.841" transform="rotate(-1.47 91.333 76.25)"/><path d="M91.343 84.09a7.848 7.848 0 0 1-.21-15.68 7.356 7.356 0 0 1 5.435 2.174 8.031 8.031 0 0 1 .28 11.058 7.41 7.41 0 0 1-5.316 2.445 6.075 6.075 0 0 1-.189.003zm-.02-13.682c-.046 0-.092 0-.138.002a5.847 5.847 0 0 0 .296 11.678 5.428 5.428 0 0 0 3.892-1.797 6.03 6.03 0 0 0-.21-8.285 5.434 5.434 0 0 0-3.84-1.598z" class="cls-2"/></g><ellipse cx="89.279" cy="74.376" class="cls-3" rx="3.238" ry="3.409" transform="rotate(-1.466 89.285 74.38)" id="ellipse194140"/></g><ellipse cx="144.518" cy="88.104" class="cls-8" rx="4.293" ry="4.501" transform="rotate(-2.016 144.518 88.104)" id="ellipse194144"/><path d="M112.823 107.185c-12.061.014-22.855 6.587-27.108 16.51 16.765.735 37.594.695 54.255.04-4.243-9.95-15.06-16.544-27.147-16.55z" class="cls-8" id="path194146"/><path d="M136.659 126.934q-3.996 0-8.072-.016c-4.153-.01-8.327-.023-12.465-.007-26.513.095-59.31-.973-64.993-6.704l1.42-1.408c3.995 4.028 27.152 6.27 63.565 6.112 4.14-.016 8.32-.004 12.479.007 23.035.067 44.784.125 56.024-4.376l.743 1.857c-10.245 4.103-28.56 4.535-48.701 4.535z" class="cls-6" id="path194150"/><g id="path194152"><path d="M107.18 144.388c0 3.806 0 7.554-.064 11.137a187.934 187.934 0 0 0 70 .068c-.16-3.385-.27-7.01-.403-10.832-.733-20.921-16.134-35.578-35.133-35.578s-34.4 14.657-34.4 35.205z" class="cls-7"/><path d="M142.98 159.863a199.59 199.59 0 0 1-36.045-3.355 1 1 0 0 1-.82-1.001c.065-3.573.065-7.238.065-11.12a36.408 36.408 0 0 1 10.367-26.014 35.065 35.065 0 0 1 25.034-10.19c19.869 0 35.402 15.71 36.131 36.543l.09 2.625c.097 2.86.19 5.598.312 8.195a1 1 0 0 1-.806 1.028 177.932 177.932 0 0 1-34.329 3.29zm-34.85-5.17a185.99 185.99 0 0 0 67.947.082 759.814 759.814 0 0 1-.274-7.357l-.09-2.622c-.702-20.056-15.057-34.613-34.132-34.613-19.042 0-33.402 14.705-33.402 34.205 0 3.583 0 6.983-.05 10.304z"/></g><ellipse cx="115.482" cy="146.104" class="cls-8" rx="4.293" ry="4.501" transform="rotate(-2.016 115.482 146.104)" id="ellipse194154"/><path d="M163.943 126.466l-.314-.389a4.713 4.713 0 0 0-3.596-1.736h-.035a4.742 4.742 0 0 0-3.433 1.503l-.339.367-.735-.678.34-.367a5.758 5.758 0 0 1 4.167-1.825h.043a5.725 5.725 0 0 1 4.366 2.107l.314.39z" id="path194156"/><path d="M120.756 126.611l-.82-.572.285-.41a5.669 5.669 0 0 1 8.536-.885l.365.343-.686.728-.364-.342a4.666 4.666 0 0 0-7.03.728z" id="path194158"/><g id="ellipse194160"><ellipse cx="160.651" cy="135.597" rx="5.414" ry="5.624" transform="rotate(-2.025 160.65 135.597)"/><path d="M160.664 142.22a6.63 6.63 0 0 1-.246-13.242 6.627 6.627 0 0 1 .465 13.239 5.512 5.512 0 0 1-.22.004zm-.176-11.244a4.633 4.633 0 0 0 .176 9.245l.149-.002a4.63 4.63 0 0 0-.325-9.243z" class="cls-2"/></g><ellipse cx="162.242" cy="133.958" class="cls-3" rx="2.662" ry="2.802" transform="rotate(-2.022 162.243 133.959)" id="ellipse194162"/><path d="M142.91 159.85a199.203 199.203 0 0 1-35.974-3.342l-9.549-1.777.366-1.966 9.546 1.776a186.782 186.782 0 0 0 69.86.036l6.196-1.79.554 1.922-6.281 1.81a180.192 180.192 0 0 1-34.718 3.332z" class="cls-6" id="path194164"/><g id="g194168"><path d="M158.064 158.006c-1.394-3.247-3.217-6.49-7.084-8.208l.402-.904c4.179 1.856 6.118 5.289 7.593 8.721zm3.464-3.694c-2.377-2.795-5.24-5.497-10.047-6.333l.17-.977c5.13.894 8.254 3.872 10.632 6.667zm1.782-4.376a19.097 19.097 0 0 0-10.295-3.673l.052-.989a20.055 20.055 0 0 1 10.822 3.859z" class="cls-9" id="path194166"/></g><g id="g194176"><path d="M122.814 150.772l-.626-.767a20.009 20.009 0 0 1 10.564-4.492l.111.984a19.03 19.03 0 0 0-10.049 4.275z" class="cls-9" id="path194170"/><path d="M124.864 155.033l-.792-.595c2.201-2.932 5.136-6.09 10.2-7.285l.228.965c-4.745 1.118-7.436 3.985-9.636 6.915z" class="cls-9" id="path194172"/><path d="M128.244 158.61l-.933-.334c1.26-3.513 2.983-7.055 7.04-9.156l.456.879c-3.753 1.944-5.372 5.288-6.563 8.611z" class="cls-9" id="path194174"/></g><g id="ellipse194178"><ellipse cx="125.172" cy="135.597" rx="5.414" ry="5.624" transform="rotate(-1.47 125.172 135.597)"/><path d="M125.182 142.222a6.537 6.537 0 0 1-6.421-6.462 6.691 6.691 0 0 1 1.746-4.716 6.27 6.27 0 0 1 4.497-2.068 6.297 6.297 0 0 1 4.597 1.837 6.692 6.692 0 0 1 1.983 4.622 6.53 6.53 0 0 1-6.244 6.785l-.158.002zm-.128-11.246a4.286 4.286 0 0 0-3.072 1.418 4.707 4.707 0 0 0-1.222 3.315 4.419 4.419 0 1 0 8.825-.224 4.706 4.706 0 0 0-1.39-3.249 4.24 4.24 0 0 0-3.14-1.26zm-.025-1z" class="cls-2"/></g><ellipse cx="123.484" cy="134.057" class="cls-3" rx="2.662" ry="2.802" transform="rotate(-1.466 123.484 134.057)" id="ellipse194180"/><ellipse cx="170.518" cy="146.105" class="cls-8" rx="4.293" ry="4.501" transform="rotate(-2.016 170.518 146.104)" id="ellipse194182"/><g id="ellipse194184"><ellipse cx="142.872" cy="146.974" class="cls-3" rx="11.281" ry="10.41" transform="rotate(-1.311 142.872 146.974)"/><path d="M142.825 157.781c-6.241 0-11.414-4.588-11.624-10.407a10.325 10.325 0 0 1 2.838-7.441 12.146 12.146 0 0 1 8.443-3.76l.014.397-.014-.396c6.445-.213 11.847 4.445 12.061 10.4a10.322 10.322 0 0 1-2.837 7.44 12.147 12.147 0 0 1-8.444 3.76c-.146.004-.292.007-.437.007zm.094-20.821c-.136 0-.272.002-.41.007a11.346 11.346 0 0 0-7.89 3.508 9.537 9.537 0 0 0-2.625 6.87c.2 5.517 5.253 9.842 11.24 9.636a11.347 11.347 0 0 0 7.891-3.508 9.538 9.538 0 0 0 2.626-6.87c-.196-5.392-5.016-9.643-10.832-9.643z" class="cls-9"/></g><g id="path194186"><path d="M147.316 143.726c-.355-.908-.387-2.499-1.418-2.724l-3.072-.669-3.067.696c-1.029.233-1.048 1.824-1.395 2.736-.356.911 4.491 3.847 4.491 3.847s4.816-2.977 4.46-3.886z" class="cls-10"/><path d="M142.856 147.923l-.138-.084c-1.514-.918-4.994-3.16-4.6-4.17a6.91 6.91 0 0 0 .223-.806c.209-.884.446-1.884 1.36-2.092l3.124-.71 3.13.682c.915.2 1.16 1.198 1.376 2.08a6.716 6.716 0 0 0 .231.806c.394 1.006-3.064 3.278-4.568 4.208zm-.029-7.319l-3.01.683c-.591.135-.78.929-.962 1.697a7.09 7.09 0 0 1-.244.874c-.113.389 1.855 1.983 4.243 3.444 2.372-1.482 4.327-3.093 4.215-3.48a7.157 7.157 0 0 1-.252-.874c-.188-.765-.382-1.558-.976-1.687z"/></g><g id="path194188"><path fill="#ff8080" d="M142.309 148.665a2.52 2.52 0 0 1-1.113.957 2.846 2.846 0 0 1-1.563.188 3.24 3.24 0 0 1-1.06-.37v.057a4.25 4.25 0 1 0 8.499 0v-.049a3.234 3.234 0 0 1-1.048.362 2.843 2.843 0 0 1-1.563-.188 2.53 2.53 0 0 1-1.113-.957c-.695-1.71-.567-1.26-1.04 0z"/><path d="M142.822 154.247a4.755 4.755 0 0 1-4.75-4.75.548.548 0 0 1 .246-.459.51.51 0 0 1 .495-.036 2.716 2.716 0 0 0 .896.313 2.35 2.35 0 0 0 1.287-.151 2.02 2.02 0 0 0 .863-.725c.074-.198.13-.375.18-.523.149-.459.278-.855.712-.871.453.009.631.378 1.06 1.432a2.058 2.058 0 0 0 .85.687 2.37 2.37 0 0 0 1.288.151 2.74 2.74 0 0 0 .885-.306.5.5 0 0 1 .738.427 4.769 4.769 0 0 1-4.75 4.811zm-3.673-4.032a3.745 3.745 0 0 0 7.353.002 3.437 3.437 0 0 1-2.242-.137 3.04 3.04 0 0 1-1.335-1.147l-.097-.23a10.1 10.1 0 0 1-.05.137.5.5 0 0 1-.046.092 3.032 3.032 0 0 1-1.336 1.148 3.31 3.31 0 0 1-1.84.224 3.49 3.49 0 0 1-.407-.09z"/></g><path d="M138.695 166.394c-22.462 0-35.672-2.267-55.86-7.174l.472-1.944c22.273 5.414 35.985 7.594 63.274 7.033l.041 2c-2.772.056-5.41.085-7.927.085z" class="cls-6" id="path194190"/><path d="M135.046 174.772a104.774 104.774 0 0 1-15.263-1.079l.287-1.978c9.802 1.419 19.578 1.41 32.688-.035l.219 1.988a163.336 163.336 0 0 1-17.931 1.104z" class="cls-6" id="path194192"/><g id="path194194"><path d="M48.675 134.522c0 3.075 0 6.102-.05 8.996a121.239 121.239 0 0 0 50.475.055c-.11-2.735-.197-5.662-.291-8.75-.529-16.898-12.293-24.64-25.312-24.64-13.02 0-24.822 7.742-24.822 24.34z" class="cls-7"/><path d="M74.485 147.215a129.321 129.321 0 0 1-26.06-2.718 1 1 0 0 1-.799-.996c.049-2.886.049-5.845.049-8.979 0-8.015 2.721-14.635 7.87-19.146 4.56-3.993 10.934-6.193 17.952-6.193 11.768 0 25.72 6.707 26.311 25.609l.026.84c.085 2.776.166 5.418.265 7.901a1 1 0 0 1-.784 1.017 115.377 115.377 0 0 1-24.83 2.665zm-24.846-4.513a119.567 119.567 0 0 0 48.429.071 964.422 964.422 0 0 1-.233-7.08l-.026-.84c-.545-17.452-12.917-23.67-24.312-23.67-10.99 0-23.822 6.113-23.822 23.34 0 2.842 0 5.541-.036 8.18z"/></g><path d="M88.82 121.839l-.324-.381a3.269 3.269 0 0 0-2.449-1.13h-.003a3.28 3.28 0 0 0-2.357 1.023l-.342.365-.73-.684.341-.365a4.303 4.303 0 0 1 3.089-1.34h.004a4.279 4.279 0 0 1 3.207 1.483l.325.38z" id="path194196"/><path d="M58.013 121.91l-.792-.611.305-.396a4.207 4.207 0 0 1 6.273-.445l.358.35-.698.715-.358-.348a3.206 3.206 0 0 0-4.783.338z" id="path194198"/><g id="ellipse194200"><ellipse cx="87.612" cy="130.793" rx="4.747" ry="4.879" transform="rotate(-2.82 87.612 130.793)"/><path d="M87.624 136.672a5.832 5.832 0 0 1-5.756-5.679 5.906 5.906 0 0 1 1.526-4.203 5.636 5.636 0 0 1 4.01-1.872 5.78 5.78 0 0 1 5.952 5.675 5.904 5.904 0 0 1-1.525 4.202 5.64 5.64 0 0 1-4.01 1.873 4.49 4.49 0 0 1-.197.004zm-.021-9.758l-.129.002a3.658 3.658 0 0 0-2.599 1.218 3.918 3.918 0 0 0-1.008 2.789 3.84 3.84 0 0 0 3.884 3.747 3.66 3.66 0 0 0 2.598-1.218 3.915 3.915 0 0 0 1.008-2.789 3.828 3.828 0 0 0-3.754-3.749zm-.164-.997z" class="cls-2"/></g><ellipse cx="89.008" cy="129.37" class="cls-3" rx="2.335" ry="2.431" transform="rotate(-2.558 89.008 129.37)" id="ellipse194202"/><g id="ellipse194204"><ellipse cx="60.212" cy="130.793" rx="4.747" ry="4.879" transform="rotate(-2.047 60.211 130.793)"/><path d="M60.218 136.672a5.827 5.827 0 0 1-5.752-5.735 5.906 5.906 0 0 1 1.567-4.188 5.64 5.64 0 0 1 4.029-1.834 5.807 5.807 0 0 1 5.895 5.733 5.904 5.904 0 0 1-1.567 4.188 5.64 5.64 0 0 1-4.028 1.834 6.966 6.966 0 0 1-.144.002zm-.015-9.758l-.092.001a3.657 3.657 0 0 0-2.61 1.191 3.921 3.921 0 0 0-1.036 2.78 3.798 3.798 0 0 0 3.847 3.784 3.657 3.657 0 0 0 2.61-1.191 3.918 3.918 0 0 0 1.036-2.78 3.827 3.827 0 0 0-3.755-3.785z" class="cls-2"/></g><g id="path194206"><path d="M73.352 132.785c-4.47.152-7.973 3.606-7.824 7.714.052 1.394.53 4.248 1.377 5.401 4.499.243 8.97.27 13.322.096 1.021-1.327 1.544-4.426 1.489-6.047-.15-4.109-3.894-7.316-8.364-7.164z" class="cls-3"/><path d="M74.602 147.107c-2.585 0-5.176-.069-7.751-.208l-.473-.026-.28-.38c-1.072-1.46-1.52-4.644-1.57-5.957a8.081 8.081 0 0 1 2.22-5.824 9.453 9.453 0 0 1 6.57-2.927c5.014-.168 9.228 3.477 9.397 8.127.061 1.804-.493 5.131-1.695 6.694l-.286.37-.467.02c-1.878.074-3.77.111-5.665.111zm-7.113-2.177c4.054.203 8.147.233 12.18.087a12.084 12.084 0 0 0 1.047-5.035c-.129-3.548-3.39-6.322-7.33-6.199a7.44 7.44 0 0 0-5.176 2.292 6.093 6.093 0 0 0-1.683 4.388 13.948 13.948 0 0 0 .962 4.467z" class="cls-9"/></g><ellipse cx="58.731" cy="129.457" class="cls-3" rx="2.335" ry="2.431" transform="rotate(-1.855 58.731 129.457)" id="ellipse194208"/><g id="path194210"><path d="M76.898 140.063c-.26-.662-.288-1.821-1.048-1.985l-2.27-.488-2.267.507c-.76.17-.775 1.33-1.032 1.994-.26.665 3.32 2.804 3.32 2.804s3.56-2.17 3.296-2.832z" class="cls-10"/><path d="M73.603 143.204l-.138-.08c-1.72-1.03-3.713-2.407-3.43-3.13a4.73 4.73 0 0 0 .163-.579c.152-.63.34-1.415 1.057-1.575l2.324-.52 2.326.5c.719.155.915.94 1.072 1.57a4.824 4.824 0 0 0 .167.576c.284.719-1.695 2.113-3.405 3.155zm-.022-5.344l-2.21.495c-.367.082-.505.542-.659 1.184a5.216 5.216 0 0 1-.184.648c.022.3 1.412 1.393 3.072 2.399 1.639-1.014 3.013-2.111 3.046-2.44a5.503 5.503 0 0 1-.182-.627c-.16-.642-.302-1.103-.67-1.182zm3.07 2.3z"/></g><path d="M74.117 155.132c-11.732-.043-19.45-.997-29.496-3.648l.51-1.933c9.863 2.602 17.45 3.539 28.993 3.58z" class="cls-6" id="path194212"/><ellipse cx="89.901" cy="141.773" class="cls-8" rx="3.534" ry="3.706" transform="rotate(-2.018 89.901 141.783)" id="ellipse194214"/><ellipse cx="57.901" cy="141.774" class="cls-8" rx="3.534" ry="3.706" transform="rotate(-2.016 57.901 141.773)" id="ellipse194216"/><path d="M74.427 147.062a130.006 130.006 0 0 1-32.672-4.078l.51-1.933c19.766 5.213 43.319 5.36 61.467.38l.53 1.93a114.578 114.578 0 0 1-29.835 3.7z" class="cls-6" id="path194218"/></svg>
diff --git a/pkg/hooks/docs/oci-hooks.5.md b/pkg/hooks/docs/oci-hooks.5.md
index c876dd2f8..fc0442283 100644
--- a/pkg/hooks/docs/oci-hooks.5.md
+++ b/pkg/hooks/docs/oci-hooks.5.md
@@ -90,7 +90,7 @@ $ cat /etc/containers/oci/hooks.d/oci-systemd-hook.json
"path": "/usr/libexec/oci/hooks.d/oci-systemd-hook"
}
"when": {
- "args": [".*/init$" , ".*/systemd$"],
+ "commands": [".*/init$" , ".*/systemd$"],
},
"stages": ["prestart", "poststop"]
}
diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go
index 9529346b4..8b6eab892 100644
--- a/test/e2e/common_test.go
+++ b/test/e2e/common_test.go
@@ -10,6 +10,7 @@ import (
"sort"
"strings"
"testing"
+ "time"
"github.com/containers/libpod/cmd/podman/shared"
"github.com/containers/libpod/libpod"
@@ -22,6 +23,7 @@ import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
+ "github.com/pkg/errors"
)
var (
@@ -367,6 +369,18 @@ func (p *PodmanTestIntegration) RunLsContainer(name string) (*PodmanSessionInteg
return session, session.ExitCode(), session.OutputToString()
}
+// RunNginxWithHealthCheck runs the alpine nginx container with an optional name and adds a healthcheck into it
+func (p *PodmanTestIntegration) RunNginxWithHealthCheck(name string) (*PodmanSessionIntegration, string) {
+ var podmanArgs = []string{"run"}
+ if name != "" {
+ podmanArgs = append(podmanArgs, "--name", name)
+ }
+ podmanArgs = append(podmanArgs, "-dt", "-P", "--healthcheck-command", "CMD-SHELL curl http://localhost/", nginx)
+ session := p.Podman(podmanArgs)
+ session.WaitWithDefaultTimeout()
+ return session, session.OutputToString()
+}
+
func (p *PodmanTestIntegration) RunLsContainerInPod(name, pod string) (*PodmanSessionIntegration, int, string) {
var podmanArgs = []string{"run", "--pod", pod}
if name != "" {
@@ -508,3 +522,16 @@ func (p *PodmanTestIntegration) ImageExistsInMainStore(idOrName string) bool {
results.WaitWithDefaultTimeout()
return Expect(results.ExitCode()).To(Equal(0))
}
+
+func (p *PodmanTestIntegration) RunHealthCheck(cid string) error {
+ for i := 0; i < 10; i++ {
+ hc := p.Podman([]string{"healthcheck", "run", cid})
+ hc.WaitWithDefaultTimeout()
+ if hc.ExitCode() == 0 {
+ return nil
+ }
+ fmt.Printf("Waiting for %s to pass healthcheck\n", cid)
+ time.Sleep(1 * time.Second)
+ }
+ return errors.Errorf("unable to detect %s as running", cid)
+}
diff --git a/test/e2e/port_test.go b/test/e2e/port_test.go
index e45118361..26c5fd7d0 100644
--- a/test/e2e/port_test.go
+++ b/test/e2e/port_test.go
@@ -48,11 +48,14 @@ var _ = Describe("Podman port", func() {
Expect(result.ExitCode()).ToNot(Equal(0))
})
- It("podman port -l nginx", func() {
- session := podmanTest.Podman([]string{"run", "-dt", "-P", nginx})
- session.WaitWithDefaultTimeout()
+ It("podman port -l nginx", func() {
+ session, cid := podmanTest.RunNginxWithHealthCheck("")
Expect(session.ExitCode()).To(Equal(0))
+ if err := podmanTest.RunHealthCheck(cid); err != nil {
+ Fail(err.Error())
+ }
+
result := podmanTest.Podman([]string{"port", "-l"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
@@ -61,10 +64,13 @@ var _ = Describe("Podman port", func() {
})
It("podman container port -l nginx", func() {
- session := podmanTest.Podman([]string{"container", "run", "-dt", "-P", nginx})
- session.WaitWithDefaultTimeout()
+ session, cid := podmanTest.RunNginxWithHealthCheck("")
Expect(session.ExitCode()).To(Equal(0))
+ if err := podmanTest.RunHealthCheck(cid); err != nil {
+ Fail(err.Error())
+ }
+
result := podmanTest.Podman([]string{"container", "port", "-l"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
@@ -73,10 +79,13 @@ var _ = Describe("Podman port", func() {
})
It("podman port -l port nginx", func() {
- session := podmanTest.Podman([]string{"run", "-dt", "-P", nginx})
- session.WaitWithDefaultTimeout()
+ session, cid := podmanTest.RunNginxWithHealthCheck("")
Expect(session.ExitCode()).To(Equal(0))
+ if err := podmanTest.RunHealthCheck(cid); err != nil {
+ Fail(err.Error())
+ }
+
result := podmanTest.Podman([]string{"port", "-l", "80"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
@@ -85,10 +94,13 @@ var _ = Describe("Podman port", func() {
})
It("podman port -a nginx", func() {
- session := podmanTest.Podman([]string{"run", "-dt", "-P", nginx})
- session.WaitWithDefaultTimeout()
+ session, cid := podmanTest.RunNginxWithHealthCheck("")
Expect(session.ExitCode()).To(Equal(0))
+ if err := podmanTest.RunHealthCheck(cid); err != nil {
+ Fail(err.Error())
+ }
+
result := podmanTest.Podman([]string{"port", "-a"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
diff --git a/test/install/Dockerfile.Fedora b/test/install/Dockerfile.Fedora
index 74cee771d..3e7b6e238 100644
--- a/test/install/Dockerfile.Fedora
+++ b/test/install/Dockerfile.Fedora
@@ -1,3 +1,3 @@
-FROM registry.fedoraproject.org/fedora:29
+FROM registry.fedoraproject.org/fedora:30
RUN dnf install -y rpms/x86_64/*
diff --git a/vendor.conf b/vendor.conf
index 8b17fc35b..76e8b0003 100644
--- a/vendor.conf
+++ b/vendor.conf
@@ -93,7 +93,7 @@ k8s.io/api kubernetes-1.10.13-beta.0 https://github.com/kubernetes/api
k8s.io/apimachinery kubernetes-1.10.13-beta.0 https://github.com/kubernetes/apimachinery
k8s.io/client-go kubernetes-1.10.13-beta.0 https://github.com/kubernetes/client-go
github.com/mrunalp/fileutils 7d4729fb36185a7c1719923406c9d40e54fb93c7
-github.com/containers/buildah v1.8.4
+github.com/containers/buildah v1.9.0
github.com/varlink/go 0f1d566d194b9d6d48e0d47c5e4d822628919066
# TODO: Gotty has not been updated since 2012. Can we find replacement?
github.com/Nvveen/Gotty cd527374f1e5bff4938207604a14f2e38a9cf512
diff --git a/vendor/github.com/containers/buildah/buildah.go b/vendor/github.com/containers/buildah/buildah.go
index b97e048cc..329835d7a 100644
--- a/vendor/github.com/containers/buildah/buildah.go
+++ b/vendor/github.com/containers/buildah/buildah.go
@@ -26,7 +26,7 @@ const (
Package = "buildah"
// Version for the Package. Bump version in contrib/rpm/buildah.spec
// too.
- Version = "1.8.4"
+ Version = "1.9.0"
// The value we use to identify what type of information, currently a
// serialized Builder structure, we are using as per-container state.
// This should only be changed when we make incompatible changes to
diff --git a/vendor/github.com/containers/buildah/run_linux.go b/vendor/github.com/containers/buildah/run_linux.go
index 55f9502b2..0bf37da59 100644
--- a/vendor/github.com/containers/buildah/run_linux.go
+++ b/vendor/github.com/containers/buildah/run_linux.go
@@ -1134,8 +1134,14 @@ func runCopyStdio(stdio *sync.WaitGroup, copyPipes bool, stdioPipe [][]int, copy
setNonblock(wfd, writeDesc[wfd], false)
}
- setNonblock(stdioPipe[unix.Stdin][1], writeDesc[stdioPipe[unix.Stdin][1]], true)
+ if copyPipes {
+ setNonblock(stdioPipe[unix.Stdin][1], writeDesc[stdioPipe[unix.Stdin][1]], true)
+ }
+
+ runCopyStdioPassData(stdio, copyPipes, stdioPipe, copyConsole, consoleListener, finishCopy, finishedCopy, spec, relayMap, relayBuffer, readDesc, writeDesc)
+}
+func runCopyStdioPassData(stdio *sync.WaitGroup, copyPipes bool, stdioPipe [][]int, copyConsole bool, consoleListener *net.UnixListener, finishCopy []int, finishedCopy chan struct{}, spec *specs.Spec, relayMap map[int]int, relayBuffer map[int]*bytes.Buffer, readDesc map[int]string, writeDesc map[int]string) {
closeStdin := false
// Pass data back and forth.
diff --git a/version/version.go b/version/version.go
index 2ef7a9c65..3dbf4768d 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.2-dev"
+const Version = "1.4.3-dev"
// RemoteAPIVersion is the version for the remote
// client API. It is used to determine compatibility