Difference between revisions of "Howto interact with gitea and koji to do an rpm build for SME11"

From SME Server
Jump to navigationJump to search
Line 53: Line 53:
 
There are two relevant ''organisations'' on the gitea server ''smeserver'' and ''smecontribs.''  One for the core components and one for the contribs.
 
There are two relevant ''organisations'' on the gitea server ''smeserver'' and ''smecontribs.''  One for the core components and one for the contribs.
  
The common directories are necessary if you are to do either local rpm builds or insert build requests into koji.  The common directory contains the necessary makefile code. Install them:<syntaxhighlight lang="shell">
+
The common directories are necessary if you are to do either local rpm builds or insert build requests into koji.  The common directory contains the necessary makefile code.  
 +
 
 +
Install them:<syntaxhighlight lang="shell">
 
#!/bin/bash
 
#!/bin/bash
  

Revision as of 08:35, 28 August 2024

Introduction

Unlike SME10 and earlier, SME11 is being developed using cutting edge 21st century tools. This means that the (open) source code and associated file are stored in GIT repositories, surfaced through a Gitea server which provides a web based User Interface as well as an API. Rpm and ISO builds are done using the Koji tool chain which has been developed for the Fedora distribution, but has become well used for other Open Source projects.

The intention is to mirror the Gitea sources to Github so that anyone can examine and propose changes. This is still a work in progress https://github.com/smeserver . You can skip the stuff about CVS unless you want access the old SME10 code.

Setting up your build system

SME11 is based on Rocky 8, so the build system is best based on rocky 8 as well. It could be an SME11 system, but as we are still putting that together, the best choice for now is a minimal Rocky 8 system. This can be installed in a VM under ProxMox, VirtualBox or similar.

Suggest at least 4gb RAM and 50-100gb of Hard Disk.

Configure it according to your own preferences (lots of advice available on the web). Some more specific advice for SME11 building is here .

Here is the relevant directory structure:

├── GITFiles
│   ├── smecontribs
│   │   ├── common
│   │   └── smeserver-mailstats
│   ├── smeserver
│   │   ├── anaconda
│   │   ├── bglibs
│   │   ├── buffer
│   │   ├── buildsys-macros
│   │   ├── checkpassword-pam
│   │   ├── clamav
│   │   ├── common
....
│   │   ├── smeserver-lib-compspec
│   │   ├── smeserver-locale
│   │   ├── smeserver-LPRng
│   │   ├── smeserver-manager
│   │   ├── smeserver-manager-jsquery
│   │   ├── smeserver-manager-locale
│   │   ├── smeserver-mock
│   │   ├── smeserver-mysql
│   │   ├── smeserver-ntp
│   │   ├── smeserver-nutUPS
│   │   ├── smeserver-oidentd
│   │   ├── smeserver-openssh
│   │   ├── smeserver-packetfilter
│   │   ├── smeserver-php
│   │   ├── smeserver-pop3
....
│   │   ├── xlhtml
│   │   └── zsync

"GITfiles" can be anything you want "rpms" was the previous standard.

Note the need for the common directory under each of the organisations

Gitea

The Gitea server is available here.If you are serious about developing systems for SMEServer, then you will need a user. There is a central authorization system, and you can be entered into it by a request to contact@koozali.org

There are two relevant organisations on the gitea server smeserver and smecontribs. One for the core components and one for the contribs.

The common directories are necessary if you are to do either local rpm builds or insert build requests into koji. The common directory contains the necessary makefile code.

Install them:

#!/bin/bash

# Define an array of repositories you want to clone
repos=("smeserver" "smecontribs")

# Loop through each repository
for repo in "${repos[@]}"; do
  # Navigate to the GITFiles directory
  cd ~/GITFiles/$repo || { echo "Directory ~/GITFiles/$repo does not exist!"; exit 1; }
  
  # Clone the repository
  git clone https://src.koozali.org/$repo/common.git
done

Koji

Editing the Source Code

Local rpm build

Saving the Source code to Gitea

Tagging and starting a build

Monitoring your build