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: Ibe2b7193c29bd504e2f3db79fda59ccca1efdb1c
Signed-off-by: Alon Bar-Lev <[email protected]>
---
M Makefile
M packaging/ovirt-engine-dwh.spec.in
A version.mak
3 files changed, 62 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-dwh refs/changes/42/12742/1

diff --git a/Makefile b/Makefile
index 036d72c..298b5f8 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-dwh.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-dwh
+DISPLAY_VERSION=$(PACKAGE_VERSION)
+
 MVN=mvn
 EXTRA_BUILD_FLAGS=
 BUILD_FLAGS=
-PACKAGE_NAME=ovirt-engine-dwh
 OVIRT_DWH_NAME=$(PACKAGE_NAME)
 PREFIX=/usr/local
 BIN_DIR=$(PREFIX)/bin
@@ -38,19 +47,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-dwh.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=1
-
 SPEC_FILE_IN=packaging/ovirt-engine-dwh.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
@@ -93,16 +94,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-dwh.spec.in 
b/packaging/ovirt-engine-dwh.spec.in
index fc27f63..543425d 100644
--- a/packaging/ovirt-engine-dwh.spec.in
+++ b/packaging/ovirt-engine-dwh.spec.in
@@ -9,6 +9,8 @@
 %global make_common_opts \\\
         -j1 \\\
         PACKAGE_NAME=%{name} \\\
+        RPM_VERSION=%{version} \\\
+        RPM_RELEASE=%{release} \\\
         OVIRT_DWH_NAME=%{dwh_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-dwh
-Version: @PACKAGE_VERSION@
-Release: @PACKAGE_RELEASE@%{?dist}
+Name: @PACKAGE_NAME@
+Version: @RPM_VERSION@
+Release: @RPM_RELEASE@%{?release_suffix}%{dist}
 License: GPLv2
 Summary: %{product_name}
 Group: Virtualization/Management
 URL: http://www.ovirt.org
 BuildArch: noarch
-Source: %{name}-%{version}.tar.gz
+Source: @PACKAGE_NAME@-@[email protected]
 
 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/12742
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibe2b7193c29bd504e2f3db79fda59ccca1efdb1c
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-dwh
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to