diff options
author | Oliver Smith <osmith@sysmocom.de> | 2021-01-14 11:48:56 +0100 |
---|---|---|
committer | Oliver Smith <osmith@sysmocom.de> | 2021-01-15 16:51:22 +0100 |
commit | e738afafa3d4524e82edf36613714d1691451d7a (patch) | |
tree | adc651351ac69f5a62a336e6bff2db1da7bec6e9 /scripts | |
parent | d92c2d362d5c5c7dcf9822ca99b8e84b57a81614 (diff) |
OBS: osmo_obs_add_rpm_spec: depend on conflict pkg
Related: OS#4733
Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/common-obs.sh | 41 | ||||
-rwxr-xr-x | scripts/osmocom-latest-packages.sh | 4 | ||||
-rwxr-xr-x | scripts/osmocom-nightly-packages.sh | 2 |
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 } |