Difference between revisions of "Setting up RPM Building for SME Server on rocky 8"
(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | Login as brianr. | |
− | sudo dnf install mock -- | + | 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 |
Revision as of 11: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