Skip to content

samba-in-kubernetes/samba-build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Samba CentOS/Fedora RPM Builds

x86_64

status status status

status status status

status status status

status status status

aarch64

status status status

status status status

status status status

status status status

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 40 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 39/40 on centos-ci and published as yum repositories.

Building for RHEL

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 and ACT_KEY environment variables to perform the build operation via podman containers where ORG_ID is the organizational ID and ACT_KEY is the activation key name used for registration purposes within container.

Ceph repo usage

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.

Building for aarch64

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.

Releases

No releases published

Packages

No packages published

Languages