Instead of each binary launcher having to check if there is a lib/
directory and then setting a LD_LIBRARY_PATH we can use an RPATH and
know these binaries pick-up the right libraries.
This requires I6e4ad2e3855af7bcefc22d4190cc4e6f58581857.
Change-Id: If771767dd82662e13b6b10ee7a8b8d0c84dcbdb1
Since osmo-sgsn f4b2c4ca42cc530c38c9ac6f275e4d7da9315fa2, it depends on
libosmo-gsup-client available in osmo-hlr.
Change-Id: I6aa997ff2092f9ddf2ac475fd094803be9063980
Inroduce a way to not take a 2x performance hit when testing. It
is of importance if we run with hundreds of BTSes and 10k+ subscribers.
In the absence of using getops or shflags use an environment for it.
Change-Id: I540ba1c35e8fb72abcee0d86e0bdc1136b47345c
Instead of cloning osmocom-bb three times this will allow us to
re-use the repository. Simply change the directory, set the new
origin and fetch.
Change-Id: I63f103b2f70559e969e8c66477ab9ee7f2886832
We want to write repo name in there, not $dep which actually doesn't
exist in local context of have_repo function. In most cases it's
actually the same because in almost all cases $dep is passed as $1 to
have_repo and thus is the same as local $repo. But in a few recipes
which don't use build_repo directly but instead use have_repo and build
manually, $dep may not point to $repo. That's the case for osmocom-bb
for instance. As a result, "libosmocore" is printed twice, were second
word should be "osmocom-bb".
Change-Id: I7a7db7cf4cc020295d216c60d6dc688f110916dc
To build osmo-nitb we need to clone "openbsc" and then enter the
"openbsc" sub-directory. For building "mobile" and "virt_phy" of
OsmocomBB we will need to do something similar. Instead of added
more hardcoded paths, add a variant that allows to specify the
source directory.
Change-Id: I67fbd54296f2c68316bf8e89cfeb37d147193d53
In osmo-mgw.git 31b4729f2731c747b8b33c4646dd5ade2ace29bc, osmo-bsc_mgcp
was dropped and the one from openbsc.git must be used.
Change-Id: Ib1c46baf4d36ab18f8064a2234a0ba28a1e7d2c2
Otherwise since we install without root perissins to a local directory,
systemd files will fail to be installed to regular systemd location
/lib/systemd/system/).
Change-Id: I20a285e4e92fec7990770568e8d5dc117d6bf477
As it's quite complex to build osmocom firmware nowadays (a specific old
release of gcc and binutils are required to build it), instead download
the already built binaries from OBS.
Change-Id: I2571268d91e2430a270e51438608e7dbd121e76d
This is a preparation for inclusion of osmocom-bb build job, which
installs binaries such as osmocon in sbin.
Change-Id: I562721af82e481e926ee65dbcd9dcc5b55057ae8
This way scripts making use only of have_repo (to have build specific
insturctions) can still benefit from that code.
Change-Id: I03149942ac1d279a15c71df3eb880c331c8fc155
Don't enable it for binaries built with sysmocom's cross-toolchain since
it doesn't contain required libasan.
Also, don't enable it on openbsc since we don't have an enable-sanitize
flag there.
Change-Id: Ibef6c2fc497bce0d799116a854a48872f9ca16d7
Since osmo-bts ec33b0397f5d71248c5834513d4be7b9b0e46366, it doesn't
require openbsc anymore to build.
Change-Id: I8a1918971388afad41308629c1851614d1381f25
Recently a new dependency on libgnutls was added to have a fallback for
kernels prior to 3.17 in which getrandom syscall fails, see libosmocore
ed029dfab959bca74bd43d86922727c2047eeb4d.
Since sysmobts has a kernel newer than 3.7 for a long time now, but we
are still running a 201310 image (and sdk) on them which doesn't contain
gnutls, let's disable it at configure time to fix the build against the
current SDK.
Change-Id: Iaa300c0eda2cf857f8c2915c6491efe583a12874
osmo-sgsn change-id I91a126952ae75ae9ba1f42aac4d26413384bba5d and commit
a3b73e917b653d13d027cff2c95a56bbc1264446 has broken compatibility with
openggsn.git, by requiring current osmo-ggsn version (1.0.0).
Fix build fallout: use osmo-ggsn instead of openggsn.git.
Change-Id: I5161983ef625465e21b95578ab5648ecc73d6069
This is a first step to add support for osmo-bts-octpy to
osmo-gsm-tester.
There's no point in building separate insts for different osmo-bts
variants which run on the main unit and which come from the same git
repository, this we make the osmo-bts-trx one generic to handle all
variants which fall into the description above.
Tested locally on my laptop that it builds susccessfully.
Once this patch is applied, jenkins jobs need to be adjusted:
- RnD: osmo-gsm-tester_manual-build-all
- Prod: osmo-gsm-tester_build-osmo-bts-trx (and rename it)
Change-Id: Ib8814e4ce49596b586990f20d7d625a719852e90
The jenkins scripts are run by sh, which does not support the {a,b} syntax
shell glob. As a result, old build artifacts pile up in the workspaces.
Use two separate lines to remove .tgz and .md5.
Change-Id: Ib7e5995aa6914e34f8b7bbb8a8ed46ff9230a913
Drop the second 'rm -f' from the rm shell command (typo).
Remove all artifacts matching *.build-*.{tgz,md5} because if a job changes the
name of its artifact, the previous artifacts would remain.
(I hit this with the new scripts being originally wrong and all producing
'osmo-msc.*' artifacts, and those stuck around in the workspace even after the
name was fixed.)
Change-Id: I00d246226f4c723696bb737ed707cfd0e4c33714
The idea is to build each binary separately: even though osmo-msc requires
libosmo-sccp, which already includes the osmo-stp binary, we still want
osmo-stp to be built from a separate script. The reason: to track down
regressions, we can change the versions each binary is built from separately.
The additional build effort and jenkins script multitude is acceptable.
Change-Id: I194ad5169dbe013c8e1cf9d631033cb2576744dd
Recent change Ib1a00b2149453fedf9ece0460dd4d6e83f774d45 drops binaries from a
build artifact by leaving only explicitly requested ones. This adds a check
that the requested ones indeed exist.
Change-Id: Iceddeee6aebb1cdb54d7304495c3e332390261db
Each of the jenkins-build-* scripts intends to build a specific set of
programs. While compiling dependencies, other programs may end up in
$prefix/bin. Drop those other binaries to reduce potential confusion.
Add arguments to the create_bin_tgz function: callers need to list exactly the
$prefix/bin/* binaries that should be tar'd. All others are first removed from
the prefix.
Adjust existing scripts to provide such binary names.
Change-Id: Ib1a00b2149453fedf9ece0460dd4d6e83f774d45
In the future, some environments/products may come with a trx interface
pre-installed. Start work to easily disable launching it.
Change-Id: I556c3e2ba16753393c7e70800c533a18122daeaa
The --disable-doxygen was recently added to libosmocore and
libosmo-netif. No need to manually remove documentation anymore.
Change-Id: I3ca3dd1c115fc6784e4dc26a5ff5bf35d65b4e22
The docs are actually not removed because the shell takes
{libosmocore,libosmo-sccp} as a string literal if found inside quote
marks, see [1] for more information.
[1] https://unix.stackexchange.com/questions/67757/wildcards-inside-quotes
Change-Id: Ida8941525db2d6a80539ffda29fb4fa74dbb1e16
Since 81c0bcab068174036f6897e69311f413d94c74d4 was merged, it is not necessary
to build the neels/aoip branch anymore. Other patches on that branch are not
necessary either.
Change-Id: I850e0dd2fc61d59d56c0dd69ee00b6e19685fb95
Recent commit 851802b927 introduces a build
branch, which works fine, but only on the first run. A second run in the same
repos can't delete the branch git is currently on.
I've had enough of git being impossibly difficult in UI to simply checkout a
hash or a branch now. Completely wipe out the git repository and clone a fresh
one every time.
Unfortunately, 'git clone -b' doesn't allow passing a commit hash, so we still
need to do a clone-then-checkout dance. At least now we know it will work the
same on every run.
Change-Id: I6aca4c53a796312248a189b815dfc1198a173ed9
If we rm -rf * and then checkout a branch, the log prints the entire file tree
as deleted. Instead, rm just before the git reset --hard, which avoids the
extra output.
Change-Id: Ib5b28a82f05d941eae8f3a2f468ef1e9d67e6180
It's hard to allow both branch names and git hashes. For a branch, we want to
prepend 'origin' to use the upstream branch. For a git hash, we don't.
We so far prepend 'origin/' if the current branch name doesn't resolve, but
that's not enough. If a local 'master' branch exists, we would stay on that
branch instead of origin/master.
Rather, prepend 'origin/' if 'origin/$branch' exists. Git hashes should not
exist as 'origin/123abc...' and used as-is, where branches from origin should
be updated to upstream by prepending 'origin/'.
Also create a local branch to build. Always force-remove the branch and
re-create from the origin/name or git hash. Keep the reset --hard for paranoia.
Change-Id: I2e610b357f8559c6b6ffb544eb0a952f04dd9f70
The binary tars are fairly large, and usually one wants to investigate the run
dir logs without any need to download the binaries. Archive the binary tars
separately from the run logs.
Change-Id: I23e6df0d30fc9ea7c5b48bb2364be075d910bfcd
Have all complexity in one common shell script, greatly simplify the individual
scripts.
This allows to provide a specific branch or git hash to build instead of
current master. Some scripts allowed to provide branch names before, this now
also allows using git hashes directly.
Environment variables can be used to override the git hash/branch to use for
specific repositories.
Motivation for this patch: we need this to investigate failure causes more
easily.
Change-Id: I5ac2f90d006a1b2f6c246976346d852a70c89089
Completely discard prefix/share/doc in builds. There was still ~1.2Mb from
libosmo-netif around.
Exception: osmo-hlr installs a bootstrap sql in prefix/share/doc/osmo-hlr,
so leave that script as-is.
Change-Id: I7f3f3cfed0f56099bdff93b11a0009c1caef67c8
Previously, the idea was to run a test remotely via SSH. This has moved to
operating an actual jenkins build slave on the main unit, which simplifies
things.
Also, previously (in the old osmo-gsm-tester), there was a daemon running,
accepting new trials by a directory appearing. Now, we're directly launching a
test run, which simplifies things.
Remove all SSH stuff from the "run" script.
Compose the checksums of the built binary-tars in the actual build jobs. In the
"run" job, only combine those checksums to one file. (Otherwise we would
compose the sums after transmitting over the network to the build slave.)
Instead of storing trials in a common location on the system, just keep one
trial in the workspace per run. After the run, tar up the trial dir to enable
easy archiving of build results.
The common location on the system might still be a good idea if we're one day
going to move to concurrent runs with scheduling of hardware resources, but so
far we're having simple one-shot runs.
Change-Id: I129f5189ce2bebd761bc752b158fb8778b31010e
The jenkins jobs used to have multiple source repositories configured, but it
is really cumbersome to add all the SCM links to a jenkins job.
Instead, clone the git sources from the script, as we also do in various other
contrib/ scripts.
This partly duplicates the osmo-ci scripts, but since this code is much more
intended to run on other peoples' jenkins instances, rather keep the osmo-ci
dependency out of here.
Change-Id: Ie05cb9cd2bd884f72cbdbcc96d9c4389ffca7357
In the example config and the jenkins scripts, use paths below common parent
dir /var/tmp/osmo-gsm-tester.
1. example: put the state dir in /var/tmp/osmo-gsm-tester/state, instead of in
the config dir like /etc/osmo-gsm-tester.
2. contrib scripts: place trials in /var/tmp/osmo-gsm-tester/trials, and to
move into place atomically, use /var/tmp/osmo-gsm-tester/.prep-trials as
temporary location.
The OsmoGSMTester manual is currently also being updated to setup these paths,
with /var/tmp/osmo-gsm-tester owned by a common group and having group-sticky
as well has group-writable access rules.
Change-Id: I2961e9d1d9b14859b886058b54ffcb36f4d88bc1
trials-cleanup.sh was still using the old 'SEEN' marker and thus didn't work.
In trial.py, make sure that *every* trial that is run is marked as taken, not
only those discovered by Trial.next().
Change-Id: I8aa6b2eece5d43266a7c84e6b2974b8fe7f3cda1
The original osmo-gsm-tester was an internal development at sysmocom, mostly by
D. Laszlo Sitzer <dlsitzer@sysmocom.de>, of which this public osmo-gsm-tester
is a refactoring / rewrite.
This imports an early state of the refactoring and is not functional yet. Bits
from the earlier osmo-gsm-tester will be added as needed. The earlier commit
history is not imported.