Difference between revisions of "Setting up RPM Building for SME Server on rocky 8"

From SME Server
Jump to navigationJump to search
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
[https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm]
+
Login as brianr.
  
sudo dnf install mock --enablerepo=epel
+
sudo dnf install epel-release
 +
sudo dnf install mock
 +
sudo /usr/sbin/usermod -G mock brianr
 +
sudo dnf install glances
 +
sudo yum install make rpm-build rpm-sig
  
<br />
+
(Missing python-ctypes??)
 +
 
 +
cd /etc/mock/
 +
sudo rm site-defaults.cfg
 +
sudo dnf install wget
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/site-defaults.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-i386-base.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-i386-iso.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-x86_64-base.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-x86_64-iso.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-i386-base.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-i386-iso.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-x86_64-base.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-x86_64-iso.cfg
 +
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-10-x86_64-base.cfg
 +
sudo chown root:mock /etc/mock/*
 +
 
 +
Note that the smeserver-10 file is incomplete (and actually the only one we really want!). Ideally the full one will be uploaded in time. See later, I copied from my Centos 7 build system.
 +
 
 +
Here it is:
 +
 
 +
config_opts['package_manager'] = 'yum'
 +
config_opts['use_nspawn'] = False
 +
 +
config_opts['root'] = 'smeserver-10-x86_64'
 +
config_opts['target_arch'] = 'x86_64'
 +
config_opts['dist'] = '.el7.sme'
 +
config_opts['chroot_setup_cmd'] = ' install @buildsys-build  @buildsys scl-utils-build python27-build '
 +
 
 +
config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/ccache/x86_64/"
 +
 
 +
config_opts['macros']['%distribution'] = "SME Server v10"
 +
config_opts['macros']['%packager'] = "Koozali.org <http://www.koozali.org>"
 +
config_opts['macros']['%vendor'] = "Koozali.org <http://www.koozali.org>"
 +
config_opts['macros']['%dist'] = ".el7.sme"
 +
 
 +
config_opts['yum.conf'] = """
 +
[main]
 +
cachedir=/var/cache/yum
 +
debuglevel=4
 +
logfile=/var/log/yum.log
 +
reposdir=/dev/null
 +
retries=20
 +
obsoletes=1
 +
gpgcheck=0
 +
assumeyes=1
 +
syslog_ident=mock
 +
syslog_device=
 +
 
 +
[os]
 +
name=os
 +
baseurl=http://buildsys.koozali.org/build/7/os/x86_64
 +
exclude=buildsys-macros
 +
 
 +
[updates]
 +
name=updates
 +
baseurl=http://buildsys.koozali.org/build/7/updates/x86_64
 +
exclude=buildsys-macros
 +
 
 +
[fastrack]
 +
name=fastrack
 +
baseurl=http://buildsys.koozali.org/build/7/fastrack/x86_64
 +
 
 +
# centos cr
 +
[opt1]
 +
name=opt1
 +
baseurl=http://buildsys.koozali.org/build/7/opt1/x86_64
 +
 
 +
# centos extra
 +
[opt2]
 +
name=opt2
 +
baseurl=http://buildsys.koozali.org/build/7/opt2/x86_64
 +
 +
# Not used
 +
[opt3]
 +
name=opt3
 +
baseurl=http://buildsys.koozali.org/build/7/opt3/x86_64
 +
 +
[epel]
 +
name=epel
 +
baseurl=http://download.fedoraproject.org/pub/epel/7/x86_64
 +
#baseurl=http://buildsys.koozali.org/build/7/epel/x86_64
 +
includepkgs=ccache mhash* perl-Taint-Util libdb4 libdb4-devel php-channel-horde php-horde-* perl-Class-Method-Modifiers perl-Class-XSAccessor perl-Devel-GlobalDestruction perl-Sub-Name perl-indirect perl-B-Hooks-OP-Check perl-ExtUtils-Depends perl-Lexical-SealRequireHints perl-Params-Classify perl-Dist-CheckConflicts perl-Math-Int64 perl-Sort-Naturally perl-Sub-Exporter-Progressive perl-Bytes-Random-Secure perl-Crypt-Random-TESHA2 perl-Crypt-Random-Seed perl-Math-Random-ISAAC kmodtool  libmaxminddb-devel libmaxminddb
 +
 +
#[rpmforge]
 +
#name=rpmforge
 +
#baseurl=http://buildsys.koozali.org/build/7/rpmforge/x86_64
 +
#includepkgs=perl-Taint-Util
 +
 
 +
[rpmfusion]
 +
name=rpmfusion
 +
baseurl=http://download1.rpmfusion.org/free/el/updates/7/x86_64
 +
includepkgs=ffmpeg* libva* x264-libs xvidcore librtmp
 +
 +
[sclo-sclo]
 +
name=sclo-sclo
 +
baseurl=http://mirror.centos.org/centos/7/sclo/x86_64/sclo
 +
includepkgs=python27*
 +
 +
[sclo-rh]
 +
name=sclo-rh
 +
baseurl=http://mirror.centos.org/centos/7/sclo/x86_64/rh
 +
includepkgs=python27* python33* rh-mongodb26* rh-mongodb32* rh-mongodb34* nodejs010* rh-nodejs6*
 +
 +
[buildsys-core]
 +
name=buildsys-core
 +
baseurl=http://buildsys.koozali.org/build/10/smeserver-core/x86_64
 +
includepkgs=bglibs buildsys-macros cvm* dietlibc* e-smith-devtools perl-Test-Inline perl-IO-Socket-IP perl-Geography-Countries perl-Object-Persistence perl-bareword-filehandles perl-multidimensional perl-strictures perl-Module-Runtime perl-Role-Tiny perl-Sub-Quote perl-Bytes-Random-Secure
 +
 +
[buildsys-contribs]
 +
name=buildsys-contribs
 +
baseurl=http://buildsys.koozali.org/build/10/smeserver-contribs/x86_64
 +
includepkgs=libevent2* perl-Ezmlm perl-Crypt-GPG perl-IPC-Run libevhtp* libsearpc* ccnet* libccnet* libzdb* libccnet* evhtp* sqlite* ocaml camlp5 python27-python-versiontools libarchive*
 +
 +
[groups]
 +
name=groups
 +
baseurl=http://buildsys.koozali.org/build/10/smeserver-groups/x86_64
 +
"""
 +
 
 +
Then:
 +
 
 +
#!/bin/sh
 +
mkdir ~/rpmbuild
 +
for i in BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
 +
do
 +
  mkdir ~/rpmbuild/$i
 +
done
 +
 
 +
sudo dnf install cvs
 +
sudo nano /etc/profile.d/smebuild.sh
 +
 +
# Developer environment
 +
# This gets symlinked into /etc/profile.d
 +
export CVS_RSH=ssh # tell CVS to use ssh
 +
  # DO NOT set CVSROOT
 +
alias rm='rm -i'
 +
alias cp='cp -i --preserve=timestamps'
 +
alias mv='mv -i'
 +
 
 +
Create the ssh details for the build server:
 +
 
 +
mkdir -p ~/.ssh
 +
nano ~/.ssh/config
 +
 
 +
Host  shell.koozali.org
 +
User  brianr
 +
Port  222
 +
IdentityFile /home/brianr/.ssh/smeserver-buildsys
 +
ForwardAgent yes
 +
 
 +
Make Sure your public and private keys are syncronised onto the build server (I just copied the key files to the rocky server from my Centos 7 server).
 +
 
 +
Then pull in the complete Contribs tree
 +
 
 +
cvs -z3 -d:ext:shell.koozali.org:/cvs/smeserver co -P rpms
 +
 
 +
Disable selinux by editing config replace "enforcing" by "disabled"
 +
 +
sudo nano /etc/sysconfig/selinux
 +
 
 +
and reboot.
 +
 
 +
Need also to copy over from current build system ~/.plague-client.cfg .rpmmacros .cvspass (although this one is empty?)
 +
 
 +
AND smeserver-10-x86_64-base.cfg from (and to) /etc/mock as the one downloaded above seems to be not complete for sme10.
 +
 
 +
make mockbuild runs ok.
 +
 
 +
Not yet tried submitting build to buildsys - need to find plague-client to download  - found Centos 7
 +
 
 +
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/7.9.2009/infra/x86_64/infra-common/Packages/p/plague-client-0.4.5.8-19.el7.4.noarch.rpm
 +
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/7.9.2009/infra/x86_64/infra-common/Packages/p/plague-common-0.4.5.8-19.el7.4.noarch.rpm
 +
wget ftp://ftp.pbone.net/mirror/vault.centos.org/7.6.1810/cloud/x86_64/openstack-stein/python2-pyOpenSSL-19.0.0-1.el7.noarch.rpm
 +
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/7.9.2009/cloud/x86_64/openstack-stein/Packages/p/python2-cryptography-2.5-1.el7.x86_64.rpm
 +
 
 +
Need python2
 +
  sudo dnf install python2

Revision as of 10:46, 12 October 2021

Login as brianr.

sudo dnf install epel-release
sudo dnf install mock
sudo /usr/sbin/usermod -G mock brianr
sudo dnf install glances
sudo yum install make rpm-build rpm-sig

(Missing python-ctypes??)

cd /etc/mock/
sudo rm site-defaults.cfg 
sudo dnf install wget
sudo wget http://mirror.contribs.org/contribs/dani/mock/site-defaults.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-i386-base.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-i386-iso.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-x86_64-base.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-8-x86_64-iso.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-i386-base.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-i386-iso.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-x86_64-base.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-9-x86_64-iso.cfg
sudo wget http://mirror.contribs.org/contribs/dani/mock/smeserver-10-x86_64-base.cfg
sudo chown root:mock /etc/mock/*

Note that the smeserver-10 file is incomplete (and actually the only one we really want!). Ideally the full one will be uploaded in time. See later, I copied from my Centos 7 build system.

Here it is:

config_opts['package_manager'] = 'yum'
config_opts['use_nspawn'] = False

config_opts['root'] = 'smeserver-10-x86_64'
config_opts['target_arch'] = 'x86_64'
config_opts['dist'] = '.el7.sme'
config_opts['chroot_setup_cmd'] = ' install @buildsys-build  @buildsys scl-utils-build python27-build '
 
config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/ccache/x86_64/"
 
config_opts['macros']['%distribution'] = "SME Server v10"
config_opts['macros']['%packager'] = "Koozali.org <http://www.koozali.org>"
config_opts['macros']['%vendor'] = "Koozali.org <http://www.koozali.org>"
config_opts['macros']['%dist'] = ".el7.sme"
 
config_opts['yum.conf'] = """
[main]
cachedir=/var/cache/yum
debuglevel=4
logfile=/var/log/yum.log
reposdir=/dev/null
retries=20
obsoletes=1
gpgcheck=0
assumeyes=1
syslog_ident=mock
syslog_device=
 
[os]
name=os
baseurl=http://buildsys.koozali.org/build/7/os/x86_64
exclude=buildsys-macros
 
[updates]
name=updates
baseurl=http://buildsys.koozali.org/build/7/updates/x86_64
exclude=buildsys-macros
 
[fastrack]
name=fastrack
baseurl=http://buildsys.koozali.org/build/7/fastrack/x86_64
 
# centos cr
[opt1]
name=opt1
baseurl=http://buildsys.koozali.org/build/7/opt1/x86_64
 
# centos extra
[opt2]
name=opt2
baseurl=http://buildsys.koozali.org/build/7/opt2/x86_64

# Not used
[opt3]
name=opt3
baseurl=http://buildsys.koozali.org/build/7/opt3/x86_64

[epel]
name=epel
baseurl=http://download.fedoraproject.org/pub/epel/7/x86_64
#baseurl=http://buildsys.koozali.org/build/7/epel/x86_64
includepkgs=ccache mhash* perl-Taint-Util libdb4 libdb4-devel php-channel-horde php-horde-* perl-Class-Method-Modifiers perl-Class-XSAccessor perl-Devel-GlobalDestruction perl-Sub-Name perl-indirect perl-B-Hooks-OP-Check perl-ExtUtils-Depends perl-Lexical-SealRequireHints perl-Params-Classify perl-Dist-CheckConflicts perl-Math-Int64 perl-Sort-Naturally perl-Sub-Exporter-Progressive perl-Bytes-Random-Secure perl-Crypt-Random-TESHA2 perl-Crypt-Random-Seed perl-Math-Random-ISAAC kmodtool  libmaxminddb-devel libmaxminddb

#[rpmforge]
#name=rpmforge
#baseurl=http://buildsys.koozali.org/build/7/rpmforge/x86_64
#includepkgs=perl-Taint-Util
 
[rpmfusion]
name=rpmfusion
baseurl=http://download1.rpmfusion.org/free/el/updates/7/x86_64
includepkgs=ffmpeg* libva* x264-libs xvidcore librtmp 

[sclo-sclo]
name=sclo-sclo
baseurl=http://mirror.centos.org/centos/7/sclo/x86_64/sclo
includepkgs=python27*

[sclo-rh]
name=sclo-rh
baseurl=http://mirror.centos.org/centos/7/sclo/x86_64/rh
includepkgs=python27* python33* rh-mongodb26* rh-mongodb32* rh-mongodb34* nodejs010* rh-nodejs6*

[buildsys-core]
name=buildsys-core
baseurl=http://buildsys.koozali.org/build/10/smeserver-core/x86_64
includepkgs=bglibs buildsys-macros cvm* dietlibc* e-smith-devtools perl-Test-Inline perl-IO-Socket-IP perl-Geography-Countries perl-Object-Persistence perl-bareword-filehandles perl-multidimensional perl-strictures perl-Module-Runtime perl-Role-Tiny perl-Sub-Quote perl-Bytes-Random-Secure

[buildsys-contribs]
name=buildsys-contribs
baseurl=http://buildsys.koozali.org/build/10/smeserver-contribs/x86_64
includepkgs=libevent2* perl-Ezmlm perl-Crypt-GPG perl-IPC-Run libevhtp* libsearpc* ccnet* libccnet* libzdb* libccnet* evhtp* sqlite* ocaml camlp5 python27-python-versiontools libarchive*

[groups]
name=groups
baseurl=http://buildsys.koozali.org/build/10/smeserver-groups/x86_64
"""

Then:

#!/bin/sh
mkdir ~/rpmbuild
for i in BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
do
 mkdir ~/rpmbuild/$i
done
sudo dnf install cvs
sudo nano /etc/profile.d/smebuild.sh

# Developer environment
# This gets symlinked into /etc/profile.d
export CVS_RSH=ssh # tell CVS to use ssh
 # DO NOT set CVSROOT
alias rm='rm -i'
alias cp='cp -i --preserve=timestamps'
alias mv='mv -i'

Create the ssh details for the build server:

mkdir -p ~/.ssh
nano ~/.ssh/config
Host  shell.koozali.org
User  brianr
Port  222
IdentityFile /home/brianr/.ssh/smeserver-buildsys
ForwardAgent yes

Make Sure your public and private keys are syncronised onto the build server (I just copied the key files to the rocky server from my Centos 7 server).

Then pull in the complete Contribs tree

cvs -z3 -d:ext:shell.koozali.org:/cvs/smeserver co -P rpms

Disable selinux by editing config replace "enforcing" by "disabled"

sudo nano /etc/sysconfig/selinux

and reboot.

Need also to copy over from current build system ~/.plague-client.cfg .rpmmacros .cvspass (although this one is empty?)

AND smeserver-10-x86_64-base.cfg from (and to) /etc/mock as the one downloaded above seems to be not complete for sme10.

make mockbuild runs ok.

Not yet tried submitting build to buildsys - need to find plague-client to download - found Centos 7

wget ftp://ftp.pbone.net/mirror/ftp.centos.org/7.9.2009/infra/x86_64/infra-common/Packages/p/plague-client-0.4.5.8-19.el7.4.noarch.rpm
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/7.9.2009/infra/x86_64/infra-common/Packages/p/plague-common-0.4.5.8-19.el7.4.noarch.rpm
wget ftp://ftp.pbone.net/mirror/vault.centos.org/7.6.1810/cloud/x86_64/openstack-stein/python2-pyOpenSSL-19.0.0-1.el7.noarch.rpm
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/7.9.2009/cloud/x86_64/openstack-stein/Packages/p/python2-cryptography-2.5-1.el7.x86_64.rpm

Need python2

 sudo dnf install python2