summaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAge
* Cirrus: add bindings checksValentin Rothberg2021-01-29
| | | | | | | | | Make sure that bindings are in sync with the code. The check is similar to what's already being done with `make vendor`, so integrate the two. [NO TESTS NEEDED] Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* make bindings generation explicitValentin Rothberg2021-01-29
| | | | | | | | Instead of implicitly generating the bindings, make it explicit, similar to `make vendor`. This should prevent redundant and possibly error prone generations. A following commit will shield CI. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* make bindings generation more robutsValentin Rothberg2021-01-29
| | | | | | | | | | | | | | | | | | The Go gods did not shine upon us trying to understand what's going on in #9000. The symptom is that `go generate` did not add required imports to a generated file, ultimately breaking subsequent compilation. While it still remains unclear *why* Go is behaving like that, the symptom disappears when `go generate` runs in module mode; that is without `-mod=vendor` and without `GO111MODULE=off`. This was reproducible on two separate machines (Ubuntu and Fedora). Also, when facing an unset GOPATH, set it to Go's default (i.e., $HOME/go) and make sure that GOBIN is in PATH since `goimports` is required by `go generate`. Fixes: #9000 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* simplify bindings generationValentin Rothberg2021-01-29
| | | | | | | | | | Run `go generate ./pkg/bindings/...` once for all bindings instead of generating them separately. This should speed up bindings generation as a given package is visited only once, and it fixes #8989 by dropping the use of pushd and popd. Fixes: #8989 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* make: generate bindings: use vendorValentin Rothberg2021-01-29
| | | | | | | | Set `-mod=vendor` when generating the bindings. We expect all dependencies to be vendored already. This should slightly speed up the bindings generation and prevent redundant network accesses. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Add tests for volume pluginsMatthew Heon2021-01-14
| | | | | | | | | This involves a new test binary (a basic implementation of the volume plugin protocol) and a new image on quay.io (Containerfile to produce it and all sources located in this commit). The image is used to run a containerized plugin we can test against. Signed-off-by: Matthew Heon <mheon@redhat.com>
* Makefile: add target to generate bindingsValentin Rothberg2021-01-14
| | | | | | | | | | | Add a `.generate-bindings` make target that only runs in the absence of the `.generate-bindings` file or when a `types.go` file below `pkg/bindings` has changed. This will regenerate the go bindings and make sure the code is up2date. Signed-off-by: Valentin Rothberg <rothberg@redhat.com> Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Cirrus: Add cross-compile test for alternative archesChris Evich2021-01-11
| | | | | | | Followup to https://github.com/containers/podman/pull/8907 that simply ensures cross-compiling podman completes. Signed-off-by: Chris Evich <cevich@redhat.com>
* Add mips architecture to the cross build targetPaul Holzinger2021-01-07
| | | | Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* SpellingJosh Soref2020-12-22
| | | | Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* Update nix pin with `make nixpkgs`Wong Hoi Sing Edison2020-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR introduce 3 changes: - Upgrade Nix stable channel from 20.03 to 20.09. NixOS 20.09 released at 2020-10-27, see <https://nixos.org/manual/nixos/stable/release-notes.html#sec-release-20.09> for more information. - Replace `git` with `gitMinimal`. All 6 projects (i.e. crun/conmon/skopeo/buildah/podman/cri-o) are having `git` as dependency for failsafe during bootstrap. BTW <https://github.com/NixOS/nixpkgs/pull/104896> replace `asciidoc` with `asciidoctor` so trigger the dependency chain to `glib` and so failed (see below). Switching to `gitMinimal` skip this dependency chain to `glib`, which also speed up overall build process. - Adding `-pthread` for `glib` `conmon` couldn't skip the error by replacing `git` with `gitMinimal` since it do depend on `glib`. Since `glib` trigger error message "undefined reference to 'pthread\_create'", therefore adding `pthread` to `CFLAGS` could solve the problem. Also see: - <https://github.com/containers/crun/pull/550> - <https://github.com/containers/conmon/pull/218> - <https://github.com/containers/skopeo/pull/1120> - <https://github.com/containers/buildah/pull/2831> - <https://github.com/containers/podman/pull/8526> - <https://github.com/cri-o/cri-o/pull/4395> Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
* Merge pull request #8534 from Luap99/revert-Luap99-cobra-vendorOpenShift Merge Robot2020-12-01
|\ | | | | Revert the custom cobra vendor
| * Revert the custom cobra vendorPaul Holzinger2020-12-01
| | | | | | | | | | | | | | | | | | | | | | | | Vendor in the latest cobra release v1.1.1 This will hurt the completion experience but is required for proper packaging, see: #8528. The best solution is to keep the current scripts since they work fine with cobra v1.1.1. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* | Remove varlink support from PodmanDaniel J Walsh2020-11-26
|/ | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #6442 from Luap99/podman-autocompleteOpenShift Merge Robot2020-11-13
|\ | | | | Shell completion
| * Install the new shell completion logicPaul Holzinger2020-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new make target (completion) to generate the shell completion scripts. This will generate the scripts for bash, zsh and fish for both podman and podman-remote with `podman completion`. The scripts are put into the completions directory and can be installed system wide with `sudo make install.completions`. This commit replaces the current handwritten scripts for bash and zsh. The `validate.completion` target has been adjusted to make sure nobody edits these scripts directly. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* | Fix issues found with codespellDaniel J Walsh2020-11-12
|/ | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* [CI:DOCS] Restore man page cross-checkerEd Santiago2020-11-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Somewhere in the CIv2 migration we lost the man page vs --help cross-checker. Add it back, by adding it into the man-page-check Makefile target; this is part of 'make validate', which is run in CI even on CI:DOCS PRs. As happens when CI doesn't run, things broke. Man pages got out of sync with --help. This PR: 1) Fixes hack/xref-helpmsgs-manpages to deal with the new "Options" (instead of "Flags") form of podman help. #8034 did part of that, but one of my review comments was accidentally left out. 2) Fixes hack/xref-helpmsgs-manpages to deal with the new option syntax in man pages, post- #8292, in which each option is preceded by four hashes so as to make them HTML <h4> elements with named anchors. 3) Fixes man pages that #8292 accidentally missed. 4) Adds man page entries for two flags that got added to podman but not documented (pod create --network-alias, play kube --log-driver) Fixes: #8296 Signed-off-by: Ed Santiago <santiago@redhat.com>
* Update CI tests to run python docker library against APIJhon Honce2020-11-09
| | | | | | | | | | | * Update reference to docker-py to docker to reflect change in library name * Update tests to create storage sandbox * Enable all tests that endpoints support * Refactor containers/{id}/rename to return 404 not 500 * Refactor tests to use quay.io vs. docker.io Signed-off-by: Jhon Honce <jhonce@redhat.com>
* Use /tmp/podman-run-* for backup XDG_RUNTIME_DIRDaniel J Walsh2020-11-04
| | | | | | | We need to block systemd from cleaning up this directory by dropping a /usr/lib/tmpfiles.d/podman.conf file in place. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Add test/apiv2/rest_api tests to make targetJhon Honce2020-11-02
| | | | | | | | * renamed old API tests to not be discovered, they do not pass * Updated the API tests to use a pristine storage configuration * Skipped attach test, it needs to be re-written Signed-off-by: Jhon Honce <jhonce@redhat.com>
* Cirrus: Implement podman automation 2.0Chris Evich2020-10-02
| | | | | | | | | | | | | | | | | | Reimplement CI-automation to remove accumulated technical-debt and optimize workflow. The task-dependency graph designed goal was to shorten it's depth and increase width (i.e. more parallelism). A reduction in redundant building (and 3rd party module download) was also realized by caching `$GOPATH` and `$GOCACHE` early on. This cache is then reused in favor of a fresh clone of the repository (when possible). Note: The system tests typically execute MUCH faster than the integration tests. However, contrary to a fail-fast/fail-early principal, they are executed last. This was implemented due to debug-ability related concerns/preferences of the primary (golang-centric) project developers. Signed-off-by: Chris Evich <cevich@redhat.com>
* Don't disable Go modules when generating varlinkJordan Christiansen2020-09-30
| | | | | | | | | | | | | | From a fresh install of Fedora 33 Beta and a fresh clone of the repo, `make` fails with the following error when Go modules are disabled: # Only generate the varlink code on Linux (see issue #4814). GO111MODULE=off go generate ./pkg/varlink/... ../../vendor/github.com/varlink/go/cmd/varlink-go-interface-generator/main.go:12:2: cannot find package "github.com/varlink/go/varlink/idl" in any of: /usr/lib/golang/src/github.com/varlink/go/varlink/idl (from $GOROOT) /home/test/src/podman/_output/src/github.com/varlink/go/varlink/idl (from $GOPATH) pkg/varlink/generate.go:3: running "go": exit status 1 make: *** [Makefile:646: pkg/varlink/iopodman.go] Error 1 Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
* Print nice error message when python is not installedDaniel J Walsh2020-09-21
| | | | | | | If user runs `make help` on a system without python, we should print a decent message. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Makefile: Fix broken libpodimage targetsChris Evich2020-09-18
| | | | | | | | | | | | | | The configuration for this container has moved to the `containers/automation_images` repository. Leverage the image built from the new location to guarantee synchronization with images used in CI. Also, remove several other targets that haven't worked for a really long time. Upon discussion, they seem to apply to a minority of users. Remove them to clean up the `Makefile` and reduce maintenance burden. Signed-off-by: Chris Evich <cevich@redhat.com>
* Make Go builds more consistentJordan Christiansen2020-09-17
| | | | | | | * Use the BUILDFLAGS variable for all Go builds * Use `go install` instead of manually specifying the GOBIN path Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
* Makefile: add cross compile targets for more archesLokesh Mandvekar2020-09-08
| | | | | | | This commit adds additional targets for which we provide binary packages on fedora and other distros. Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* fix podman version output to include git commit and builttimePaul Holzinger2020-08-18
| | | | | | Add the go module version v2 to the libpod path. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* Makefile: use full path for ginkgoLokesh Mandvekar2020-08-11
| | | | | | | | | | | | | | | | | | | | Without this change, I get: ``` ginkgo \ -r \ \ --skipPackage test/e2e,pkg/apparmor,test/endpoint,pkg/bindings,hack \ --cover \ --covermode atomic \ --coverprofile coverprofile \ --outputdir .coverage \ --tags " selinux systemd exclude_graphdriver_devicemapper seccomp" \ --succinct /bin/sh: line 1: ginkgo: command not found ``` Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* Reenable remote system testsEd Santiago2020-08-03
| | | | | | | | | | | | | | | | | | | podman-remote is in better shape now. Let's see what needs to be done to reenable remote system tests. - logs test: skip multilog, it doesn't work remote - diff test: use -l only when local, not with remote - many other tests: skip_if_remote, with 'FIXME: pending #xxxx' where xxxx is a filed issue. Unrelated: added new helper to skip_if_remote and _if_rootless, where we check if the source message includes "remote"/"rootless" and insert it if missing. This is a minor usability enhancement to make it easier to understand at-a-glance why a skip triggers. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Install auto-update services for usersValentin Rothberg2020-08-03
| | | | Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Install auto-update systemd service and timer.Peter Oliver2020-08-03
| | | | Signed-off-by: Peter Oliver <git@mavit.org.uk>
* Switch all references to github.com/containers/libpod -> podmanDaniel J Walsh2020-07-28
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* make localunit: record coverageValentin Rothberg2020-07-21
| | | | | | | Inspirsed by CRI-O's coverage logic. Initial coverage is at 15.7 percent. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* unit tests: root checkValentin Rothberg2020-07-21
| | | | | | | | | The unit tests currently require running as root. This has caused some confusion that justifies adding a root check to `make localunit` and error out for non-root users instead of starting the tests deemed to fail. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Switch references from libpod.conf to containers.confDaniel J Walsh2020-07-20
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Cleanup nix derivation for static buildsWong Hoi Sing Edison2020-07-18
| | | | Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
* Remove outdated seccomp policyMatthew Heon2020-07-13
| | | | | | | | | | | | | | | | | | Some time ago, we moved the Seccomp policy (and related setup code) to a place where all our tools could share it [1]. We did not, however, remove the in-repo seccomp.json file. Over the last year or so, the in-repo seccomp policy has become progressively more and more outdated, with no effort made to maintain it (because what sense is there in keeping a duplicate?). Today, a friend came to me and asked if a Podman container could access keyctl, assuming it could not because he was reading the outdated Seccomp policy which does not allow it. Since it's becoming clear that this file is doing no good and actively causing confusion, let's just drop it. [1] https://github.com/seccomp/containers-golang Signed-off-by: Matthew Heon <mheon@redhat.com>
* Add containers.conf default file for windows and MAC InstallsDaniel J Walsh2020-06-24
| | | | | | | We want to add this configuration file so that users can descover how to configure the permanent connection to a remote podman instance. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* system tests: invoke with abs path to podmanEd Santiago2020-06-23
| | | | | | | | | | | | | | | | | | | | | | Reversion of one part of #6679: my handling of 'realpath' would not work when $PODMAN is 'podman-remote --url etc'. Trying to handle that case got unmaintainable; so instead let's just force 'make {local,remote}system' to invoke with a full PODMAN path. This breaks down if someone runs the tests with a manual 'bats' invocation, but I think I'm the only one who ever does that. Since podman path will now be very long in the logs, add code to logformatter to abbreviate it like we do for the ginkgo logs. And, one thing that has bugged me for a long time: in the error logs, show a different prompt ('#' vs '$') to distinguish root vs rootless. This should make it much easier to see at-a-glance whether a log file is root or not. Add tests for it. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Makefile: allow customizable GO_BUILDLokesh Mandvekar2020-06-22
| | | | | | | This will let me use a customizable GO_BUILD so that I can run build targets for deb packages Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* Makefile: install.varlink needs to create dirsLokesh Mandvekar2020-06-17
| | | | Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* WIP: Enable (and disable) remote testingEd Santiago2020-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | podman-remote has not been tested. A principal part of the problem was #5387 - the YAML I wrote did not have the intended effect, it did not set TEST_REMOTE_CLIENT=true and because of my multiple iterations I did not catch this during testing. Part 1 of this PR is to fix .cirrus.yml to enable remote tests. Part 2 -- what I had first noticed and tried to fix -- is that rootless_test.sh was never running remote because, of course, envariables are not sent via ssh. I reworked integration_test.sh and rootless_test.sh to use a command-line decision instead. Part 3, sigh, is to disable one failing integration test and *all* system tests, because so many of the latter are failing. Addressing those failures needs to be done in subsequent PRs. Issues #6538, #6539, #6540 are filed for some of the problems I isolated. There will be more. Also, minor, fixed some stale references to varlink. Signed-off-by: Ed Santiago <santiago@redhat.com>
* force bats version to v1.1.0Valentin Rothberg2020-06-08
| | | | | | | | We experienced regression when using the latest `v1.2.0-dev` bats in Ubuntu 20.04 (see github.com/containers/libpod/pull/6418). Using bats v1.1.0 worked in the Ubuntu test VM. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Remove use of ABISupport buildtagDaniel J Walsh2020-06-03
| | | | | | | | | | We need to default to building podman. If you specify no build tags you will not build podman, not podman-remote. Just using remote flag to indicate podman-remote and !remote for podman. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* default build without `varlink` tagLokesh Mandvekar2020-05-29
| | | | | | | | | | | | | Issue gh#6286 was already fixed in a prior commit but the Makefile still ran some varlink steps by default. This commit makes any varlink build steps dependent on the varlink build tag and also makes the contrib rpm spec file independent of varlink. Endpoint tests will be run only if BUILDTAGS contains varlink. Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* Vendor in containers/common v0.12.0Daniel J Walsh2020-05-28
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Fix builds on 32 bit archesDaniel J Walsh2020-05-27
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* podman-registry: many unrelated fixesEd Santiago2020-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) fix lost credentials. must_pass(), added in #6375, eats the credentials generated via 'podman run --entrypoint htpasswd'. Run that podman instance directly, and add explicit error check. (The error and stdout/stderr handling here has gotten cumbersome. There must be something I'm missing that could make it all simpler.) 2) fix default podman path. When setting $PODMAN, default to the locally built one -- there may not be one in $PATH (e.g. in Ubuntu, see #6366). This in turn requires us to: 3) run registry test in integration, not unit test It looks like unit tests run before podman is built, causing a chicken-egg dilemma. Try to solve that by running the new hack/podman-registry-go test in integration tests, not unit tests. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Makefile: customizable $REMOTETAGSLokesh Mandvekar2020-05-24
| | | | | | This change will allow the builder to specify custom REMOTETAGS. Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>