Line 73:
Line 73:
This will have created 6 build targets with various build tags to use
This will have created 6 build targets with various build tags to use
−
* dist-sme10-os (dist-sme10-os-build)
+
* smeserver10 (smeserver10-build)
−
* dist-sme10-contribs (dist-sme10-contribs-build)
+
* smecontribs10 (smecontribs10-build)
−
* dist-sme11-os (dist-sme11-os-build)
+
* smeserver11 (smeserver11-build)
−
* dist-sme11-contribs (dist-sme11-contribs-build)
+
* smecontribs11 (smecontribs11-build)
−
* dist-sme12-os (dist-sme12-os-build)
+
* smeserver12 (smeserver12-build)
−
* dist-sme12-contribs (dist-sme12-contribs-build)
+
* smecontribs12 (smecontribs12-build)
There is a hierarchy inheritance structure for each release (see 10, 11 & 12), where the basic settings are inherited (e.g. yum or dnf, centos:7 or rockylinux:8 bootstrap image for mock) as well as which external repositories to use (e.g. centos7/el7 versions or rocky8/el8 versions)
There is a hierarchy inheritance structure for each release (see 10, 11 & 12), where the basic settings are inherited (e.g. yum or dnf, centos:7 or rockylinux:8 bootstrap image for mock) as well as which external repositories to use (e.g. centos7/el7 versions or rocky8/el8 versions)
−
+ dist-sme<release>-os
+
+ smeserver<release>
−
++ dist-sme<release>-os-build
+
++ smeserver<release>-build
−
++ dist-sme<release>-contribs
+
++ smeserver<release>-testing
−
+++ dist-sme<release>-contribs-buikl
+
+ smecontribs<release>
−
++ dist-sme<release>-addons
+
++ smecontribs<release>-build
−
++ dist-sme<release>-testing
+
++ smecontribs<release>-testing
−
++ dist-sme<release>-updates
+
How to build etc. is covered in [[Howto interact with gitea and koji to do an rpm build for SME11]]
−
−
++ dist-sme<release>-updates-testing
−
−
How to build etc. will be covered in the 'to be written' koji usage page......
===Additional Builders===
===Additional Builders===
Line 123:
Line 119:
=== Bootstrap ===
=== Bootstrap ===
The setup of the repos used for building SME10, SME11 & SME12 are all included in the install script, but a brief description of what has been setup seems sensible.
The setup of the repos used for building SME10, SME11 & SME12 are all included in the install script, but a brief description of what has been setup seems sensible.
+
+
=== Plugins ===
+
At this time, we are using the following koji plugins to manage our builds:
+
+
- koji-plugin-sign (to sign all built rpms with the appropriate koozali gnupg key)
+
+
- tag2distrepo (to automatically regenerate external repositories, when we have included a new build)
+
+
These have been installed manually, using the following instructions, but should be included in the install scripts in the future
+
+
* Copy the tag2distrepo.py and sign.py programs into /usr/lib/koji-hub-plugins
+
* Set the configurations as per the directions for each plugin below
+
* Edit the following settings in /etc/koji-hub/hub.conf to enable the plugins:<syntaxhighlight lang="text">
+
PluginPath = /usr/lib/koji-hub-plugins
+
Plugins = tag2distrepo sign
+
</syntaxhighlight>
+
+
* Reload Apache<syntaxhighlight lang="bash">
+
systemctl reload httpd
+
</syntaxhighlight>
+
+
==== koji-sign-rpm ====
+
+
* Make sure that the koji-sign selinux policy is installed and enabled<syntaxhighlight lang="bash">
+
semodule --list-modules=full | grep koji-sign
+
</syntaxhighlight>
+
* If it's not listed, copy down the koji-sign.te file, compile and install it<syntaxhighlight lang="bash">
+
checkmodule -M -m -o koji-sign.mod koji-sign.te
+
semodule_package -o koji-sign.pp -m koji-sign.mod
+
semodule -i koji-sign.pp
+
</syntaxhighlight>
+
* Copy your gpg keys etc. into /etc/koji-hub/plugins/gnupg/
+
* Copy sign.conf into /etc/koji-hub/plugins/
+
* Edit /etc/koji-hub/plugins/sign.conf to have the correct gpg key names for each tag and set enabled, when ready
+
+
==== tag2distrepo ====
+
+
* Set the extra options on the tag so the plugin will generate the repository: where ONLY those rpms signed with that key will be included in the generated external repository<syntaxhighlight lang="bash">
+
koji edit-tag -x tag2distrepo.enabled=True -x tag2distrepo.keys='44922a28' smecontribs11
+
</syntaxhighlight>You can check by doing:<syntaxhighlight lang="bash">
+
koji taginfo smecontribs11
+
</syntaxhighlight>and you should see<syntaxhighlight lang="text">
+
Tag: smecontribs11 [38]
+
Arches: x86_64
+
Groups:
+
Tag options:
+
mock.bootstrap_image : 'rockylinux:8'
+
mock.package_manager : 'dnf'
+
rpm.macro.dist : '.el8.sme'
+
rpm.macro.distribution : 'SME Server v11'
+
rpm.macro.packager : 'Koozali.org <http://www.koozali.org>'
+
rpm.macro.vendor : 'Koozali.org <http://www.koozali.org>'
+
tag2distrepo : '44922a28'
+
tag2distrepo.enabled : True
+
Inheritance:
+
</syntaxhighlight>
==Install - The long way (Beware: Demons lurk here) ==
==Install - The long way (Beware: Demons lurk here) ==