Project

General

Profile

OBS Maintenance » History » Version 15

osmith, 03/10/2023 09:29 AM
link to eclipse-titan, document nftables/libnftables upgrade process

1 3 osmith
h1. OBS Maintenance
2
3 2 osmith
{{>toc}}
4 1 osmith
5
6 14 laforge
The Osmocom [[binary packages]] are built with [[OBS]] (Open Build Service) hosted on "obs.osmocom.org":https://obs.osmocom.org. In order to do that, the jenkins jobs "Osmocom_OBS_latest":https://jenkins.osmocom.org/jenkins/job/Osmocom_OBS_latest_obs.osmocom.org/ / "_nightly":https://jenkins.osmocom.org/jenkins/job/Osmocom_OBS_nightly_obs.osmocom.org/ ("config":https://gitea.osmocom.org/osmocom/osmo-ci/src/branch/master/jobs/osmocom-obs.yml) checkout the source repositories and build debian *source* packages, then upload these to OBS.
7 1 osmith
8
h2. Install osc
9
10
Get the command-line client for managing OBS. When using for the first time, it will ask for the credentials.
11
12
<pre>
13
$ sudo apt install osc
14
$ osc ls
15
</pre>
16
17 15 osmith
h2. Upgrading specific packages
18
19
h3. eclipse-titan
20
21
See the article [[upgrading eclipse-titan in the Osmocom OBS]].
22
23
h3. nftables / libnftnl
24
25
As of writing, the nftables and libnftnl packages from the Osmocom OBS are linked to openSUSE.org:security:netfilter. When the package gets upgraded there, the build will fail in the Osmocom OBS with:
26
27
<pre>
28
[   29s] error: Bad source: /home/abuild/rpmbuild/SOURCES/libnftnl-1.2.4.tar.bz2: No such file or directory
29
</pre>
30
31
That is because the source tarballs get upgraded, but the spec file has differences and so it does not get upgraded automatically.
32
33
Diff the "upstream spec file":https://build.opensuse.org/package/view_file/security:netfilter/libnftnl/libnftnl.spec?expand=1 against the one in the Osmocom OBS and apply the changes, then it should work again.
34
35
Eventually the netfilter versions we require should make it into the distributions we support, at which point we can remove this package.
36
37
38 1 osmith
h2. Workflow for testing OBS configurations
39
40 4 osmith
OBS has a "project configuration":https://en.opensuse.org/openSUSE:Build_Service_prjconf, which may need to be adjusted to state preferred dependencies for example. Before we apply project configurations to the official Osmocom OBS projects, we can test them in our own OBS project. Copy the relevant package first (adjust the username accordingly in all following examples):
41 1 osmith
42
<pre>
43 11 laforge
$ osc copypac osmocom:nightly osmo-gsm-manuals home:osmith42
44 1 osmith
</pre>
45
46
Visit the site in your browser:
47 10 osmith
* https://obs.osmocom.org/package/show/home:osmith42/osmo-gsm-manuals
48 1 osmith
49
Set up build targets:
50 10 osmith
* https://obs.osmocom.org/project/add_repository_from_default_list/home:osmith42
51 1 osmith
52
The package should get added to the queue already.
53
54
Open your project config next to the osmocom:nightly one:
55 10 osmith
* https://obs.osmocom.org/project/prjconf/home:osmith42
56 11 laforge
* https://obs.osmocom.org/project/prjconf/osmocom:nightly
57 1 osmith
58
First copy everything from the Osmocom project over to your own project. Then make changes to your config, until the builds are working as expected (dependency problems are resolved etc.). Whenever you change the config, OBS will immediately re-evaluate the build dependencies, no need to upload the source packages again.
59
60
When everything works as expected, copy the config changes you have made to the Osmocom project (nightly and latest).
61
62 12 laforge
Note that changing osmocom's project config did not seem to have any effect. It seems that we really must change both @osmocom:nightly@ and @osmocom:latest@ instead.
63 1 osmith
64
h2. Workflow for modifying packages
65
66
h3. (Optional) modify the debian dir
67
68
* clone the source git repository
69
* make changes to the debian dir
70
* commit your changes
71
* push to a "user/..." branch
72
73
h3. Build source packages and upload to your own OBS project
74
75
* clone osmo-ci.git
76 13 laforge
* open "osmo-nightly-packages.sh":https://gitea.osmocom.org/osmocom/osmo-ci/src/branch/master/scripts/osmocom-nightly-packages.sh
77 1 osmith
* if you intend to make changes to the script, do them and commit the changes
78
* change "PROJ":https://git.osmocom.org/osmo-ci/tree/scripts/osmocom-nightly-packages.sh?id=dc5fc51c1fa76e64db774ecb9e71fc25ad6c46cd#n10 to home:USERNAME
79
* if you made changes to the debian dir, insert your branch name after the related "checkout line":https://git.osmocom.org/osmo-ci/tree/scripts/osmocom-nightly-packages.sh?id=dc5fc51c1fa76e64db774ecb9e71fc25ad6c46cd#n172 (e.g. <code>checkout osmo-gsm-manuals osmith/some-random-change</code>)
80
* run osmocom-nightly-packages.sh
81
* check in your browser if all packages have been built by OBS as expected (iterate until you get everything right)
82
83
When everything works fine, contribute your patches with [[Gerrit]] as usually.
84
85
h2. Troubleshooting
86
87
h3. Debian dir doesn't work for multiple debian versions
88
89
Following what has been done for osmo-trx:
90
* create the debian dir to work with the latest debian stable
91
* create a patch that would make it work with an earlier release (debian 8) and save it as debian/patches/build-for-debian8.patch
92
* adjust the osmocom-*-packages.sh scripts to upload a second debian source package, which has the patch applied
93
* configure OBS to build the patched package only for the older debian releases, and the unpatched package only for the stable release
94
95
h3. Package is not resolvable
96
97
<pre>
98
have choice for jadetex needed by docbook-utils: jadetex texlive-formats-extra
99
</pre>
100
101
You'll need to adjust the OBS project configuration (mind the testing workflow above):
102
<pre>
103
Prefer: texlive-htmlxml
104
</pre>
105
106 8 osmith
h3. Reproduce the nightly builds locally
107
108
<pre>
109
$ osc co
110
$ osc build
111
</pre>
112 1 osmith
113 9 osmith
h2. E-Mail Notifications of build failures
114
115
Build failure notifications are sent to the "gerrit-log mailing list":https://lists.osmocom.org/mailman/listinfo/gerrit-log
116
117 1 osmith
h2. See also
118
119
* https://en.opensuse.org/Portal:Build_Service
120
* https://en.opensuse.org/openSUSE:Build_Service_prjconf
Add picture from clipboard (Maximum size: 48.8 MB)