diff options
author | Petr Spacek <pspacek@redhat.com> | 2016-11-07 16:46:37 +0100 |
---|---|---|
committer | Martin Babinsky <mbabinsk@redhat.com> | 2016-11-09 13:08:32 +0100 |
commit | fee9bbd85afeac3593abd791de2d002bed300c8e (patch) | |
tree | e2db8d619dae9f61d517dba74e4819acec3bb79d | |
parent | 75a944e980c64061e51f4ec7215033c118f39863 (diff) | |
download | freeipa-fee9bbd85afeac3593abd791de2d002bed300c8e.tar.gz freeipa-fee9bbd85afeac3593abd791de2d002bed300c8e.tar.xz freeipa-fee9bbd85afeac3593abd791de2d002bed300c8e.zip |
Build: add make rpms target and convenience script makerpms.sh
make rpms and ./makerpms.sh will produce the same RPM packages. The
advantage of makerpms.sh is that it will take care of initial
autoreconf & configure phases as needed.
rpm-build-4.13.0-1.fc24.x86_64 broke parallel build of RPMs.
If you get error
INTERNAL: Exiting with 1 jobserver tokens available; should be 8!
undefine the MAKEFLAGS variable and do not specify neither -j nor -l.
https://fedorahosted.org/freeipa/ticket/6418
Reviewed-By: Martin Basti <mbasti@redhat.com>
Reviewed-By: Christian Heimes <cheimes@redhat.com>
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | BUILD.txt | 10 | ||||
-rw-r--r-- | Makefile.am | 20 | ||||
-rwxr-xr-x | makerpms.sh | 10 |
4 files changed, 39 insertions, 3 deletions
diff --git a/.travis.yml b/.travis.yml index d95eb25db..54b9ce6de 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,4 +13,4 @@ script: - > docker run -v $PWD:/freeipa -w /freeipa martbab/freeipa-fedora-builder:${TRAVIS_BRANCH}-latest - /bin/bash -c 'dnf builddep -y -D "with_lint 1" --spec freeipa.spec.in && make rpms' + /bin/bash -c 'dnf builddep -y -D "with_lint 1" --spec freeipa.spec.in && ./makerpms.sh' @@ -32,14 +32,20 @@ Building -------- From the root of the source tree run: -$ make rpms +$ ./makerpms.sh The resulting rpm packages are in dist/rpms: # yum --nogpgcheck localinstall dist/rpms/* # ipa-server-install -It may be possible to do a simple make all install but this has not been +You might tweak the build and run steps separatelly: +$ autoreconf -i +$ ./configure +$ make +$ make install + +It may be possible to do a simple make install but this has not been well-tested. Additional work is done in pre/post install scripts in the ipa spec file. diff --git a/Makefile.am b/Makefile.am index 79d607d88..eed7d9ffd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,3 +24,23 @@ EXTRA_DIST = .mailmap \ doc \ pylintrc \ pytest.ini + +# convenience targets for RPM build +RPMBUILD ?= $(abs_builddir)/rpmbuild +TARBALL = $(PACKAGE)-$(VERSION).tar.gz +rpmroot: + mkdir -p $(RPMBUILD)/BUILD + mkdir -p $(RPMBUILD)/RPMS + mkdir -p $(RPMBUILD)/SOURCES + mkdir -p $(RPMBUILD)/SPECS + mkdir -p $(RPMBUILD)/SRPMS + +rpmdistdir: + mkdir -p $(top_builddir)/dist/rpms + mkdir -p $(top_builddir)/dist/srpms + +rpms: dist-gzip rpmroot rpmdistdir + cp $(top_builddir)/$(TARBALL) $(RPMBUILD)/SOURCES/ + rpmbuild --define "_topdir $(RPMBUILD)" -ba $(top_builddir)/$(PACKAGE).spec + cp $(RPMBUILD)/RPMS/*/*.rpm $(top_builddir)/dist/rpms/ + cp $(RPMBUILD)/SRPMS/*.src.rpm $(top_builddir)/dist/srpms/ diff --git a/makerpms.sh b/makerpms.sh new file mode 100755 index 000000000..775d18f67 --- /dev/null +++ b/makerpms.sh @@ -0,0 +1,10 @@ +#!/usr/bin/bash +set -o errexit + +pushd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +test ! -x "configure" && autoreconf -i +test ! -f "Makefile" && ./configure "$@" +make rpms + +popd |