Files
2023-02-03 16:52:09 +01:00

151 lines
4.3 KiB
Tcsh
Executable File

#!/bin/csh -x
# Build ELOG distribution
if ($#argv < 2) then
echo "Usage: build <version> <release> [-krb5] [-ldap] [-pam] [-ssl]"
exit
endif
set version = $argv[1]
set release = $argv[2]
set REV = "unknown"
set i = 0
set BUILDOPTS=""
foreach argument ($argv)
set i=`expr $i + 1`
if ($i <= 2) continue
switch ($argument)
case "-ldap":
set BUILDOPTS="$BUILDOPTS --with ldap"
breaksw
case "-pam":
set BUILDOPTS="$BUILDOPTS --with pam"
breaksw
case "-ssl":
set BUILDOPTS="$BUILDOPTS --with ssl"
breaksw
case "-krb5":
set BUILDOPTS="$BUILDOPTS --with krb5"
breaksw
endsw
end
#if (`hostname` == 'elog01.psi.ch') then
set BUILDOPTS="$BUILDOPTS --with ldap --with pam --with ssl --with krb5"
#endif
set dist = `rpm --eval %{\?dist}`
set dir = /tmp/elog-$version-$release
set archive = elog-$version-$release.tar.gz
set fdate = `env LC_TIME=C date +"%a %b %d %Y"`
echo ${fdate}
# create temporary directory
rm -Rf $dir
mkdir $dir
mkdir $dir/doc
mkdir $dir/src
mkdir $dir/mxml
mkdir $dir/man
mkdir $dir/contrib
mkdir $dir/scripts
mkdir $dir/scripts/ckeditor
mkdir $dir/resources
mkdir $dir/ssl
mkdir $dir/themes
mkdir $dir/themes/default
mkdir $dir/themes/default/icons
mkdir $dir/logbooks/
mkdir $dir/logbooks/demo
mkdir $dir/logbooks/demo/2001
# copy files to archive
unalias cp
cp -p src/*.c $dir/src
cp -p src/*.cxx $dir/src
cp -p src/*.h $dir/src
cp -p mxml/*.c $dir/mxml
cp -p mxml/*.cxx $dir/mxml
cp -p mxml/*.h $dir/mxml
cp -p Makefile $dir
cp -p elogd.cfg.example $dir/elogd.cfg.example
cp -p COPYING $dir
cp -p README $dir
cp -p elogd.init_template $dir
cp -p elogd.plist $dir
cp -p elogd.service $dir
cp -p doc/* $dir/doc
cp -p man/* $dir/man
cp -p contrib/* $dir/contrib
cp -p -r scripts/* $dir/scripts
cp -p resources/* $dir/resources
cp -p ssl/* $dir/ssl
cp -rp themes/default/* $dir/themes/default
cp -p logbooks/demo/2001/011108a.log $dir/logbooks/demo/2001/
# add git version for RPM
which git >& /dev/null
if ( $status != 1 ) then
set REV=`git log -n 1 --pretty=format:"%ad - %h"`
endif
echo \#define GIT_REVISION \"$REV\" > $dir/src/git-revision.h
# generate correct specfile for current ver-rel
sed "s/__ELOGVER__/${version}/;s/__ELOGREL__/${release}/;s/__GIT__/$REV/" elog.spec.template > elog.spec
# add elog.spec in archive
cp -p elog.spec $dir/
# create elog-x.xx-y.tar.gz file
echo Creating archive...
tar -czf /tmp/$archive -C /tmp/ elog-$version-$release/
# remove temporary files
rm -Rf $dir
# transfer archive
echo Transfer archive...
[ ! -d ~/rpmbuild/SOURCES ] && mkdir -p ~/rpmbuild/SOURCES
cp /tmp/$archive ~/rpmbuild/SOURCES/$archive
# if running on at PSI copy to download area
if (`hostname` == 'elog01.psi.ch') then
if ( -d ~ritt/html/elog/download/tar ) then
echo "Copy tar file to download area..."
cp -v /tmp/$archive ~ritt/html/elog/download/tar/elog-$version-$release.tar.gz
cp -v /tmp/$archive ~ritt/html/elog/download/tar/elog-latest.tar.gz
cp -vf doc/ChangeLog ~ritt/html/elog/download/ChangeLog
endif
# define Factory Packager
# set BUILDOPTS="${BUILDOPTS} --define "\""packager Stefan Ritt <stefan.ritt@psi.ch>"\"""
endif
rm -f /tmp/$archive
echo Cleanup $version-$release rpms
rm -f ~/rpmbuild/RPMS/*/elog*${version}-${release}*.rpm
rm -f ~/rpmbuild/SRPMS/elog*${version}-${release}*.rpm
# building RPMs
echo Build RPMs...
if (`hostname` == 'elog01.psi.ch') then
rpmbuild -ba ${BUILDOPTS} --define "factorydate ${fdate}" \
--define "elogver ${version}" --define "elogrel ${release}" \
--define "packager Stefan Ritt <stefan.ritt@psi.ch>" elog.spec || exit $?
else
rpmbuild -ba ${BUILDOPTS} --define "factorydate ${fdate}" \
--define "elogver ${version}" --define "elogrel ${release}" elog.spec || exit $?
endif
# if running on at PSI copy to download area
if (`hostname` == 'elog01.psi.ch') then
if ( -d ~ritt/html/elog/download/tar ) then
echo "Copy rpm file to download area..."
cp -v ~/rpmbuild/RPMS/x86_64/elog*rpm ~ritt/html/elog/download/RPMS/
cp -v ~/rpmbuild/RPMS/x86_64/elog-$version-$release${dist}.x86_64.rpm ~ritt/html/elog/download/RPMS/elog-latest${dist}.x86_64.rpm
cp -v ~/rpmbuild/SRPMS/elog*rpm ~ritt/html/elog/download/SRPMS/
cp -v ~/rpmbuild/SRPMS/elog-$version-$release${dist}.src.rpm ~ritt/html/elog/download/SRPMS/elog-latest${dist}.src.rpm
endif
endif