diff options
author | Sorin Sbarnea <ssbarnea@redhat.com> | 2019-11-29 10:00:13 +0000 |
---|---|---|
committer | Sorin Sbarnea <ssbarnea@redhat.com> | 2019-12-05 10:34:10 +0000 |
commit | a03c3a9318926c1b03d30a6aba6d10d8ba471475 (patch) | |
tree | 3e41508a8075ccd1dca97cb7ad89abe4fa9df87b | |
parent | bc40282aec08b71719c55dc9416f776868ef9f62 (diff) | |
download | podman-a03c3a9318926c1b03d30a6aba6d10d8ba471475.tar.gz podman-a03c3a9318926c1b03d30a6aba6d10d8ba471475.tar.bz2 podman-a03c3a9318926c1b03d30a6aba6d10d8ba471475.zip |
Enable multi-platform rpm building
- make: fix python detection for multiple interpreters
- make: create generic `package` and `package-install` targets
- build_rpm.sh: move package installation into package-install
- build_rpm.sh: fix dnf/yum detection
- build_rpm.sh: install md2man rpm only on platfroms where is available
- build_rpm.sh: temporary skip packaging docs and debug on rhel-8
- docs: `make package-install`
This change is validated by new CI jobs run by rdoproject. See link
below for result.
Depends-On: https://review.rdoproject.org/r/#/c/23943/
Signed-off-by: Sorin Sbarnea <ssbarnea@redhat.com>
-rw-r--r-- | Makefile | 15 | ||||
-rwxr-xr-x | contrib/build_rpm.sh | 32 | ||||
-rw-r--r-- | install.md | 4 |
3 files changed, 29 insertions, 22 deletions
@@ -32,7 +32,9 @@ BUILDTAGS ?= \ exclude_graphdriver_devicemapper \ seccomp \ varlink -PYTHON ?= $(shell command -v python python3) +PYTHON ?= $(shell command -v python python3|head -n1) +PKG_MANAGER ?= $(shell command -v dnf yum|head -n1) + GO_BUILD=$(GO) build # Go module support: set `-mod=vendor` to use the vendored sources @@ -543,12 +545,19 @@ vendor-in-container: install.libseccomp.sudo \ lint \ pause \ + package \ + package-install \ shell \ uninstall \ validate \ validate.completions \ vendor -rpm: - @echo "Building rpms ..." +package: ## Build rpm packages + ## TODO(ssbarnea): make version number predictable, it should not change + ## on each execution, producing duplicates. + rm -f ~/rpmbuild/RPMS/x86_64/* ~/rpmbuild/RPMS/noarch/* ./contrib/build_rpm.sh + +package-install: package ## Install rpm packages + sudo ${PKG_MANAGER} -y install --allowerasing ${HOME}/rpmbuild/RPMS/*/*.rpm diff --git a/contrib/build_rpm.sh b/contrib/build_rpm.sh index ceb4ca176..e41763fa7 100755 --- a/contrib/build_rpm.sh +++ b/contrib/build_rpm.sh @@ -6,7 +6,7 @@ pkg_manager=`command -v dnf yum | head -n1` echo "Package manager binary: $pkg_manager" -if [ $pkg_manager == "*yum" ]; then +if [[ $pkg_manager == *yum ]]; then echo "[virt7-container-common-candidate] name=virt7-container-common-candidate baseurl=https://cbs.centos.org/repos/virt7-container-common-candidate/x86_64/os/ @@ -28,7 +28,7 @@ declare -a PKGS=(device-mapper-devel \ go-compilers-golang-compiler \ ) -if [ $pkg_manager == "*dnf" ]; then +if [[ $pkg_manager == *dnf ]]; then PKGS+=(python3-devel \ python3-varlink \ ) @@ -36,26 +36,22 @@ if [ $pkg_manager == "*dnf" ]; then if ! grep -i -q 'Red Hat\|CentOS' /etc/redhat-release; then PKGS+=(btrfs-progs-devel) fi - -fi - -# golang-github-cpuguy83-go-md2man is needed for building man pages -# It is not available by default in CentOS 8 making it optional -if [ -z "$extra_arg" ]; then - PKGS+=(golang-github-cpuguy83-go-md2man) + # disable doc until go-md2man rpm becomes available + # disable debug to avoid error: Empty %files file ~/rpmbuild/BUILD/libpod-.../debugsourcefiles.list + export extra_arg="--without doc --without debug" +else + if ! grep -i -q 'Red Hat\|CentOS' /etc/redhat-release; then + PKGS+=(golang-github-cpuguy83-go-md2man) + fi fi echo ${PKGS[*]} sudo $pkg_manager install -y ${PKGS[*]} make -f .copr/Makefile -rpmbuild --rebuild ${extra_arg:-""} podman-*.src.rpm - -# Test to make sure the install of the binary works -sudo $pkg_manager -y install ~/rpmbuild/RPMS/x86_64/podman-*.x86_64.rpm - - -# If we built python/varlink packages, we should test their installs too -if [ $pkg_manager == "*dnf" ]; then - sudo $pkg_manager -y install ~/rpmbuild/RPMS/noarch/python* +# workaround for https://github.com/containers/libpod/issues/4627 +if [ -d ~/rpmbuild/BUILD ]; then + chmod -R +w ~/rpmbuild/BUILD fi + +rpmbuild --rebuild ${extra_arg:-} podman-*.src.rpm diff --git a/install.md b/install.md index bd3732083..218994587 100644 --- a/install.md +++ b/install.md @@ -95,7 +95,9 @@ system](https://bodhi.fedoraproject.org/updates/?packages=podman). **Required** -Fedora, CentOS, RHEL, and related distributions: +Fedora, CentOS, RHEL, and related distributions you should try to run +`make package-install` which will install dependencies, build the source, +produce rpms for the current platform and install them in the end. ```bash sudo yum install -y \ |