151 lines
4.3 KiB
Tcsh
Executable File
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
|