Skip to content

Changes

Triggered by Gerrit: https://gerrit.osmocom.org/
Started 5 days 22 hr ago
Queued 9.1 sec
jobs/gerrit-verifications: add libosmo-asn1-tcap

Related: OS#6849
Change-Id: Ib67057469e3848fe72b5a03147c3f6d4b62c33c2
Oliver Smith at
OBS: build libosmo-asn1-tcap

Change-Id: I1b2f0a3ced424977f44f97ca4695132d4f57768c
Oliver Smith at
jobs/master-builds: add libosmo-asn1-tcap

Related: OS#6849
Change-Id: If83114f1dfadc2c649ffa9ccb411dbe20c174a30
Oliver Smith at
OBS: disable_manuals: adjust for osmocom-bb

With the related change, we build manauals in the debian package of
osmocom-bb. The osmocom:nightly:asan feed gets built with manuals
disabled. Fix that building the osmocom-bb package in the asan feed
currently fails with:

[  160s] /usr/bin/make -C doc/manuals
[  160s] make[2]: Entering directory '/usr/src/packages/BUILD/doc/manuals'
[  160s] OSMO_GSM_MANUALS_DIR: /usr/src/packages/osmo-gsm-manuals (fallback)
[  160s] ERROR: OSMO_GSM_MANUALS_DIR does not exist!
[  160s] Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR.
[  160s] Makefile:6: /build/Makefile.asciidoc.inc: No such file or directory
[  160s] make[2]: *** No rule to make target '/build/Makefile.asciidoc.inc'.  Stop.

Related: osmocom-bb Ib04160287c98814a6f2ae104197abda563bdd5b9
Change-Id: I88f3291acbf067ab8779b298e828e18eb828a511
Oliver Smith at
OBS: stop building limesuite

Building limesuite is not needed anymore, as it is available at least
since debian 10 in the debian and ubuntu repositories. We have been
building the upstream version without changes.

Related: OS#6855
Change-Id: Id79ccf873fce8b3b4f61bd73ab89d6a95bd105c1
Oliver Smith at
testenv-coredump-helper: remove

After looking at this again, it makes more sense to keep
/proc/sys/kernel/core_pattern as "core" on build4 and build5, which we
use for jenkins jobs instead of installing systemd's coredumpctl and
making all coredumps go through that. The motivation for using
coredumpctl in testenv was that lots of developers may have it already
installed (though I'm not sure about that anymore), and that it gives a
nice API for retrieving the related executable name to a coredump
instead of having to parse the output of e.g. "file".

Using coredumpctl had the disadvantage that coredumps for all other
jobs, such as the master-builds are also caught by that and cannot be
easily placed in the workspace directory. I have started implementing
this by extending testenv-coredump-helper to communicate through a
socket and mounting that socket inside docker containers running
contrib/jenkins.sh (host -> lxc -> docker), and it works, but this
complexity is not useful here.

Instead the related patch will make testenv pick the core files when
coredumpctl is not available, and read the path from "file", making
testenv-coredump-helper obsolete.

Related: osmo-ttcn3-hacks Ia765b01432e4cb4cd36c45de874b966e3ebf55bc
Change-Id: I2959c6e6d97d5691ee2a4ae5d49a351eb5811f10
Oliver Smith at
scripts/wrapper_core_bt_on_error: new script

Add a wrapper script that runs a given program, and checks the exit
code. If it is not 0, and a core file appears, then load the coredump in
gdb and display its backtrace.

Change-Id: I9673abf3ae3b154505ea09237d37d7da4bf5d57f
Oliver Smith at
jobs/master,gerrit: use wrapper_core_bt_on_error

When the exit code isn't 0, find coredumps and display their backtraces.

Change-Id: Idc893969b158e11d5ae17d0c0a05b52e662f8929
Oliver Smith at
jobs/master,gerrit: set CFLAGS=-g

Generate debug symbols, so backtraces from coredumps become more useful.

Change-Id: Ieff8670e376f140a672a800961be753028cf7b6f
Oliver Smith at
jobs/master-builds: rtl-sdr: add jenkins-notifications

Send mails about failures to the jenkins-notifications mailing list, so
they don't go unnoticed.

Change-Id: I9b783181a467a76bc2d11149baf433581c91bd06
Oliver Smith at
scripts/osmo-ci-docker-rebuild: switch to trixie

Depends: docker-playground I1c0efb85324b70b6370ea94f74f440e639442da5
Change-Id: I1497f14e57f9d7b0867368b923c8f8919c72cd76
Oliver Smith at
jobs/ttcn3-testsuites-testenv: hlr: add -c osmo_hlr

Now that it is also possible to run the HLR tests against PyHSS, add
"-c osmo_hlr" to run the existing ttcn3-hlr-test jobs against osmo-hlr.
I plan to add jobs for PyHSS later in a separate patch.

Related: OS#6862
Depends: osmo-ttcn3-hacks I7a7e709ec02a9bf44343fff4df2861dfe4e1a761
Change-Id: Ic7acd3ca654580aa8e5a52f162f5c9042fc7d09f
Oliver Smith at
jobs/osmocom-obs-sync: add Raspbian:13

Change-Id: Ib308d12cae2def42c3f1892f606e15c8aebfe140
Oliver Smith at
contrib/obs-mirror: add Raspbian_13

Change-Id: I73e0dbb820935be2f2754a2e2b3e6b3bff409552
Oliver Smith at
scripts/reminder-extend-obs-key: fix typo

One year is 365(.25) days, not 356. Fix that the alarm would have gone
off 9 days later than expected.

Change-Id: I8b46b6b18ce1dea01c5c6c0beb4f10e924f8e4bc
Oliver Smith at
jobs/ttcn3-testsuites-testenv: mme: use -c all

Adjust to MME tests now having two configurations in osmo-ttcn3-hacks:

[testenv] Found multiple testenv.cfg files, use one of:
[testenv]  -c emergency
[testenv]  -c generic
[testenv] You can also select all of them (-c all) or use the * character as wildcard.

Related: osmo-ttcn3-hacks I3d84486dd3826d0f60a3c06693118e36b01ecd2b
Change-Id: Id2296c7cfe1660cc443f08efea209f8bf61aa8b6
Oliver Smith at
OBS: let osmocom-keyring not depend on other pgks

The osmocom-latest, osmocom-nightly etc. meta-packages depend on the
osmocom-keyring package. Fix that the osmocom-keyring package was also
depending on these meta packages.

This fixes that when uninstalling all osmocom:latest packages by
removing the osmocom-latest meta package, the osmocom-keyring package
would also get removed. This is undesirable for switching between latest
and nightly, as the osmocom-keyring package must remain installed to be
able to install new packages from the repository (as it has the repo
key).

Change-Id: If8fbbc40ee45e603de281003db2f61dcb7603e7b
Oliver Smith at
jobs/osmocom-obs: build binary packages earlier

We have recently noticed that with current settings the nightly arm
packages have still not finished the next morning. Schedule nightly OBS
packages 2-3 hours earlier to avoid this.

Change-Id: Ief55cab9308503d582fcfe0c602c75bb48be7dae
Oliver Smith at
OBS: lib/srcpkg: format with ruff

Change-Id: I2cfb8fc5bd78449e62526758ddb9263cf3d8ced1
Oliver Smith at
OBS: gerrit_binpkgs: print verbose output

Print all shell commands and their output executed by build_srcpkgs.py
and build_binpkgs.py, instead of only printing them on error. This is
useful to see the output of the scripts downloading dependencies when
building sourcepackages.

Change-Id: Ie1dbde603351b1d26b66f3834b645b1f1f5bbfc8
Oliver Smith at
OBS: build_srcpkg: install rebar3 without apt

Avoid pulling in 600 MB of GUI dependencies.

Related: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1083096
Change-Id: I9a51df03ac173118c35d501bd21c6d023a436844
Oliver Smith at
OBS: set default distro to debian 13

Change the distribution that is used to build the source packages to
debian 13 so we are on the latest one again.

Change-Id: I7c1dcca90e46645a497fd547ce1243b414c53201
Oliver Smith at
OBS: support building pyhss

Build source packages for the python project pyhss similar to how we do
it for erlang projects: by downloading all dependencies ahead of time
and vendoring them in the source package.

Related: SYS#6819
Change-Id: I321090e811f7c5c142bf973c616d83cd5b2219ab
Oliver Smith at
OBS: configure Osmocom pyhss fork

Add the Osmocom fork of PyHSS to scripts/obs/lib/config.py, so the
Osmocom_OBS_* jobs build source packages for it and push them to our OBS
where binary packages get built. We need to use a fork for now, as the
official repository can't run outside of a git tree yet and doesn't have
debian packaging. These changes are being upstreamed, the goal is that
we don't need to use our fork in the long run.

Related: SYS#6819
Change-Id: I8fc7ef9dc242248770711da2893492fae8a84522
Oliver Smith at
jobs/ttcn3: add ttcn3-hlr-test-pyhss

Change-Id: I608f3d7ade5098e7a8f7808ae2b57955c1354c85
Oliver Smith at
OBS: fix building pyosmocom for debian 12

Related: pyosmocom I8416234ea02f337fabd075cc345af964c1b71adf
Related: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license-and-license-files
Change-Id: Ia8ef3a0301aeaad4691c197ed780e86b497def4a
Oliver Smith at
OBS: sync_obs_projects: fix for OSC 1.12.1

Since the Docker image used by sync_obs_projects was changed from Debian
12 to 13, several "osc" commands have in their output:

  fatal: not a git repository (or any of the parent directories): .git

Work around this by switching to the temp directory and initializing a
git repository there, with an "origin" remote that osc also expects to
exist.

Fixes: 6ac535b8 ("OBS: set default distro to debian 13")
Change-Id: I1236a065e2998fb46343df3968f7bb4dabeea55a
Oliver Smith at
jobs/ttcn3: add -ogs-latest jobs

Be consistent with the Osmocom jobs where we have -latest too.

Add no mail notifications to open5gs maintainers, because if tests start
failing for latest then it usually means a regression in our testsuite
code.

Change-Id: I28c3b7130661c177271d7341f759a05c94d9607f
Oliver Smith at
jobs/ttcn3: add ttcn3-hss-test-pyhss

Depends: I224eb4aa5fec3dc97f6fa956a4a86f206c8b12b7
Related: OS#6862
Change-Id: I517d36d890690e606050158221d2df9028745dae
Oliver Smith at
jobs/ttcn3: adjust to testenv config rename

Replace "-c osmo_{hlr,ggsn}…" with "-c osmo".

Depends: osmo-ttcn3-hacks I7a64c946ece8ad5bfbf4f7d613634138af6db566
Change-Id: I3766d76a5a6fa8a8de00137fe33e0e747337c66e
Oliver Smith at
jobs: libosmo-sigtran: add support for TCAP loadsharing

TCAP loadsharing requires an additional library libosmo-asn1-tcap.
./contrib/jenkins.sh is using the env TCAP={0,1} to select this feature.

Unclear if we should also put it into our default build.

Change-Id: I47c193d8f5ce695fdc6c368eee94d21c5a4b2c6e
Oliver Smith at
lint: run clang-format only on specific projects

For most C projects, running checkpatch works best with the coding style
we use. Run clang-format only in specific projects that seem to be fully
formatted with that tool.

Related: https://gerrit.osmocom.org/c/osmo-mgw/+/41529
Related: https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/39470
Related: https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/39471
Change-Id: I2c07b30f9254b54027b721b77ab6f35249b5e2de
Oliver Smith at
ansible: jenkins: mount tracefs via fstab

Allow using bpftrace inside the jenkins lxc containers by making
/sys/kernel/tracing available through /etc/fstab.

Related: OS#6794
Change-Id: I568e3635fcc33040036fd19e9226b413db0d3ef3
Oliver Smith at
jobs/ttcn3-testsuites: set RUN_BPFTRACE=1

Allow better analysis of instabilities with the ttcn3-bts-test jobs in
jenkins by running bpftrace scripts along with osmo-bts.

Only the ttcn3-bts-test scripts make use of the RUN_BPFTRACE environment
variable, so this does not affect how any other testsuite runs.

See the related docker-playground commit for details.

Related: OS#6794
Related: docker-playground I5c22cdbb08fe797be936ca174f65ade626fa4895
Change-Id: Iaa960772fb0b09722594747006890e5e43752d43
Oliver Smith at
contrib/known_hosts: update gerrit ssh key

Related: OS#6920
Change-Id: I66e5d96dcb34d33a21f5a70899fba9a75e6127ed
Oliver Smith at
scripts/manuals: use debian-trixie-build

Fix that the Osmocom-release-manuals job was still using
debian-bookworm-build instead of debian-trixie-build to build the
manuals. We use the latter for building manuals in master-builds and
gerrit-verifications.

Without this patch building pyosmocom manuals failed with the following,
as python3-typing-extensions in debian bookworm is at version 4.4.0 but
typing_extensions >= 4.6.0 is needed for TypeAliasType. Trixie has
version 4.13.2.

AttributeError: module 'typing_extensions' has no attribute 'TypeAliasType'. Did you mean: 'TypeAlias'?

Fixes: OS#6916
Change-Id: I6ac302c8ea5836c5096f0d8ab36260cc6f7c11d9
Oliver Smith at
jobs/ttcn3-testsuites: disable bpftrace

The bpftrace process doesn't stop properly with some scripts. Disable it
for now, we can still enable it in copies of the job.

Related: OS#6925
Change-Id: I78c18c2e18d66408ac7de7cd24fafdf3f7e5202d
Oliver Smith at
ansible: allow jenkins users to set rtprio 30

Create an /etc/security/limits.d file to allow the jenkins user to set
rtprio 30. This is required for running the ttcn3 bts testsuite through
testenv, as (unlike the previous approach with docker containers)
osmo-bts-trx runs without root rights there.

Change-Id: Id79851b3e3a47d19773aa9bba134b9bf99dbecbb
Oliver Smith at
jobs/dahdi: fix git clones not getting updated

The refspec line has caused the git clones of the linux kernel to not
get updated.

Fixes: OS#6932
Change-Id: Id3b35ac10cf4fcb244c572a319433379e2e59c22
Oliver Smith at
jobs/gerrit: debian10 for osmo-gbproxy + deps

Related: SYS#7859
Change-Id: I7ad3412d945de8c29b6ab62fcadfd2f231c19581
Oliver Smith at
repo-install-test: test osmo-pfcp-tool in latest

osmo-pfcp-tool is available in latest for quite some time now, so adjust
the check.

Related: osmo-upf Icf4bb566d9b627ead370174e92629a9fccde755e
Change-Id: Icca5a31270bca03596be8ed0104bfb7143fb1ede
Oliver Smith at
repo-install-test: debian 10: osmo-gbproxy only

The debian 10 repository has been officially disabled:
https://osmocom.org/news/308

However we just re-enabled a subset of the packages, osmo-gbproxy +
dependencies, because currently they are relevant for a customer. Adjust
the repo-install-test to deal with this subset of packages for debian 10
to fix that it is currently failing.

I have verified that repo-install-test works with this change for debian
10, 11 and 12. It currently doesn't run for debian 13 yet (OS#6934).

Related: SYS#7859
Change-Id: Id8d8cda8e399719f06aeb1843eb8f5ab12a90e8f
Oliver Smith at
Osmocom_OBS_sync: fix failing on new scmsync tag

The openSUSE OBS instance has added an scmsync tag to their debian 13
meta config:

  <scmsync>https://src.opensuse.org/obs/debian#13</scmsync>

This feature is not supported by the stable OBS version yet (they run
current master), and so the sync fails with:

  project validation error: 6:0: ERROR: Element project has extra content: scmsync

Remove the tag to fix this.

Related: https://build.opensuse.org/projects/Debian:13/meta
Change-Id: Ia2d2ce3a2eeda9a0ed7ce7c7de54293081b44f4e
Oliver Smith at
scripts/kernel/linux-shallow-clone: new script

Add a script that maintains a linux repository in one place on jenkins
nodes, so we need less git clones from git.kernel.org and less disk
space. All jobs that need a kernel tree can now clone the relevant
branch directly from the jenkins node.

Follow up patches will add a jenkins job that runs the script daily and
adjust the existing jobs to make use of this instead of doing their own
clones.

Currently this script produces a 396M bare git repository.

Related: OS#6938
Change-Id: Id3aadb46813047ecac3b80868192809b272dba0e
Oliver Smith at
jobs/linux-shallow-clone: new jenkins job

Related: OS#6938
Change-Id: Ia58cdc82a655d4cc772a84adb675e98961bf86c5
Oliver Smith at
jobs/master-builds-dahdi: use linux-shallow-clone

Related: OS#6938
Change-Id: Iea0af6259bd481c946ff72d6552b65668fd809ca
Oliver Smith at
jobs/gerrit-verifications-dahdi: use linux-shallow-clone

Related: OS#6938
Change-Id: Ie8d9be886cc1d089e015f03bcedf0307f4f312e4
Oliver Smith at
jobs/build-kernels-testenv: use linux-shallow-clone

Related: OS#6938
Change-Id: I8cb2acfaf585b9f92347a4562525a66ed03b0236
Oliver Smith at
octsim_osmo-ccid-firmware: add myself to the recipients

Change-Id: I2b96ad0d34e4344ccb0351737df31b08cb65e116
lynxis at
lint/checkpatch: fix false FUNCTION_ARGUMENTS

Fix that the linter complains about:
  WARNING:FUNCTION_ARGUMENTS: function definition argument 'void' should also have an identifier name

For functions with attributes at the end, e.g.:
  void Fallback_Handler(void) __attribute__((weak, alias("Dummy_Handler")));

Related: https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42224/comment/7c5b3be0_6ff61090/
Change-Id: I139bdabb38bd0c9ceda99921ebdc0196850c2a53
Oliver Smith at
lint/checkpatch: support multiple configs

Run checkpatch with any .checkpatch*.conf found in the project dir. This
is in preparation for having two .checkpatch.conf files in osmo-trx, in
order to use different linting rules for C++ code:
* .checkpatch.c.conf
* .checkpatch.c++.conf

Related: osmo-trx I0df5b6f2f0bf1469a80a1f5859809c30f523f683
Change-Id: Ia2e75d9783382cefc3900a4ab51a5a919a2cbbbc
Oliver Smith at
repo-install-test: don't use deprecated apt-key

apt-key has been removed in debian 13, use "[signed-by=…]" instead.

Change-Id: I7b8b9336b16cceb7ece317c59de2f55ed404392e
Oliver Smith at
repo-install-test: fix test_conflict for debian 13

Two changes are necessary to make this test work with debian 13:

* Installing libosmocore from osmocom-latest, then switching to
  osmocom-nightly and attempting to install another package is not
  enough anymore to trigger a conflict. apt is now able to resolve this
  by uninstalling the osmocom-latest package and upgrading libosmocore
  to the nightly version. Force the conflict by explicitly marking
  osmocom-latest (osmocom-$FEED) as installed and for hold.

* The apt conflict message has been reworked, so the string to look for
  needs to be adjusted.

Change-Id: Ibdcd583e48b97ced11ad4939974dccea3e139480
Oliver Smith at
repo-install-test: ignore sdcc-dbgsym

Fix for this error with debian 13:

  The following packages have unmet dependencies:
   sdcc-dbgsym : Depends: sdcc (= 4.2.0~osmocom3.113.9edd) but 4.5.0+dfsg-1 is to be installed
  E: Unable to correct problems, you have held broken packages.
  E: The following information from --solver 3.0 may provide additional context:
     Unable to satisfy dependencies. Reached two conflicting decisions:
     1. sdcc:amd64=4.2.0~osmocom3.113.9edd is not selected for install
     2. sdcc:amd64=4.2.0~osmocom3.113.9edd is selected for install because:
        1. sdcc-dbgsym:amd64=4.2.0~osmocom3.113.9edd is selected for install
        2. sdcc-dbgsym:amd64 Depends sdcc (= 4.2.0~osmocom3.113.9edd)

Change-Id: Ibb12118853f354d177cb94df63b60dd3bd9dfcb7
Oliver Smith at
repo-install-test: ignore charon-systemd

This package from strongswan-epdg causes the SSH connection to QEMU to
break when installed in debian 13. Don't install it. Use the wildcard,
because there is also a debug symbols package that pulls in
charon-systemd.

Change-Id: Ic641d5361c51df147a8cef5d49eb1e0f07b72e87
Oliver Smith at
repo-install-test: ignore pyhss

PyHSS listens on the same port as OsmoHLR, which causes the test to fail
with debian 13 because OsmoHLR can't start up properly. PyHSS wasn't
built for earlier debian versions in the Osmocom binary repositories.

Change-Id: I796e85a212dff94fbf9b8ef563eba47418c221cc
Oliver Smith at
repo-install-test: run for debian 13 too

This passes for latest, and should pass for nightly once this patch is
merged: https://gerrit.osmocom.org/c/osmo-sgsn/+/42277

Change-Id: I1db9de8c740d5167e4813ece36f422b27aed5111
Oliver Smith at
jobs/gerrit-lint: use debian 13

Use debian 13, so we have a newer clang-format version (14 -> 19).

Change-Id: I747dce009bb2e91f16a15e79dbe274c162f64813
Oliver Smith at
lint/lint_diff: print clang-format version

Change-Id: I076a518dccdb241a57628c385a60bffe30298a10
Oliver Smith at
ansible: osmocom-obs-worker: remove lxc<5

I have applied a patch in our OBS server, which adjusts the version
check so we can build packages with newer LXC versions and sent it
upstream: https://github.com/openSUSE/obs-build/pull/1127

Remove the lxc version constraint (which finally allowed upgrading to a
newer opensuse version).

Related: OS#6975
Change-Id: I1e690bf91c4bebd1d46b51ec490daa339ea1107f
laforge at
ansible: osmocom-obs-worker: add mount-securityfs.service

Fix errors in lxc-start related to not having securityfs available:

[   14s] booting lxc...
[   14s] lxc-start: obsbuild:root_6: lsm/apparmor.c: apparmor_prepare: 1132 If you really want to start this container, set
[   14s] lxc-start: obsbuild:root_6: lsm/apparmor.c: apparmor_prepare: 1133 lxc.apparmor.allow_incomplete = 1
[   14s] lxc-start: obsbuild:root_6: lsm/apparmor.c: apparmor_prepare: 1134 in your container configuration file
[   14s] lxc-start: obsbuild:root_6: start.c: lxc_init: 879 Failed to initialize LSM
[   14s] lxc-start: obsbuild:root_6: start.c: __lxc_start: 2008 Failed to initialize container "obsbuild:root_6"
[   14s] lxc-start: obsbuild:root_6: tools/lxc_start.c: main: 306 The container failed to start
[   14s] lxc-start: obsbuild:root_6: tools/lxc_start.c: main: 312 Additional information can be obtained by setting the --logfile and --logpriority options
[   14s] '/var/cache/obs/worker/root_6/.build/_exitcode' not found or symlink

Usually systemd would mount the securityfs automatically as I understand
it, but it doesn't work anymore without this service in our use case
where osmocom-obs-worker runs inside an LXC itself. This is probably
related to upgrading the opensuse version for the osmocom-obs-worker
containers.

Change-Id: I0c708815440c67340531548361deb326c864aefe
Oliver Smith at
ansible/hosts: update lx2-1-obs-aarch64-1 ip

This machine is not available under the listed IPv6 anymore, but can be
reached through the VPN. Adjust the IP.

Change-Id: I77f72d7ad72d9b3ac745756cc5a082bd39dabdc5
Oliver Smith at
jobs: add build/manuals JOB_TYPEs for osmo-s1gw

Change-Id: Id62d806a648c8f3480cb4f162adf65f77c552848
Depends: osmo-s1gw.git I54f0774575534519a2c40e0588f136c8a5e706f8
Related: OS#6671
Vadim Yanitskiy at
manuals: ignore old osmo-s1gw tags

Logic for building the osmo-s1gw-usermanual.pdf has just been added to
master. The Osmocom-release-manuals job tries to build old manuals as
well because now the osmo-s1gw directory exists at
https://ftp.osmocom.org/docs. Ignore old tags, as we can't build
usermanuals for those.

Change-Id: I94f19db2861f16c45894573f52f30bfbf5a7725e
Oliver Smith at
manuals: osmo-s1gw: adjust build_publish_manuals

Use the proper command to build osmo-s1gw manuals, so it doesn't fail
with:
  + su build -c autoreconf -fi
  autoreconf: error: 'configure.ac' is required

Change-Id: I096fd34fc5819becbc3a08a2dc4065d4913bbc1b
Oliver Smith at
lint/checkpatch: ignore SSCANF_TO_KSTRTO

This kernel-specific warning doesn't make sense when linting our code so
disable it.

Change-Id: If096c600331d7ad5786395c5c41a6742da44a3e8
Oliver Smith at
OBS: pyhss_download_deps: add python 3.14

Download binary package dependencies for python 3.14 too, so we can
build the package for Ubuntu 26.04.

Related: OS#6983
Related: https://gitea.osmocom.org/osmocom/pyhss/commit/2125f52c5eb1b3e66b1ebe2febadb7c886536681
Change-Id: Ic23d52c081f68fb8d6f7d9e370883236ca9bf35f
Oliver Smith at
OBS: nightly: add ".0" after versions on git tags

Fix that with the current logic of generating version numbers for
nightly, a version done on a tag can be higher than the following
version:

on tag:                    1.14.0.202603231800
on tag (with this patch):  1.14.0.0.202603231800
next commit after the tag: 1.14.0.1.abcd.202603241800

Fixes: OS#6981
Change-Id: Id140d8ea76bf98357711587a9909d54097250fd6
Oliver Smith at
lint/lint_diff: test_ruff: add pyosmocom

Ruff is very fast and detects some additional things that pylint (which
is already used with pyosmocom) does not.

Depends: pyosmocom I2ca3135f1ce38dcc06dc95c38f4b6258a60121cd
Change-Id: I2fdb36c79efbd0f0fb4bdce3cd0045bb35d4cf64
Oliver Smith at
jobs/octsim_osmo-ccid-firmware: add 30 min timeout

I just stopped a job run that was going for 2 days 16 h. When
successful, the job finishes in 10 min, so let it abort automatically
after 30 min.

Change-Id: Iaccc96b8b29880c9e115e52561fcd43f7b6a8f77
Oliver Smith at
jobs/octsim_osmo-ccid-firmware: add email param

Allow configuring the email notifications before starting a job, so no
notifications can be set while testing changes to the jenkins job. Add
jenkins-notifications@lists.osmocom.org while at it, as we have it with
almost all other jobs.

Change-Id: Ifcd580873479fc259119139d47447ba0e21b21f4
Oliver Smith at
jobs/octsim_osmo-ccid-firmware: don't use axis

There is only one node, so we can specify it directly instead of using a
build axis.

Change-Id: I552c8f1b244c8e8b0f902720698fbb6ba660fb72
Oliver Smith at
jobs/octsim_osmo-ccid-firmware: various tweaks

* move name and desc up (in preparation to adding another job in the same file)
* remove "concurrent: false": the octsimtest node is already configured
  to only accept one job. if we had multiple octsimtest nodes, we
  wouldn't need this limitation of not running concurrently, so this
  isn't useful.
* remove options without effect (block-downstream, block-upstream,
  disabled, build-blocker, etc.)
* add "scm checkout" comment to retry-count as we have it in other files

Change-Id: If64787efbe4a1305cd60941b69e9416960d056a2
Oliver Smith at
jobs/octsim_osmo-ccid-firmware: remove timer

This job already gets triggered once a day from
master-osmo-ccid-firmware. Running it once a day like all other master
jobs should be enough, remove the timed trigger that caused it to run
twice a day.

Change-Id: Ia4fdb6d504c7a08cf258e82436627894602f7301
Oliver Smith at
jobs/octsim_osmo-ccid-firmware: add branch param

Change-Id: I05321cd2c174060381e099aa49d5932f9cafdd28
Oliver Smith at
jobs/octsim_osmo-ccid-firmware: PYTHONUNBUFFERED=1

Ensure that the python output is getting displayed directly when running
in jenkins.

Change-Id: Iffe74b270f33286f394db1be03e6ce1953aff4bf
Oliver Smith at
osmo_git_clone_url(): add Gitea mirrors for libnftnl and nftables

Change-Id: I830a16c8bf7f595b16113bf2ba5e81bae56533dd
Related: osmo-upf.git I28950d823dfd91e8e2ac23a19e5a86d1027096b3
laforge at
scripts: fix deprecation warnings

scripts/verify_value_string_arrays_are_terminated.py:22: SyntaxWarning:
    "\s" is an invalid escape sequence. Such sequences will not work in the future.
    Did you mean "\\s"? A raw string is also an option.
scripts/verify_value_string_arrays_are_terminated.py:22: SyntaxWarning:
    "\s" is an invalid escape sequence. Such sequences will not work in the future.
    Did you mean "\\s"? A raw string is also an option.
scripts/verify_value_string_arrays_are_terminated.py:23: SyntaxWarning:
    "\s" is an invalid escape sequence. Such sequences will not work in the future.
    Did you mean "\\s"? A raw string is also an option.
scripts/verify_value_string_arrays_are_terminated.py:23: SyntaxWarning:
    "\s" is an invalid escape sequence. Such sequences will not work in the future.
    Did you mean "\\s"? A raw string is also an option.
scripts/verify_value_string_arrays_are_terminated.py:30: DeprecationWarning:
    codecs.open() is deprecated. Use open() instead.

Change-Id: Ie78b84dd556266f96780a4232f95b58e0e3eabc0
Vadim Yanitskiy at
ansible: jenkins: update install openjdk logic

New jenkins versions require newer java versions to be installed on the
jenkins nodes. Install openjdk from download.java.net instead of using
distribution packages, so we are not limited by what the distribution
offers (which is oftentimes not recent enough).

Related: OS#6998
Change-Id: I1de9a67aafe71e8c8b77c57baddb09611cb2e1fd
Oliver Smith at
ansible: debian: remove logic for jessie

This is a really old release we don't use anymore, so clean up related
commands from the ansible tasks.

Change-Id: Ifad5e9088e026a61b2e3463936c1ba602f4a99df
Oliver Smith at
ansible: lx2-raspbian{12 => 13}build-ansible

Related: OS#6998
Change-Id: I66afdc0ba86cfde6613226abba900c31e486f846
Oliver Smith at
ansible: docker: update apt key install method

Fix that the deprecated method for installing the apt key for the docker
repository was still used.

Fix for (with debian 13):
  Failed to find required executable "apt-key" in paths: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Related: OS#6998
Change-Id: I8184b6f9369886b79a3cf015ceee6e46e38b089c
Oliver Smith at
ansible: add Debian-13.yml

Related: OS#6998
Change-Id: I34db89aba34e7c49843db0aa39fd593e35f4700a
Oliver Smith at
ansible: ntpd: update for debian 13

Use the openntpd package, as there isn't a ntp package anymore. The
service gets enabled and started automatically after installing it, so
remove the block that did it manually.

Change-Id: I7dad2f0cc034f487d4c97ec37325dab667f24ce3
Oliver Smith at
jobs/gerrit: archive osmo-ccid-firmware artifacts

Prepare to use the built firmware in a new hwtest job.

Related: SYS#7963
Change-Id: Ib220f708725e502724ef0375130e7db77c6e91fa
Oliver Smith at
jenkins-gerrit/artifacts_download: new script

Add a script for downloading artifacts from the build job in a gerrit
pipeline, so it can be used in the hwtest job job.

pipeline: <--- URL to the pipeline is passed to all jobs
  parallel:
    sequential:
      build  <--- artifacts are here
      hwtest <--- will call the new script with the pipeline URL
    lint
    binpkgs
    ...

Related: SYS#7963
Change-Id: Ia96951d62b464b2e0b80f8e555cb77e5b9e52f78
Oliver Smith at
jobs/gerrit-osmo-ccid-firmware-hwtest: new job

Add a new test that flashes the firmware from the previous build job and
runs tests against it. Tests are intentionally from the master branch
for security reasons.

Related: SYS#7963
Depends: osmo-ccid-firmware I9445d6d5e4723bf6a87d4bffcdc638560471328b
Change-Id: I736b2b194813e6edff0197145fe08168c3e66903
Oliver Smith at
jobs/gerrit: run osmo-ccid-firmware-hwtest

Related: SYS#7963
Change-Id: I438239f65f4b52fb5c77654b366b3c3254fcb44f
Oliver Smith at
ansible/setup-simtest: merge apt tasks

Do apt update and installing packages in one task, similar to how we do
it in other ansible yml files.

Change-Id: I269b368fdca682814976b2cda1c14c33529650b7
Oliver Smith at
ansible/setup-simtest: sort packages

Change-Id: I9fac58407b7c5a38e2ed56e6e5718ce13ed23973
Oliver Smith at
ansible/setup-simtest: add sudo and wget

Both are needed for the new openjdk install logic.

Related: OS#6998#note-3
Change-Id: I4d5c400daec9c74d069c60a6221ae57e8c6f7953
Oliver Smith at
ansible: openjdk: add mkdir ~/jenkins

Ensure the JDK can always be installed to /home/{{ jenkins_user
}}/jenkins/jdk/bin/java, even if ~/jenkins does not exist yet at this
point. This could be because jenkins didn't connect to the node yet, or
because the jenkins dir isn't set to ~/jenkins.

Related: OS#6998#note-4
Change-Id: I384398e2fe45988eaac32d61095c989914699245
Oliver Smith at
ansible/simtest: remove pip install logic

The pip install logic fails with:
  :stderr: error: externally-managed-environment

Remove this. Dependencies are installed venv/virtualenv:
https://gitea.osmocom.org/sim-card/pysim/src/commit/c50f4b4a0222a964710ce3124a66fe13c804be65/contrib/jenkins.sh#L25-L30

Change-Id: I460e22d78966d14e02b639efc4f74d7356e22f28
Oliver Smith at
jobs/gerrit-verifications: fix hwtest param

This must be a bool instead of a string. Without this patch, the
condition checking for the bool is always true.

Fixes: 986c2648 ("jobs/gerrit: run osmo-ccid-firmware-hwtest")
Change-Id: I3117ddab888dd226ed57b62b9b9e672f1cb9127d
Oliver Smith at
jobs/gerrit: fix artifacts logic

The previous logic failed when there are no artifacts for archiving,
for multiple reasons. Fix all of them:

* "allow-empty" needs to be set, so jenkins doesn't fail the job when it
  can't find any artifacts to archive.
* The "artifacts" string must not be empty even if "allow-empty" is set,
  as otherwise it assumes a configuration error.
* The jenkins jobs fails in the archiving step if the workspace dir
  doesn't exist.

Fixes: 4c392b9e ("jobs/gerrit: archive osmo-ccid-firmware artifacts")
Change-Id: If7a051d7be2beb617c2eda4fd1a669565c2c5b55
Oliver Smith at
OBS: build_srcpkg.Dockerfile: add dh-cmake

Add dh-cmake, so we can build source packages of programs using cmake,
such as kamailio.

Change-Id: I8b5debce4f2fc0c41c69f861822394e139ac5dfc
Oliver Smith at
jobs/master-builds.yml: pysim: separate JOB_TYPE for card tests

Change-Id: Ia48d1b468f65d7c2e6b4128eeac36d0f3d03c45e
Depends: pysim.git If76d812ee43b7eb3b57fdc660c60bf31fbff5b16
Vadim Yanitskiy at
jobs/master-builds.yml: pysim: allow skipping card tests

Skip tests requiring physical cards ("card-test") for commits
having a special marker in the COMMIT_MSG:

  Jenkins: skip-card-tests

This speeds up the build verification significantly, and may be
useful for patches that do not modify the core logic (such as
documentation improvements and misc fixes).

Change-Id: I591717a2e2659c02447087dec23aa279cfd55551
Vadim Yanitskiy at
jobs/master-builds.yml: fix typo: crad-test -> card-test

Change-Id: I0686af6c026e298c86d3a64cc161e5c84ec7dc57
Fixes: ee1ef65 ("jobs/master-builds.yml: pysim: separate JOB_TYPE for card tests")
Vadim Yanitskiy at
OBS: build_srcpkg.Dockerfile: add dh-runit

Add dh-runit, so we can build source packages of newer versions of
pcsc-lite.

Related: https://salsa.debian.org/debian/pcsc-lite/-/commit/c7c40df72dc3c754341501e34aa096fd72a61cef
Change-Id: I8d852cebb9decb3c881fd3ff9b530213bade0216
Oliver Smith at
jobs/master-builds.yml: add missing job type 'distcheck'

We do have this job type in gerrit-verifications.yml, so it's executed
for each patch submitted to Gerrit.  However, we are not executing
'distcheck' during the daily master builds - fix this.

Change-Id: I4898ba712a29a6afc34bc22adec6a3131ce8c794
Fixes: 31fd5cf0 ("gerrit-verifications: execute 'distcheck' job for pysim")
Vadim Yanitskiy at
jobs/gerrit-verifications.yml: pysim: allow skipping card tests

I've already implemented this logic in 6a3b8a0, however by mistake
I added it to master-builds.yml instead of gerrit-verifications.yml.
This is wrong because we specifically need this feature for Jenkins
verification, not for the master builds.

For daily master builds, on the other hand, we specifically want to
execute all existing job types, so revert my recent changes from
master-builds.yml, but keep the new job type.

Change-Id: I986d88545f64e13cd571ba9ff56bc924822e39a0
Fixes: 6a3b8a0 ("jobs/master-builds.yml: pysim: allow skipping card tests")
Vadim Yanitskiy at
jobs/ttcn3-testsuites-testenv: fix rm apt partial

Fix that testenv jobs may fail to remove the cache at the beginning:

  rm: cannot remove '_cache/podman/var-lib-apt-debian-trixie/lists/partial': Permission denied

This happens when the partial directory still exists:

  $ ls -lah ~/jenkins/workspace/ttcn3-bsc-test-sccplite/_cache/podman/var-lib-apt-debian-trixie/lists
  total 12K
  drwxr-xr-x 3 osmocom-build osmocom-build 4.0K Apr 27 08:48 .
  drwxr-xr-x 3 osmocom-build osmocom-build 4.0K Apr 26 08:48 ..
  drwx------ 2        100041 osmocom-build 4.0K Apr 26 08:48 partial

Which in turn is the result of "apt update" failing to download files in
an earlier job:

  E: Failed to fetch https://downloads.osmocom.org/packages/osmocom:/nightly/Debian_13/./Packages.gz  File has unexpected size (210767 != 210491). Mirror sync in progress? [IP: 148.251.236.141 443]
     Hashes of expected file:
      - Filesize:210491 [weak]
      - SHA256:a0cdea838b724880f455d68eb433f6331a7d4113c2eb677ca2f7f6dbdf9a72e1
      - SHA1:71780896257ca550e51b95e77fee4c63fcc9980c [weak]
      - MD5Sum:531a2d49d4e9f3ff121ca6aa5be602fc [weak]
     Release file created at: Sun, 26 Apr 2026 08:48:04 +0000
  E: Some index files failed to download. They have been ignored, or old ones used instead.

Change-Id: I35b9e42b754805b42f0a868a5d0c20c1f1c01731
Oliver Smith at
ansible/coverity: upgrade to 2024.12.1

Related: OS#7005
Change-Id: If4f117adcaec67a79f5ee715e063621c7c897e57
Oliver Smith at
ansible/README: mention how to update coverity

Change-Id: Icab33640e0b8c62c5808d918efb6877bc1fdf1f6
Oliver Smith at
lint/checkpatch: ignore STATIC_CONST_CHAR_ARRAY

include/osmocom/vty/command.h has the following:

  #define DEFUN_CMD_FUNC_DECL(funcname) \
    static int funcname (struct cmd_element *, struct vty *, int, const char *[]); \

  #define DEFUN_CMD_FUNC_TEXT(funcname) \
    static int funcname \
      (struct cmd_element *self, struct vty *vty, int argc, const char *argv[])

So the pointer to argv is const, but the elements in the array are not.
Functions can in theory modify the elements of argv (just like argv in
main()). I don't know if we have users of this API that are actually
doing that, but as long as the API is defined like this it doesn't make
sense for the linter to complain about using it correctly. Therefore,
ignore STATIC_CONST_CHAR_ARRAY.

Related: https://gerrit.osmocom.org/c/osmo-bsc/+/42729/comment/f3bc5254_5f30d1bb/
Change-Id: Iae0d3ff4ca648d6a3b6ca0f7805ec18e50befa80
Oliver Smith at
jobs: octsim_osmo-ccid-firmware: improve comment

Change-Id: I29bbe954d242b04cd96beaa8f251274f946af1c9
lynxis at
obs/wireshark: use osmocom branches instead of private

The used branches should be osmocom branches and not a private
branch of a developer.

Change-Id: I6554a87b715d6013c2cfa92982c87d334c1764b9
laforge at
jobs/octsim_osmo-ccid-firmware: add timeout arg

For testing the hook scripts (see next patch), it is useful to have a
shorter timeout for some test runs. Make it configurable.

Related: SYS#8011
Change-Id: I3bac142a9e2e5f144ad52ea7c36c05ffbad6f5d1
Oliver Smith at
jobs/osmo-ccid-firmware: run hooks for logs

Run the start-hook.sh / stop-hook.sh scripts that store pcscd logs and a
usbmon capture. The jenkins node is configured to allow running these
two scripts with sudo as jenkins user. Store the resulting files as
artifacts.

Related: SYS#8011
Change-Id: Id0d9a39fda24813572b979588c0ca22918829ad4
Oliver Smith at
coverity/jenkins: check if upload was successful

When the server returns an error, the curl command does not fail -
probably because the server sends a wrong http status code:

  curl \
   --form token="$token" \
   --form email=holger@freyther.de --form file=@Osmocom.tgz \
   --form version=Version --form description=AutoUpload \
   https://scan.coverity.com/builds?project=Osmocom
  + set +x
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                   Dload  Upload   Total   Spent    Left  Speed
  …
  <html>
  <head><title>413 Request Entity Too Large</title></head>
  <body>
  <center><h1>413 Request Entity Too Large</h1></center>
  <hr><center>nginx/1.19.10</center>
  </body>
  </html>
  Finished: SUCCESS

Fail if the output doesn't contain the "Build successfully submitted"
string, so the job fails if there was an error.

(The request entity too large error is probably an error on their end,
scan.coverity.com still says they are performing upgrades on their
servers.)

Change-Id: Ie63a33dfa7648b38f1f01cb8c87db76949f69e10
Oliver Smith at
jobs/gerrit-verifications: add onomondo-{eim,ipa}

Related: SYS#8103
Change-Id: Ib07ed316d80cbb857c34aede03e3d4468c3be578
Oliver Smith at
jobs/master-builds: add onomondo-{eim,ipa}

Related: SYS#8103
Change-Id: I07f0cff5ce31e60135dff84554f21d8b404f7c72
Oliver Smith at
lint: ignore LINUX_VERSION_CODE

When running the linter against dahdi-linux.git or potentially other
repositories with out-of-tree linux kernel modules, it should not
complain about the LINUX_VERSION_CODE being used there:

> drivers/dahdi/dahdi-base.c:6397: WARNING:LINUX_VERSION_CODE:
> LINUX_VERSION_CODE should be avoided, code should be for the version to
> which it is merged

Change-Id: I82d64d43c04561b1643785cb71cfee92e513e560
Oliver Smith at
jobs/{master,gerrit}: eim,ipa: wipe-workspace

Set wipe-workspace for the onomondo-eim and onomondo-ipa jobs to true,
so previous failures cannot influence new jenkins job runs. E.g.
currently we had gerrit-onomondo-ipa-build failing with:

  + mkdir build
  mkdir: cannot create directory 'build': File exists

Most existing jobs call scripts/osmo-clean-workspace.sh from osmo-ci.git
at the beginning of their jenkins.sh instead of using wipe-workspace.
But this doesn't have any advantage here while making jenkins.sh more
complex. Let's use the built-in feature from jenkins here.

Change-Id: If4ef5ab804b05ad630cfa770741fe6053fdfb637
laforge at