version 1.0.0, 2014-06-16 : Initial version
How to get the upstream version from debian/rules file
This tells you how to get the package's upstream from the debian/rules file of a package.If you’re using cdbs, it’s simple: use the "$(DEB_UPSTREAM_VERSION)" variable
defined in the /usr/share/cdbs/1/rules/buildvars.mk
file.
If you’re using debhelper, you can use /usr/share/dpkg/pkg-info.mk
file from
dpkg-dev which defines this "$(DEB_UPSTREAM_VERSION)" variable.
This last file defines some usefull variables as:
* DEB_SOURCE: the source package name
* DEB_VERSION: the full version of the package (epoch + upstream vers.
revision)
* DEB_VERSION_EPOCH_UPSTREAM: the package’s version without the Debian revision
* DEB_VERSION_UPSTREAM_REVISION: the package’s version without the Debian epoch
* DEB_VERSION_UPSTREAM: the package’s upstream version
* DEB_DISTRIBUTION: the distribution(s) listed in the current entry of
debian/changelog
If you still want to redefine it. You can use, for example:
DEB_UPSTREAM_VERSION ?= $(shell dpkg-parsechangelog \ | sed -rne 's/^Version: ([0-9.]+)[-+].*$$/\1/p')
But if you want, you can still use exactly the same way as cdbs did (also added some other usefull variables that were defined in this makefile):
# Gets the name of the source package DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':')) # Gets the full version of the source package including debian version DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ') DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-) # Gets only the upstream version of the package DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//') # Prints the version line if the package is native. Nothing for a non native package DEB_ISNATIVE := $(shell dpkg-parsechangelog | egrep '^Version:' | perl -ne 'print if not /^Version:\s*.*-/;')