OSMO_RELEASE_REPOS: add simtrace2, osmo-remsim

Adjust to simtrace2's directory structure, which does not have a
configure.ac in the main directory like all other repositories. The main
directory has a regular Makefile without autotools, only the host dir
has a configure.ac file (and only in newer versions). Deal with this by
creating two tarballs, one with "git archive" for the whole directory,
and one for the host dir only with the usual "autoreconf -fi;
./configure; make dist-bzip2". The latter one has the files created by
autoreconf ("configure" script and others).

simtrace2
├── simtrace2-0.1.tar.bz2
├── simtrace2-0.2.tar.bz2
├── simtrace2-0.3.tar.bz2
├── simtrace2-0.4.tar.bz2
├── simtrace2-0.5.1.tar.bz2
├── simtrace2-0.5.tar.bz2
├── simtrace2-0.6.1.tar.bz2
├── simtrace2-0.6.tar.bz2
├── simtrace2-0.7.0.tar.bz2
├── simtrace2-0.7.1.tar.bz2
├── simtrace2-0.8.0.tar.bz2
├── simtrace2-0.8.1.tar.bz2
├── simtrace2-host-0.6.1.tar.bz2
├── simtrace2-host-0.6.tar.bz2
├── simtrace2-host-0.7.0.tar.bz2
├── simtrace2-host-0.7.1.tar.bz2
├── simtrace2-host-0.8.0.tar.bz2
└── simtrace2-host-0.8.1.tar.bz2

Closes: OS#5347
Change-Id: Ib52a23a2a7d6ea64bfa539b1d026f035fdb3af57
This commit is contained in:
Oliver Smith 2021-12-09 17:18:56 +01:00 committed by osmith
parent 8a32ca538a
commit 0221a0b7f3
2 changed files with 74 additions and 8 deletions

View File

@ -29,6 +29,7 @@ OSMO_RELEASE_REPOS="
osmo-msc
osmo-pcap
osmo-pcu
osmo-remsim
osmo-sgsn
osmo-sip-connector
osmo-smlc
@ -36,6 +37,7 @@ OSMO_RELEASE_REPOS="
osmo-trx
osmo-uecups
osmocom-bb
simtrace2
"
OSMO_BRANCH_DOCKER_PLAYGROUND="${OSMO_BRANCH_DOCKER_PLAYGROUND:-master}"

View File

@ -128,7 +128,7 @@ remove_temp_dir() {
}
# Clone an Osmocom repository to $TEMP/repos/$repo, clean it, checkout a tag.
# $1: Osmocom repository
# $1: Osmocom repository (may end in subdir, e.g. simtrace2/host)
# $2: tag (optional, default: master)
prepare_repo() {
local repo="$1"
@ -144,13 +144,21 @@ prepare_repo() {
git checkout -q "$tag"
}
# Get the desired tarball name, replace / with - in $1.
# $1: Osmocom repository (may end in subdir, e.g. simtrace2/host)
# $2: tag
tarball_name() {
echo "$(echo "$repo" | tr / -)-$tag.tar.bz2"
}
# Checkout a given tag and build a release tarball.
# $1: Osmocom repository
# $1: Osmocom repository (may end in subdir, e.g. simtrace2/host)
# $2: tag
create_tarball() {
local repo="$1"
local tag="$2"
local tarball="$repo-$tag.tar.bz2"
local tarball="$(tarball_name "$repo" "$tag")"
# Be verbose during the tarball build and preparation. Everything else is not verbose, so we can generate an
# easy to read overview of tarballs that are already built or are ignored.
@ -174,15 +182,72 @@ create_tarball() {
fi
}
# Create a release tarball with "git archive" for non-autotools projects.
# $1: Osmocom repository
# $2: tag
create_tarball_git() {
local repo="$1"
local tag="$2"
local tarball="$(tarball_name "$repo" "$tag")"
set -x
cd "$TEMP/repos/$repo"
git archive \
-o "$tarball" \
"$tag"
set +x
}
# Move a generated release tarball to the output dir.
# $1: Osmocom repository (may end in subdir, e.g. simtrace2/host)
# $2: tag
move_tarball() {
local repo="$1"
local tag="$2"
local tarball="$repo-$tag.tar.bz2"
local tarball="$(tarball_name "$repo" "$tag")"
local repo_dir="$(echo "$repo" | cut -d / -f 1)"
cd "$TEMP/repos/$repo"
mkdir -p "$OUTPUT/$repo"
mv "$tarball" "$OUTPUT/$repo/$tarball"
mkdir -p "$OUTPUT/$repo_dir"
mv "$tarball" "$OUTPUT/$repo_dir/$tarball"
}
# Check if a git tag has a specific file
# $1: Osmocom repository
# $2: tag
# $3: file
tag_has_file() {
local repo="$1"
local tag="$2"
local file="$3"
git -C "$TEMP/repos/$repo" show "$tag:$file" >/dev/null 2>&1
}
# Create and move tarballs for Osmocom repositories.
# $1: Osmocom repository
# $2: tag
create_move_tarball() {
local repo="$1"
local tag="$2"
case "$repo" in
simtrace2)
if tag_has_file "$repo" "$tag" host/configure.ac; then
create_tarball "$repo/host" "$tag"
move_tarball "$repo/host" "$tag"
fi
create_tarball_git "$repo" "$tag"
move_tarball "$repo" "$tag"
;;
*)
create_tarball "$repo" "$tag"
move_tarball "$repo" "$tag"
;;
esac
}
remove_temp_dir
@ -211,8 +276,7 @@ for repo in $OSMO_RELEASE_REPOS; do
fi
echo " $tarball (creating)"
create_tarball "$repo" "$tag"
move_tarball "$repo" "$tag"
create_move_tarball "$repo" "$tag"
done
done