aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2021-02-15 12:34:49 +0100
committerOliver Smith <osmith@sysmocom.de>2021-02-16 11:37:24 +0100
commitbc2d794da8ee7b36bce25d4335cb9f47fa0a9f5d (patch)
treedbd20c1c55875975646f7934fae0ccbab25aa94f
parente99cb64e2e75c467b59ade0e9547d7e8a2d1cf41 (diff)
OBS: nightly: use epoch from debian/changelog
If epoch is used in debian/changelog, prepend it to the version from git-version-gen. Also set the epoch in the spec file. For example, the version in debian/changelog may be 1:0.0.1. The epoch is 1, therefore a 0.0.1.18.b5d18 version from git-version-gen would turn into 1:0.0.1.18.b5d18. Setting epoch=1 is needed for osmo-gbproxy, so apt on debian 10 with the nightly Osmocom repository enabled does not try to install osmo-gbproxy 1.3.0 from the debian repositories instead of 0.0.1 from the Omsocom repository. Related: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version Related: OS#4992 Change-Id: I3d63f040058340bdcf9075c03387798c5314be03
-rw-r--r--scripts/common-obs.sh17
-rwxr-xr-xscripts/osmocom-nightly-packages.sh12
2 files changed, 24 insertions, 5 deletions
diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh
index 366d72e..edd48df 100644
--- a/scripts/common-obs.sh
+++ b/scripts/common-obs.sh
@@ -113,6 +113,7 @@ osmo_obs_add_rpm_spec() {
local spec="$oscdir/$name.spec"
local tarball
local version
+ local epoch
if [ -z "$spec_in" ]; then
echo "WARNING: RPM spec missing: $name.spec.in"
@@ -123,9 +124,19 @@ osmo_obs_add_rpm_spec() {
osmo_obs_add_depend_rpm "$spec" "$name" "$depend" "$dependver"
- # Set version
- version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)"
- sed -i "s/^Version:.*/Version: $version/g" "$spec"
+ # Set version and epoch from "Version: [EPOCH:]VERSION" in .dsc
+ version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2- | xargs)"
+ case $version in
+ *:*)
+ epoch=$(echo "$version" | cut -d : -f 1)
+ version=$(echo "$version" | cut -d : -f 2)
+ ;;
+ esac
+ if [ -n "$epoch" ]; then
+ sed -i "s/^Version:.*/Version: $version\nEpoch: $epoch/g" "$spec"
+ else
+ sed -i "s/^Version:.*/Version: $version/g" "$spec"
+ fi
# Set source file
tarball="$(ls -1 "${name}_"*".tar."*)"
diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh
index d8338ae..c90ed2f 100755
--- a/scripts/osmocom-nightly-packages.sh
+++ b/scripts/osmocom-nightly-packages.sh
@@ -70,9 +70,17 @@ get_commit_version() {
version=$(echo "$version" | sed 's/-/./g' )
# deb version
+ deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,')
if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then
- version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,')
- version="$version.$DT"
+ version="$deb_version.$DT"
+ else
+ # add epoch from debian/changelog
+ case $deb_version in
+ *:*)
+ epoch=$(echo "$deb_version" | cut -d : -f 1)
+ version=$epoch:$version
+ ;;
+ esac
fi
echo -n "$version"