aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2021-01-14 11:48:56 +0100
committerOliver Smith <osmith@sysmocom.de>2021-01-15 16:51:22 +0100
commite738afafa3d4524e82edf36613714d1691451d7a (patch)
treeadc651351ac69f5a62a336e6bff2db1da7bec6e9
parentd92c2d362d5c5c7dcf9822ca99b8e84b57a81614 (diff)
OBS: osmo_obs_add_rpm_spec: depend on conflict pkg
-rw-r--r--scripts/common-obs.sh41
-rwxr-xr-xscripts/osmocom-latest-packages.sh4
-rwxr-xr-xscripts/osmocom-nightly-packages.sh2
3 files changed, 42 insertions, 5 deletions
diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh
index 0655370..adfa076 100644
--- a/scripts/common-obs.sh
+++ b/scripts/common-obs.sh
@@ -37,14 +37,49 @@ osmo_obs_add_depend_deb() {
git -C "$(dirname "$d_control")" commit -m "auto-commit: debian: depend on $depend" .
}
-# Copy a project's rpm spec.in file to the osc package dir, set the version/source and 'osc add' it
+# Add dependency to all (sub)packages in rpm spec file
+# $1: path to rpm spec file
+# $2: package name (e.g. "libosmocore")
+# $3: dependency package name (e.g. "osmocom-nightly")
+osmo_obs_add_depend_rpm() {
+ local spec="$1"
+ local pkgname="$2"
+ local depend="$3"
+
+ if [ "$pkgname" = "$depend" ]; then
+ echo "NOTE: skipping dependency on itself: $depend"
+ return
+ fi
+
+ ( while IFS= read -r line; do
+ echo "$line"
+
+ case "$line" in
+ # Main package
+ "Name:"*)
+ echo "Requires: $depend"
+ ;;
+ # Subpackages
+ "%package"*)
+ echo "Requires: $depend"
+ ;;
+ esac
+ done < "$spec" ) > "$spec.new"
+
+ mv "$spec.new" "$spec"
+}
+
+# Copy a project's rpm spec.in file to the osc package dir, set the version/source, depend on the conflicting dummy
+# package and 'osc add' it
# $1: oscdir (path to checked out OSC package)
# $2: repodir (path to git repository)
-# $3: name (e.g. libosmocore)
+# $3: package name (e.g. "libosmocore")
+# $4: dependency package name (e.g. "osmocom-nightly")
osmo_obs_add_rpm_spec() {
local oscdir="$1"
local repodir="$2"
local name="$3"
+ local depend="$4"
local spec_in="$(find "$repodir" -name "$name.spec.in")"
local spec="$oscdir/$name.spec"
local tarball
@@ -57,6 +92,8 @@ osmo_obs_add_rpm_spec() {
cp "$spec_in" "$spec"
+ osmo_obs_add_depend_rpm "$spec" "$name" "$depend"
+
# Set version
version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)"
sed -i "s/^Version:.*/Version: $version/g" "$spec"
diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh
index 2689e35..94fcf7a 100755
--- a/scripts/osmocom-latest-packages.sh
+++ b/scripts/osmocom-latest-packages.sh
@@ -96,7 +96,7 @@ build() {
mv "$output/"*.tar* "$TOP/$PROJ/$project/"
cd "$TOP/$PROJ"
osc add "$project"
- osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$output" "$project"
+ osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$output" "$project" "osmocom-latest"
else
cd "$TOP/$PROJ/$project"
@@ -107,7 +107,7 @@ build() {
mv "$output/"*.dsc .
mv "$output/"*.tar* .
osc add ./*
- osmo_obs_add_rpm_spec "$PWD" "$output" "$project"
+ osmo_obs_add_rpm_spec "$PWD" "$output" "$project" "osmocom-latest"
fi
fi
cd "$TOP"
diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh
index 3f95d17..ea181ab 100755
--- a/scripts/osmocom-nightly-packages.sh
+++ b/scripts/osmocom-nightly-packages.sh
@@ -152,7 +152,7 @@ build() {
cd "$oscdir"
osc add -- *.tar* *.dsc
- osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name"
+ osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" "osmocom-$FEED"
osc ci -m "Snapshot $name $DT" --noservice
}