This repository contains automation to create Samba RPMs for CentOS Stream 8/9, RHEL and Fedora from the upstream code repository. In order to allow building from a variety of git refspecs, the following make target format is used:
$ make < rpms.centos | rpms.fedora | rpms.rhel > [ vers=< os-version > arch=< architecture > refspec=< branch-name | tag-name | h:<git-commit-hash> > git_repo_url=< git_repo_url > ceph_repo_base_url=< ceph_repo_base_url > ceph_repo_gpgkey=< ceph_repo_gpgkey > ]
A Few examples:
$ make rpms.centos refspec=v4-20-test
$ make rpms.fedora vers=39 refspec=samba-4.19.6
$ make rpms.centos arch=aarch64 refspec=v4-21-test
$ make rpms.rhel refspec=h:a0862d6d6de
$ make rpms.rhel refspec=release-8.0 git_repo_url=https://github.com/ibmstorage/samba.git
$ make rpms.centos refspec=v4-20-test ceph_repo_base_url=https://download.ceph.com/rpm-squid/el9/ ceph_repo_gpgkey=https://download.ceph.com/keys/release.asc
As of now, versions 4.20 and 4.21 and the master branch are supported. In the
absence of the refspec argument the master branch is built by default. The
above format is also applicable for other make
targets. In the absence of
vers argument 9 and 41 will be the default for RHEL/CentOS and Fedora
respectively. All build targets defaults to x86_64 architecture unless arch
argument is used. Currently in addition to x86_64 we support building for
aarch64.
Except on CentOS Stream 8 and RHEL, in addition to vfs-glusterfs and vfs-cephfs, Active Directory Domain Controller components are also built as RPMs.
These are automatically run as nightly jobs for CentOS Stream 8/9 and Fedora 41/40 on centos-ci and published as yum repositories.
In order to match one-to-one with the dependencies from RHEL repositories we have the following two options:
- Register the host running the build targets to ensure that mock has access to mandatorily required RHEL repositories(BaseOS, AppStream and CodeReadyBuilder)
- If you want to leave the host as it is, use
ORG_ID
andACT_KEY
environment variables to perform the build operation via podman containers whereORG_ID
is the organizational ID andACT_KEY
is the activation key name used for registration purposes within container.
The latest Ceph dev build for the main branch is used by default. We find this build by querying shaman.ceph.com.
If the ceph_repo_base_url variable is provided, the Ceph repo will be created with that value as the baseurl in the repo instead. Optionally, ceph_repo_gpgkey can be given to support gpg signed releases.
Unless you are on an aarch64 host, the build process is expected to be absurdly
slow due to the whole emulation logic. With Fedora, qemu-aarch64-static binary
provided by qemu-user-static-aarch64
package is the key for successfully
building aarch64 RPMs from a non-aarch64 host.