How to build an rpm package for PBS Pro 14.0.0 (Locally and on OBS)
...
4. mkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
Installing Dependencies
Below is the list of dependencies specified in the "pbspro.spec" file:
gcc
autoconf
automake
hwloc-devel
libX11-devel
libXt-devel
libedit-devel
libical-devel
ncurses-devel
perl
postgresql-devel
python-devel >= 2.6
python-devel < 3.0
tcl-devel
tk-devel
swig
expat-devel (if suse then libexpat-devel)
openssl-devel (if suse then libopenssl-devel)
We can install the dependencies specified in the "pbspro.spec" file using the command below:
yum-builder pbspro.spec
or
yum install gcc autoconf automake hwloc-devel libX11-devel libXt-devel libedit-devel libical-devel ncurses-devel perl postgresql-devel python-devel tcl-devel tk-devel swig expat-devel openssl-devel
Note: If there is any error in installing any dependency, we can try installing dependencies individually using the command below
...
:
yum install "dependency name"
example : yum install postgresql
Source directory and creation of tar.gz file
...
pbspro-execution-13.0.800-0.x86_64.rpm, pbspro-server-13.0.800-0.x86_64.rpm in ~/rpmbuild/RPMS dirctory.
...
Building and Testing an rpm
...
Package Locally on
...
CentOS7
1.
...
Get pbs/pbspro
2. cd pbs/pbspro
3. yum -y update
4. yum -y install yum-utils epel-release rpmdevtools (NOTE: epel-release is only require if you want to install PTL see below)
5. rpmdev-setuptree
6. yum-builddep -y ./pbspro.spec
7. cd pbs
8. ./autogen.sh
9. ./configure
10. make dist
11. cp pbspro-*.tar.gz ~/rpmbuild/SOURCES/
12. cp ../pbspro.spec ~/rpmbuild/SPECS/
13. rpmbuild -bb ../pbspro.spec (Build is complete on these step You can find RPMs in ~/rpmbuild/RPMS/x86_64/)
(Below The following steps are to run PTL):
14. yum -y install /root/rpmbuild/RPMS/x86_64/pbspro-server-*.x86_64.rpm
15. /etc/init.d/pbs start
16. yum -y install python-pip sudo which net-tools
17. cd test/fw
18. pip install -r requirements.txt .
19. pbs_config --make-ug
20. cd ../tests
21. pbs_benchpress -l INFOCLI2 -o ptl.txt
One Once pbs_benchpress completes, you can find the PTL log in ptl.txt
...
.
...
Building and Testing an rpm Package Locally on openSUSE 13.2
Here is steps for OSS build on Use the following steps to build the open source PBS Pro on your local machine (OpenSuse running openSUSE 13.2):
1. get pbs/pbspro
2. cd pbs/pbspro
3. zypper -n ar -f -G http://download.opensuse.org/repositories/devel:/tools/openSUSE_13.2/devel:tools.repo
4. zypper -n ref
5. zypper -n install rpmdevtools python-xml (NOTE: without python-xml PBS compilation will fail while generating *.c from *.xml for all attr of PBS)
6. rpmdev-setuptree
7. zypper -n install $(rpmspec --buildrequires -q pbspro.spec) (NOTE: ignore any warning)
8. cd pbs
9. ./autogen.sh
10. ./configure
11. make dist
12. cp pbspro-*.tar.gz ~/rpmbuild/SOURCES/
13. cp ../pbspro.spec ~/rpmbuild/SPECS/
14. rpmbuild -bb ../pbspro.spec (Build is complete on these step You can find RPMs in ~/rpmbuild/RPMS/x86_64/)
(Below The following steps are to run PTL):
15. zypper -n install /root/rpmbuild/RPMS/x86_64/pbspro-server-*.x86_64.rpm
16. /etc/init.d/pbs start
17. zypper -n install python-pip sudo which net-tools
18. cd test/fw
19. pip install -r requirements.txt .
20. pbs_config --make-ug
21. cd ../tests
22. pbs_benchpress -l INFOCLI2 -o ptl.txt
One Once pbs_benchpress completes, you can find the PTL log in ptl.txt.
...
Building an rpm Package on OBS
OBS: The Open Build Service (OBS) is a generic system to build and distribute binary packages from sources in an automatic, consistent, and reproducible way.
Prerequisites
1.Source (13.0.800).
Generating the rpm
1. Follow the same above steps 1-5 to generate .tar.gz file.
2. Log in to the OBS system using the link below:
https://172.16.77.234/package/show/home:subhasisb2003/pbs
3. Under Source Files, add pbspro.spec and pbspro-13.0.800.tar.gz files (if the files exist, delete them using delete option ).
...