summaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAge
* [CI:DOCS] tests-expect-exit: include source line numbersEd Santiago2021-08-04
| | | | | | | | | | In the new check for preventing 'Expect(ExitCode...)', include source line numbers. Response to #11034, which I totally didn't even understand because it was referencing a different test. Sorry, Brent. Signed-off-by: Ed Santiago <santiago@redhat.com>
* buildah bud tests under podman-remoteEd Santiago2021-07-28
| | | | | | | | | | | | | | | | New functionality -- mostly in the diffs we apply to buildah's helpers.bash -- to enable running buildah-bud tests under podman-remote. The gist of it is, we start a 'podman system service' before each test, and clean it up on test exit. Design decision: the diff file for helpers.bash is no longer trailing-whitespace-clean: that ended up producing diffs that git wouldn't apply, because in some cases the whitespace is actually important. In order to pass CI, we need to exclude this file from some checks. Signed-off-by: Ed Santiago <santiago@redhat.com>
* e2e tests: prevent 'Expect(ExitCode())' patternEd Santiago2021-07-20
| | | | | | | | | | | | | | | | | Followup to #10932: add a validation check to prevent introduction of new 'Expect(foo.ExitCode()).To(...)' patterns. If such use is absolutely necessary -- there is one such instance in the code already -- require that the assertion include a description. Also: clean up instances that were introduced since the merging of #10932. Also: fix one remaining instance in run_exit_test.go: it had a FIXME comment mentioning a race condition, but unfortunately there was no issue or bug ID, hence no way to know if the race is fixed or not. We will assume it is. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Cirrus: Fixes due to master->main renameChris Evich2021-06-30
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #10803 from lsm5/remove-cni-conflistOpenShift Merge Robot2021-06-29
|\ | | | | Makefile: remove install.cni
| * Makefile: remove install.cniLokesh Mandvekar2021-06-28
| | | | | | | | | | | | | | We no longer need to install /etc/cni/net.d/87-podman-bridge.conflist so install.cni isn't needed either. Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* | prefix `ETCDIR` with `${PREFIX}/`tobwen2021-06-26
|/ | | | | | `ETCDIR` isn't prefixed and led to dangling files in `DESTDIR/etc` Signed-off-by: Tobias Wendorff <1864057+tobwen@users.noreply.github.com>
* Merge pull request #10679 from cevich/fix_static_buildOpenShift Merge Robot2021-06-15
|\ | | | | Fix building static podman-remote
| * Fix building static podman-remoteChris Evich2021-06-14
| | | | | | | | | | | | | | | | | | | | As near as I can tell, sometime between `v1.6.4` and `v1.9` the definition of `LDFLAGS_PODMAN_STATIC` was both created and lost. Additionally, after a refactoring of the `Makefile` it was possible to enable CGO (which will cause a dynamic binary to be built). Fix both issues by adding the missing definition and forcing CGO to be disabled. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Merge pull request #10595 from boaz0/closes_10539OpenShift Merge Robot2021-06-15
|\ \ | |/ |/| Add podman-restart systemd unit file
| * Restart all containers with restart-policy=always on bootBoaz Shuster2021-06-13
| | | | | | | | | | | | | | * Add podman-restart systemd unit file and add it to podman RPM package * Fix podman start to filter all containers + unit test Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
* | Merge pull request #10601 from Procyhon/07062021_manpageOpenShift Merge Robot2021-06-12
|\ \ | | | | | | [CI:DOCS] UPDATE manpages with MANPAGE_SYNTAX
| * | UPDATE manpages with MANPAGE_SYNTAXAlexander Richter2021-06-12
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following manpages have been adapted to the MANPAGE_SYNTAX: - podman-completion - podman-container-checkpoint - podman-container-cleanup - podman-container-exists The following manpages have had little changes: - podman-attach - podman-commit - MANPAGE_SYNTAX - Makefile Signed-off-by: Alexander Richter <67486332+Procyhon@users.noreply.github.com>
* / Update nix pin with `make nixpkgs`Wong Hoi Sing Edison2021-06-10
|/ | | | | | | | - Bugfix `make nixpkgs` which pin with branch `nixos-21.05` - Code lint with `nixpkgs-fmt` - Code sync between x86\_64 and aarch64 Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
* UPDATE MANPAGE_SYNTAX (commit,attach,auto-update)Alexander Richter2021-06-06
| | | | | | | Updated version for the MANPAGE_SYNTAX and adaption of the syntax for the manpages of podman-commit, podman-attach, and podman-auto-update. Signed-off-by: Alexander Richter <67486332+Procyhon@users.noreply.github.com>
* Handle hard links in remote buildsDaniel J Walsh2021-05-22
| | | | | | Fixes: https://github.com/containers/podman/issues/9893 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Break up python APIv2 testsJhon Honce2021-05-18
| | | | | | | | | | | | | | * Tests broken up into areas of concern * Introduced fixtures to reduce duplicated code * Introduced new assert methods with APITestCase * General cleanup of code while visiting * Tests now targeting quay.io Known issues: * is-official against quay.io not working Fixes: #9238 Signed-off-by: Jhon Honce <jhonce@redhat.com>
* Add documentation on short-namesDaniel J Walsh2021-05-07
| | | | | | | | | Once we settle on the wording for short-names in podman-pull, I will add the same section to all of the podman commands that use pull. Also ran through all man pages with a spell checker. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* [CI:DOCS] Restore missing content to manpagesRob Cowsill2021-04-25
| | | | | | | | | | | | | | The following content was omitted: - Text after the first markdown link on a line to the end of the last (in lines with multiple markdown links) - Email addresses of the form <a...@...> Fixed by: - Making the first two regexes match each link individually, instead of matching from the start of the first link to the end of the last - Making the last regex specifically match <a> and </a> tags Signed-off-by: Rob Cowsill <42620235+rcowsill@users.noreply.github.com>
* Fixes from make codespellDaniel J Walsh2021-04-21
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Update nix pin with `make nixpkgs`Wong Hoi Sing Edison2021-04-14
| | | | Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
* Overhaul Makefile binary and release worflowsChris Evich2021-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Incorporate changes from abandoned #9918: Use dedicated `bin` sub-directories for `windows` and `darwin` when building `podman-remote`. The linux flavor remains under `bin` as before. * Fix MacOS Documentation-generation for release-packaging. The `install-podman-remote-%-docs` target requires local execution of `podman-remote`, but it was assuming GOOS=linux. Fix this by dynamically discovering the local OS/architecture type while still permitting cross-building of MacOS binaries under Linux. * Unify temporary directory/file behavior to use a common template. In case of left-over temporary items left in the repository, update the `clean` target accordingly to remove them. * Fix broken podman-remote-static and MacOS release archive targets mismatching the `podman-remote-%` target. Disambiguate this target for all platforms by spelling each out in full, instead of using a wild-card recipe. * Fix Windows-installer target to properly recognize existing output files and not constantly rebuild every time. * Include the podman version number in the Windows-installer target in case a user downloads multiple releases. * Include a subdirectory containing the podman version number for both `tar.gz` and `zip` targets. This prevents users clobbering existing directories when un-archiving from releases. Signed-off-by: Chris Evich <cevich@redhat.com>
* Reorganize Makefile with sections and guideChris Evich2021-04-12
| | | | | | | | | | | | | | | | | Over several years the podman Makefile has become a bloated complex mess. This impedes both debugging and maintenance, besides causing general eye-strain. Fix this by adding a simple navigation/layout guide, to help developers quickly find what's needed. Re-organize the entire file according to the new layout guide. Add section headers that call out the purpose of the encompassed content, and are easy to locate with search-tools. Note: No recipes or definitions have been altered by this commit, only re-arranged. Signed-off-by: Chris Evich <cevich@redhat.com>
* Simplify Makefile help targetChris Evich2021-04-12
| | | | | | | | | | | | | | | | | | An in-line Python script, while flexible, is arguably more complex and less stable than the long-lived `grep`, `awk`, and `printf`. Make use of these simple tools to display a column-aligned table of target and description help output. Also, the first target that appears in a Makefile is considered the default (when no target is specified on the command-line). However, despite it's name, the `default` target was not listed first. Fix this, and redefine "default" target to "all" as intended, instead of "help". Lastly, add a small workaround for a vim syntax-hilighting bug. Signed-off-by: Chris Evich <cevich@redhat.com>
* Don't shell to obtain current directoryChris Evich2021-04-12
| | | | | | | | | | | Instead of shelling out frequently to resolve the current directory, use the Makefile built-in `$(CURDIR)`. It has the exact same meaning w/in the context of a `Makefile`. Ref.: https://www.gnu.org/software/make/manual/html_node/Quick-Reference.html Signed-off-by: Chris Evich <cevich@redhat.com>
* Remove unnecessary/not-needed release.txt targetChris Evich2021-04-12
| | | | | | | | Previously this was needed for an automated release process. That automation has long since been removed. Simplify the Makefile by removing the target and references. Signed-off-by: Chris Evich <cevich@redhat.com>
* Bump go.sum + Makefile for golang 1.16Chris Evich2021-04-07
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* [NO TESTS NEEDED] Update nix pin with `make nixpkgs`Wong Hoi Sing Edison2021-04-06
| | | | | | | | - Bugfix `make nixpkgs` which pin with branch `nixos-20.09` - Code lint with `nixpkgs-fmt` - Code sync between x86\_64 and aarch64 Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
* Makefile: introduce install.docker-fullMorten Linderud2021-03-31
| | | | | | | | | | The split of install.docker and install.docker-docs makes some sense but there should be some way to specify both for packagers. This introduces `make install.docker-full` which installs both the docker binary and the documentation. Signed-off-by: Morten Linderud <morten@linderud.pw>
* Makefile: ensure install.docker creates BINDIRMorten Linderud2021-03-31
| | | | | | | | | Commit 3908c00799fe2af1a12c9c4f4be8b49dbdecd9be introduces a split for installing the docker binary and the docker documentation. The install line creating BINDIR and MANDIR was both moved to the install.docker-docs path which makes `install.docker` fail. Signed-off-by: Morten Linderud <morten@linderud.pw>
* Add powershell completionsPaul Holzinger2021-03-29
| | | | | | | | | Add support for generating powershell completion files. This is especially useful for people using the podman remote client on windows. [NO TESTS NEEDED] Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* Makefile: add install.docker-docs-nobuild for packaging useLokesh Mandvekar2021-03-03
| | | | | | | | | This will allow installation of the manpages without the need to rebuild them in the installation stage of distro packaging. [NO TESTS NEEDED] Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* Makefile: install systemd services conditionallyMing Liu2021-03-02
| | | | | | Only install systemd services provided that systemd is in BUILDTAGS. Signed-off-by: Ming Liu <liu.ming50@gmail.com>
* Makefile: split install.docker-docs from install.dockerMing Liu2021-03-02
| | | | | | This allows end users to be able to choose to not install any docs. Signed-off-by: Ming Liu <liu.ming50@gmail.com>
* bump go module to v3Valentin Rothberg2021-02-22
| | | | | | | | | We missed bumping the go module, so let's do it now :) * Automated go code with github.com/sirkon/go-imports-rename * Manually via `vgrep podman/v2` the rest Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* [NO TESTS NEEDED] Update linterMatej Vasek2021-02-10
| | | | Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Makefile: make bin/* real targets!Ed Santiago2021-02-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backstory: every time you run 'make podman' or even just 'make', you get a full recompile. This is sub-ideal. Cause: I don't really know. It looks complicated. #5017 introduced a .PHONY for bin/podman, for reasons not explained in the PR. Then, much later, #5880 well- intentionedly but improperly tweaked the 'find' command used in defining SOURCES, adding a -prune but without the corresponding and required -print. Let's just say, it was an unfortunate cascade of events. This PR fixes the SOURCES definition and removes the highly-undesired .PHONY from podman & podman-remote, making it so you can type 'make' and, oh joy, not build anything if it's current. The way 'make' is supposed to work. Why fix this now? Because my PR (#9209) was failing in CI, in the Validate step: Can't exec "./bin/podman": No such file or directory at hack/xref-helpmsgs-manpages line 223. It failed even on Re-run, and only passed once I force-pushed the PR (with no changes, just a new commit SHA). I have no idea why bin/podman wasn't built, and I have zero interest in pursuing that right now, but the proper solution is to add bin/podman as a Makefile dependency for that particular test. So done. While I'm at it, fix what is pretty clearly a typo in a .PHONY And, finally, fix a go-md2man warning introduced in #9189 [NO TESTS NEEDED] Signed-off-by: Ed Santiago <santiago@redhat.com>
* Makefile: refactor ginkgo * ginkgo-remoteEd Santiago2021-02-02
| | | | | | | | | | | | | | | | | | | | Create a new common target, ginkgo-run, with the main ginkgo test incantation; ginkgo and ginkgo-remote now invoke that, with a clearer distinction between their arguments. Reason for this: 'make remoteintegration' was not generating ginkgo logs in CI. Reason: '-debug' option was missing from the ginkgo incantation. Reason: impossibility of maintaining duplicate long-complicated lines. This PR distills the common aspects, making the differences clearer between local & remote. IMPORTANT NOTE: '-nodes 3' was also missing from remote ginkgo. This PR adds it. If this was intentionally omitted, please let me know (with reasons) so I can refactor that too. [NO TESTS NEEDED] Signed-off-by: Ed Santiago <santiago@redhat.com>
* New 'make completions' targetEd Santiago2021-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generate shell completion files for podman and podman-remote and for all known shells (bash, fish, zsh). Fix Readme file in completions dir: it suggested running 'make completion', singular; no such target existed. Since the install target is plural, I choose to make the new target plural also. This is intended for use in CI some day, in a check such as: (in contrib/cirrus/runner.sh): make completions SUGGESTION="run 'make completions' and commit all changes" ./hack/tree_status.sh The goal would be to make sure that any new podman subcommands or flags are accompanied by their corresponding shell helpers on all commits. IT IS NOT POSSIBLE TO ENFORCE THIS NOW. As I understand it, Cobra is slow to incorporate community PRs, so the podman team has chosen to sneak in completion files generated by an unreleased and un-vendored version of Cobra. Running 'make completions' right now would clobber those and result in a diminished user experience. I'm submitting this anyway as a stepping-stone toward that future day when we can create such a CI hook. [NO TESTS NEEDED] Signed-off-by: Ed Santiago <santiago@redhat.com>
* Cirrus: add bindings checksValentin Rothberg2021-01-20
| | | | | | | | | 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-20
| | | | | | | | 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-20
| | | | | | | | | | | | | | | | | | 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>
* Merge pull request #9031 from vrothberg/revert-ginkgoOpenShift Merge Robot2021-01-20
|\ | | | | Revert "ginkgo: install on demand via `go get -u`"
| * Revert "ginkgo: install on demand via `go get -u`"Valentin Rothberg2021-01-20
| | | | | | | | | | | | | | | | | | | | This reverts commit de05e5816869073600ae8e851093b4b9a9d7fab0. Running `go get -u` will change the local Go module causing CI to fail as the local git tree is being changed. Reverting the change for now until we have a better idea. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | Merge pull request #8911 from edsantiago/prs_must_include_testsOpenShift Merge Robot2021-01-20
|\ \ | |/ |/| CI: smoke test: insist on adding tests on PRs
| * CI: smoke test: insist on adding tests on PRsEd Santiago2021-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On each PR (with a few exceptions), check the list of git-touched files, and abort if no tests are added. Include instructions on how to bypass the check if tests really aren't needed. Include a hardcoded exception list for PRs that only touch a well-known subset of "safe" files: docs, .cirrus.yml, vendor, version, hack, contrib, or *.md. This list is likely to need tuning over time. Add a test suite, but not one recognized by the new script (because it's a "*.t" file), so: [NO TESTS NEEDED] Signed-off-by: Ed Santiago <santiago@redhat.com>
* | [CI:DOCS] fix go-md2man HTMLSpan warningsEd Santiago2021-01-19
|/ | | | | | | | | | | | | | | | | I'm tired of seeing these every time I run 'make': WARNING: go-md2man does not handle node type HTMLSpan Cause: left-angle-brackets ( < ) in document source Solution: 1) backquote-escape those that need to be shown, usually ones referring to an argument or email address; or 2) Actual HTML ( <sup> and <a> ) which are meant to be shown in generated HTML docs but can't be shown in man pages, we filter out via a sed expression. Signed-off-by: Ed Santiago <santiago@redhat.com>
* ginkgo: install on demand via `go get -u`Valentin Rothberg2021-01-19
| | | | | | | | | | | Install ginkgo on demand via `go get -u` rather than keeping a copy it's entire source code in the vendor dirctory. The main motivation for that is to make `golangci-lint` happy which is continuously throwing up on the import of a program (i.e., ginkgo). The linter is broken and stupid as it ignores flags to ignore dirs and ignores build tags (at least some linters do) which is blocking us from updating to newer versions. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* simplify bindings generationValentin Rothberg2021-01-17
| | | | | | | | | | 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-17
| | | | | | | | 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>