#!/bin/sh
#
# 2021/01/15 g.b.
# OpenAFS 1.6.24 for CentOS 7.x, build of rpms and client installation
#
# Script based on:
# https://wiki.openafs.org/devel/HowToBuildOpenAfsRpmPackages/
#
# when running the script yum propts for "y" when required.
#
  yum install rpm-build make perl libtool bzip2 wget epel-release elfutils-devel flex krb5-workstation\
              perl-ExtUtils-Embed pam-devel ncurses-devel bison perl-devel swig krb5-devel
#
  mkdir -p openafs-1.6.24
  cd openafs-1.6.24
#
# Download source release.
  wget https://www.openafs.org/dl/openafs/1.6.24/openafs-1.6.24-src.tar.bz2
  wget https://www.openafs.org/dl/openafs/1.6.24/openafs-1.6.24-doc.tar.bz2
  wget https://www.openafs.org/dl/openafs/1.6.24/RELNOTES-1.6.24
  wget https://www.openafs.org/dl/openafs/1.6.24/ChangeLog
#
  getstring=$(tar -xOf openafs-1.6.24-src.tar.bz2 '*/RedHat/openafs.spec.in' | grep 'https://www.central.org')
  celldbname_in_spec="${getstring##*/}"
#
# added for a newer version of CellServDB: the name is modofied to the one in the spec file
# if the file is available it is not retrieved from www.central.org
  wget http://grand.central.org/dl/cellservdb/CellServDB
  mv CellServDB $celldbname_in_spec
#
# Build the source RPM.
tar xf openafs-1.6.24-src.tar.bz2 --strip-components=4 '*/makesrpm.pl'
perl makesrpm.pl openafs-1.6.24-src.tar.bz2 openafs-1.6.24-doc.tar.bz2 RELNOTES-1.6.24 ChangeLog $celldbname_in_spec

# Install build dependencies.
  yum yum-builddep openafs-1.6.24-1.src.rpm
  yum install "kernel-devel-uname-r == $(uname -r)"
#
# Build RPMs.
  rpmbuild --rebuild -bc openafs-1.6.24-1.src.rpm
#
# Client packages installation
  list0=$(ls /root/rpmbuild/RPMS/x86_64/| egrep "^openafs-1|openafs-krb5|client|dkms|docs"| grep 1.6.24| grep -v debug)
  mkdir -p essential_rpms
  essential_client_rpms_list=""
  for p in $list0
  do
    rpm=/root/rpmbuild/RPMS/x86_64/$p
    cp -p $rpm essential_rpms
    essential_client_rpms_list="$essential_client_rpms_list $p"
  done
#
  cd essential_rpms
  yum install $essential_client_rpms_list
  cd ..
#
