Commit
01602b16c59838be23259762a5c1d99a0240e764
by Oliver Smith
OBS: cleanup: new script
Add a script for cleaning old sources uploaded to OBS. This was needed as we were running out of space on the OBS server, due to source tarballs being generated in nightly jobs (e.g. Osmocom_OBS_nightly and never getting deleted). This script is now running automatically every day.
The script does the following: * Iterate over all OBS projects and packages inside the projects. * Delete all source files matching *.dsc, *.tar.xz in old revisions from disk, which are not in the most recent revision anymore. * Create an empty file instead (as otherwise OBS becomes unstable) * Write a marker file with the revisions already iterated through (per project+package) and skip those on the next run.
Since osmo-pcap.git Change-Id I72e8a6ceb4fb1eb70372e13bb139ead0e2bc0860, osmo-pcap-client uses osmo_stream which in turn uses osmo_io (which can u io_uring backend). Hence, add io-uring backend to the test matrix for this project.
Commit
06b815c32d7a639e716f657720795baff2bb4c9c
by Oliver Smith
jobs: free up runners from 01:00 - 03:00
When looking at grafana, the build hosts (build4 and build5) are not busy during 00:00 and 03:00. Binary packages seem to be finished at 00:00 already. Shorten the time for "Jobs that don't need binary packages" by two hours to make room for running ttcn3-bts-test with less load in a follow-up patch.
Commit
e5493058eb750818c1460346c92bd7700255d2a1
by Oliver Smith
jobs: run ttcn3-bts-test-* between 01:00 - 06:00
The automatic respawns of osmo-bts-trx have been intentionally removed in the related docker-playground patch, so we can better notice when osmo-bts-trx crashes instead of just restarting it and moving on with the testsuite.
The result is that now it is even more important when ttcn3-bts-test jobs are running, because when the builders are under high load then faketrx cannot send the time quickly enough and it also causes osmo-bts-trx to shutdown.
In a discussion with Vadim we've decided to schedule the ttcn3-bts-tests so that they don't only run at a time where no other jobs are running. But also that they don't run at the same time on the same builder anymore to give them the least unrelated load possible. Other solutions are also being investigated, but this should make the job in its current form more stable already.
Move misc ttcn3 jobs to run from 06:00 to 08:00 and run ttcn3-bts-tests between 01:00 and 06:00. Pin them to specific runners to make sure we don't have both running on the same node.
Commit
88bc9b1e07c1f31c410780288658cbe0c4076737
by Oliver Smith
ansible: build-hosts: add testenv-coredump-helper
The Osmocom jenkins nodes run inside LXCs. When we get a coredump it appears on the host. Add a helper script to the hosts so the jenkins jobs can fetch the coredumps in case an Osmocom program crashes while running a ttcn3 testsuite.
The helper script has the following safety features to ensure jenkins can't just fetch any coredump:
* Only fetch coredumps within the last 3 seconds and only if the executable matches osmo-* or open5gs-* * Only listen on the lxc IP
Commit
56e77437c64f252765302ee9eb5739da21e9af2d
by Oliver Smith
jobs/master: pass osmo-ci to docker
Let jobs such as the upcoming one for osmo-rp2040-firmware use the known_hosts file from osmo-ci when uploading binaries. In other jobs we've copied the known_hosts into the contrib/jenkins.sh file, but let's try to have it in a central place at least for new jobs.
Fix that installing openjdk-21 as builddep of eclipse-titan fails with: Setting up openjdk-21-jre-headless:amd64 (21.0.7+6~us1-0ubuntu1~24.04) ... update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode update-alternatives: error: error creating symbolic link '/usr/share/man/man1/java.1.gz.dpkg-tmp': No such file or directory
Commit
9db271c7b325fd57e84adaaedba8644b2db03d23
by Oliver Smith
OBS: gerrit_binpkgs: add FEED parameter
Allow switching to another feed easily. I'm using this to build packages for ubuntu quickly, for which we don't have a master feed (only for debian 10, 11, 12 currently).
Commit
3b348d5effcd8b6cfde611b00473dd37545cebbb
by Oliver Smith
OBS: remove pdf draft watermark for latest pkgs
Add the line ASCIIDOCSTYLE = $(BUILDDIR)\/custom-dblatex.sty before the line include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc when building source packages for the latest feed, so there is no "DRAFT" watermark.
Commit
9f5b48a2978e652671a51b6511a068e05798cffc
by Oliver Smith
scripts/manuals: use new method for removing DRAFT
osmo-gsm-manuals now has two "ASCIIDOCSTYLE" files: * custom-dblatex.sty (without draft) * custom-dblatex-draft.sty (new default)
This change was necessary to make it feasible to build the manuals inside the debian binary packages without the watermark for the osmocom:latest feed (see next patch).
Adjust the method for removing the "DRAFT" watermark: instead of patching custom-dblatex.sty, switch from custom-dblatex-draft.sty to custom-dblatex.sty.
Commit
f7e3533392ef98ba46ed1e1b4ac3a60363de3bd2
by laforge
jobs/ttcn3-testsuites-testenv: no rm on error
Do not delete the cache dir if testenv returns with error, so we can inspect it. Keep the linux kernel too, it doesn't make much of a size difference and makes the code slightly simpler.
Commit
d0c3e3bf9bb540cd82f71b2a47c109b3889c401a
by Oliver Smith
OBS: update_obs_eclipse_titan: update
* Set the branch as argument instead of hardcoding it. * Don't use --version-append, the ~osmocom part will be added to debian/changelog instead when pushing new versions. * Add usage description.
Commit
43c09c91818d9c62e60896c3680b1bea05a48604
by Oliver Smith
OBS: add the new osmocom-keyring package
The public key for OBS packages needs to be extended every two years. When the previous key expires, it is not possible to update packages anymore until users replace the old key with the new, extended key.
To make this less inconvenient for users, introduce a new osmocom-keyring package that holds the current key (valid for 2 years), which will get updated every year with an extended key (valid for another 2 years, I'll add a jenkins job to remind us). This means as long as users upgrade their packages once a year, they will automatically receive the new key.
Commit
baf71c6784a5ad9b4508396d5e467555f2e5e520
by Oliver Smith
OBS: let meta package depend on osmocom-keyring
Let the meta package (osmocom-latest, osmocom-nightly etc.) depend on osmocom-keyring. This means that after the user has enabled any of the official Osmocom OBS repositories and installs a package from there, the osmocom-keyring package will get installed as well, which results in having an up-to-date /usr/share/osmocom-keyring/osmocom.asc.
Commit
8b28d63e980d051e5d39893549fe985218bae28f
by Oliver Smith
jobs/reminder-extend-obs-key: new job
Add a script that downloads the current OBS pubkey, checks its expiration date and fails if it is in less than a year. The idea is to extend it for two years every year (so users have enough time to update their osmocom-keyring package).
Commit
af02d1fd3d6c840df49cc7dce2f8e59cf15c4f58
by Oliver Smith
jobs: make references to master branch consistent
Use "master" instead of: - "refs/remotes/origin/master" - "origin/master" - "*/master"
This improves consistency and makes clear what should be used when adding new jobs. It also fixes the problem with */master that it may actually not only use the master branch, but also e.g. osmith/master which can lead to unintentionally building and publishing artifacts from the wrong branch. If we want to run a job on a different branch intentionally, such a job should have an extra argument for branch that can be changed when starting the job.
Commit
3d1e68dd2303c19130e13a192d6d6bc72a6d4841
by Oliver Smith
repo-install-test: ignore eclipse-titan-optdir
The osmocom:latest repository now has eclipse-titan-optdir-9.0.0 and eclipse-titan-optdir-11.1.0 packages, which allow installing multiple titan versions side-by-side. The related -dbgsym packages can conflict with the main eclipse-titan-dbgsym package. Ignore these packages in the repo-install test.
Fixes: Unpacking eclipse-titan-optdir-9.0.0-dbgsym (9.0.0~osmocom1.2263.c685) ... dpkg: error processing archive /tmp/apt-dpkg-install-4XXdZ1/205-eclipse-titan-optdir-9.0.0-dbgsym_9.0.0~osmocom1.2263.c685_amd64.deb (--unpack): trying to overwrite '/usr/lib/debug/.build-id/0a/072e12f92a7b564adec3a0896c18aa6c942391.debug', which is also in package eclipse-titan-dbgsym 9.0.0.3.0bbfc~osmocom
Commit
1262888d49057d212a16a29506e8a30b79202510
by Oliver Smith
jobs/registry…: fix syntax error
Use $REGISTRY instead of ${REGISTRY}, so jenkins-job-builder 6.3.0 doesn't interpret it as JJB variable. It needs to be interpreted as shell variable here. This probably worked with older JJB versions.
Commit
80a9abae512b4f28c7531c27bb91ea8757bb1e72
by Oliver Smith
contrib/obs-mirror/obs-mirror-include: update
Update the daily backup/mirror configuration.
* Add Debian 13 * Add Raspbian 12 (not sure why it was not there yet) * Add nightly/CentOS_7 (we build a few packages for it and we also have the mirror configured for latest) * Remove CentOS 8 (dropped 1 year ago: https://osmocom.org/news/255) * Remove Debian 10, Raspbian 10 (https://osmocom.org/news/308)
Commit
f071c697887247030b8ec43c1a9dc2d873984d35
by Oliver Smith
OBS: support building debian trixie (13) pkgs
Translate "debian:13" to "debian:trixie", as for some reason no docker tag is getting pushed for "debian:13". With this we can keep using the usual short naming scheme in pipeline_binpkgs lines in gerrit-verifications.yml (see next patch).
Commit
5c0b9984b437759fea55fb9101ccde49acb27d25
by Oliver Smith
jobs/gerrit: binpkgs: update debian versions
Change the default from "debian:10 debian:12" to "debian:11 debian:13", as Debian 13 has just been released and we are about to remove Debian 10 binary packages.
Commit
6d19e82eedcd4852cce3b43482ab54f1df195ef2
by Oliver Smith
OBS: sync_obs_projects: support security.d.o
The Debian 13 meta config in the OpenSUSE OBS now lists security.debian.org. Adjust the script that syncs the config to support this URL too, rewrite it to HTTPS just like the other mirror URL.
Fix for: changing url to https: http://security.debian.org/debian-security?dist=trixie-security&component=main Traceback (most recent call last): File "/obs/sync_obs_projects.py", line 322, in <module> main() File "/obs/sync_obs_projects.py", line 312, in main rewrite_meta(project) File "/obs/sync_obs_projects.py", line 190, in rewrite_meta assert url.startswith("http://ftp.de.debian.org/debian"), \ AssertionError: unexpected mirror URL