Alon Bar-Lev has uploaded a new change for review. Change subject: packaging: open source like versioning scheme ......................................................................
packaging: open source like versioning scheme Add version.mak with version information. Major and minor components are taken from pom.xml. Fix is taken from version.mak. Milestone is a string representation of the milestone example for ordering: - master - alpha - master - beta - master - beta2 - master - rc - master - rc2 - master - <none> RPM_RELEASE is a rpm specific release string that should be manually modified after milestone change. Example of sequence: # master FIX_RELEASE=0 MILESTONE=master RPM_RELEASE=0.0.$(MILESTONE).$(shell date -u +%Y%m%d%H%M%S) # beta FIX_RELEASE=0 MILESTONE=beta RPM_RELEASE=0.1 # post beta FIX_RELEASE=0 MILESTONE=master RPM_RELEASE=0.2.$(MILESTONE).$(shell date -u +%Y%m%d%H%M%S) # release FIX_RELEASE=0 MILESTONE= RPM_RELEASE=1 # post release FIX_RELEASE=1 MILESTONE=master RPM_RELEASE=0.0.$(MILESTONE).$(shell date -u +%Y%m%d%H%M%S) Change-Id: Ia6b234ddd317728a77f7e912db270fa8e4f42cf8 Signed-off-by: Alon Bar-Lev <[email protected]> --- M Makefile M packaging/ovirt-engine-reports.spec.in A version.mak 3 files changed, 62 insertions(+), 18 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-reports refs/changes/41/12741/1 diff --git a/Makefile b/Makefile index 60afc30..36b028b 100644 --- a/Makefile +++ b/Makefile @@ -21,10 +21,19 @@ # information on the Apache Software Foundation, please see # <http://www.apache.org/>. +include version.mak +# major, minor, seq +POM_VERSION:=$(shell cat pom.xml | grep '<ovirt-reports.version>' | sed -e 's/.*>\(.*\)<.*/\1/' -e 's/-SNAPSHOT//') +# major, minor from pom and fix +APP_VERSION=$(shell echo $(POM_VERSION) | sed 's/\([^.]*\.[^.]\)\..*/\1/').$(FIX_RELEASE) +RPM_VERSION=$(APP_VERSION) +PACKAGE_VERSION=$(APP_VERSION)$(if $(MILESTONE),_$(MILESTONE)) +PACKAGE_NAME=ovirt-engine-reports +DISPLAY_VERSION=$(PACKAGE_VERSION) + MVN=mvn EXTRA_BUILD_FLAGS= BUILD_FLAGS= -PACKAGE_NAME=ovirt-engine-reports OVIRT_REPORTS_NAME=$(PACKAGE_NAME) PREFIX=/usr/local BIN_DIR=$(PREFIX)/bin @@ -39,19 +48,11 @@ PYTHON=python PYTHON_DIR:=$(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib as f;print(f())") -# RPM version -APP_VERSION:=$(shell cat pom.xml | grep '<ovirt-reports.version>' | awk -F\> '{print $$2}' | awk -F\< '{print $$1}') -RPM_VERSION:=$(shell echo $(APP_VERSION) | sed "s/-/_/") - -# Release Version; used to create y in <x.x.x-y> numbering. -# Should be used to create releases. -RPM_RELEASE_VERSION=2 - SPEC_FILE_IN=packaging/ovirt-engine-reports.spec.in SPEC_FILE=$(PACKAGE_NAME).spec OUTPUT_RPMBUILD=$(shell pwd -P)/tmp.rpmbuild OUTPUT_DIR=output -TARBALL=$(PACKAGE_NAME)-$(RPM_VERSION).tar.gz +TARBALL=$(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz SRPM=$(OUTPUT_DIR)/$(PACKAGE_NAME)-$(RPM_VERSION)*.src.rpm ARCH=noarch BUILD_FILE=tmp.built @@ -97,16 +98,22 @@ install_files \ $(NULL) -tarball: - sed -e 's/@PACKAGE_VERSION@/$(RPM_VERSION)/g' \ - -e 's/@PACKAGE_RELEASE@/$(RPM_RELEASE_VERSION)/g' $(SPEC_FILE_IN) > $(SPEC_FILE) +# legacy +tarball: dist +dist: + sed \ + -e 's/@PACKAGE_NAME@/$(PACKAGE_NAME)/g' \ + -e 's/@PACKAGE_VERSION@/$(PACKAGE_VERSION)/g' \ + -e 's/@RPM_VERSION@/$(RPM_VERSION)/g' \ + -e 's/@RPM_RELEASE@/$(RPM_RELEASE)/g' \ + $(SPEC_FILE_IN) > $(SPEC_FILE) git ls-files | tar --files-from /proc/self/fd/0 -czf $(TARBALL) $(SPEC_FILE) rm -f $(SPEC_FILE) @echo @echo You can use $(RPMBUILD) -tb $(TARBALL) to produce rpms @echo -srpm: tarball +srpm: dist rm -rf $(OUTPUT_RPMBUILD) mkdir -p $(OUTPUT_RPMBUILD)/{SPECS,RPMS,SRPMS,SOURCES,BUILD,BUILDROOT} mkdir -p $(OUTPUT_DIR) diff --git a/packaging/ovirt-engine-reports.spec.in b/packaging/ovirt-engine-reports.spec.in index 91791de..f676ef2 100644 --- a/packaging/ovirt-engine-reports.spec.in +++ b/packaging/ovirt-engine-reports.spec.in @@ -9,6 +9,8 @@ %global make_common_opts \\\ -j1 \\\ PACKAGE_NAME=%{name} \\\ + RPM_VERSION=%{version} \\\ + RPM_RELEASE=%{release} \\\ OVIRT_REPORTS_NAME=%{reports_name} \\\ PREFIX=%{_prefix} \\\ SYSCONF_DIR=%{_sysconfdir} \\\ @@ -22,15 +24,15 @@ %{?BUILD_FLAGS:BUILD_FLAGS="%{BUILD_FLAGS}"} \\\ %{?EXTRA_BUILD_FLAGS:EXTRA_BUILD_FLAGS="%{EXTRA_BUILD_FLAGS}"} -Name: ovirt-engine-reports -Version: @PACKAGE_VERSION@ -Release: @PACKAGE_RELEASE@%{dist} +Name: @PACKAGE_NAME@ +Version: @RPM_VERSION@ +Release: @RPM_RELEASE@%{?release_suffix}%{dist} License: Commercial Summary: %{product_name} Group: Virtualization/Management URL: http://www.ovirt.org BuildArch: noarch -Source: %{name}-%{version}.tar.gz +Source: @PACKAGE_NAME@-@[email protected] BuildRequires: maven BuildRequires: jpackage-utils BuildRequires: make diff --git a/version.mak b/version.mak new file mode 100644 index 0000000..858fa35 --- /dev/null +++ b/version.mak @@ -0,0 +1,35 @@ +# Version Information + +# Major and minor are taken from pom.xml + +# Fix release is manually specified, +# increment after releasing/branching +FIX_RELEASE=0 + +# Milestone is manually specified, +# example for ordering: +# - master +# - alpha +# - master +# - beta +# - master +# - beta2 +# - master +# - rc +# - master +# - rc2 +# - master +# - <none> +# +MILESTONE=master + +# RPM release is manually specified, +# For pre-release: +# RPM_RELEASE=0.N.$(MILESTONE).$(shell date -u +%Y%m%d%H%M%S) +# While N is incremented when milestone is changed. +# +# For release: +# RPM_RELEASE=N +# while N is incremented each re-release +# +RPM_RELEASE=0.2.$(MILESTONE).$(shell date -u +%Y%m%d%H%M%S) -- To view, visit http://gerrit.ovirt.org/12741 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia6b234ddd317728a77f7e912db270fa8e4f42cf8 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-reports Gerrit-Branch: master Gerrit-Owner: Alon Bar-Lev <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
