From ef03f51f5297be008fdda4eff0dc995d88149f3c Mon Sep 17 00:00:00 2001 From: vincents Date: Fri, 23 Sep 2011 10:06:28 +0000 Subject: [PATCH] lazarus rpm: added create rpm script that uses mock to build in a chroot environment git-svn-id: trunk@32471 - --- .gitattributes | 1 + tools/install/rpm/create_lazarus_rpm.sh | 99 +++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100755 tools/install/rpm/create_lazarus_rpm.sh diff --git a/.gitattributes b/.gitattributes index ce640a1fba..ba0074708a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6069,6 +6069,7 @@ tools/install/patches/readme.txt svneol=native#text/plain tools/install/patches/windres-2.2.2.patch svneol=native#text/plain tools/install/replace_in_files.pl -text svneol=native#application/x-perl tools/install/rpm/create_gtk1_links.sh svneol=native#text/plain +tools/install/rpm/create_lazarus_rpm.sh svneol=native#text/plain tools/install/rpm/create_nonroot_rpmmacros.sh svneol=native#text/plain tools/install/rpm/fpc-src.spec svneol=native#text/plain tools/install/rpm/fpc.spec.template svneol=native#text/plain diff --git a/tools/install/rpm/create_lazarus_rpm.sh b/tools/install/rpm/create_lazarus_rpm.sh new file mode 100755 index 0000000000..df0c989f25 --- /dev/null +++ b/tools/install/rpm/create_lazarus_rpm.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +# note: this script uses Fedora mock to build the lazarus rpm +# in a chroot environment + +set -x +set -e +set -u + +#------------------------------------------------------------------------------ +# parse parameters +#------------------------------------------------------------------------------ +Usage="Usage: $0 [append-revision] [snapshot]" + +LazSrcDir=$1 +shift +if [ "x$LazSrcDir" = "x" ]; then + echo $Usage + exit -1 +fi + +if [ ! -d $LazSrcDir/lcl ]; then + echo "The directory $LazSrcDir does not look like a lazarus source directory" + exit -1 +fi + +if [ ! -d $LazSrcDir/.svn ]; then + echo "The directory $LazSrcDir does not look like a svn working directory" + exit -1 +fi + +FPCFullVersion=$1 +shift +if [ "x$FPCFullVersion" = "x" ]; then + echo $Usage + exit -1 +fi + +cd $(dirname $0) +if [ "$1" = "append-revision" ]; then + LazVersionPostfix=$(../get_svn_revision_number.sh $LazSrcDir) + if [ -n "$LazVersionPostfix" ]; then + LazVersionPostfix=.$LazVersionPostfix + fi + shift +else +LazVersionPostfix= +fi + +LazVersion=$(../get_lazarus_version.sh)$LazVersionPostfix +if [ "$1" = "snapshot" ]; then + LazRelease=`date +%Y%m%d` +else + LazRelease=0 +fi + +RPMDIR=$(./get_rpm_source_dir.sh) +RPMARCH=$(rpm --eval "%{_arch}") +MOCKCONFIG=fedora-15-$RPMARCH + +FPCRPM=$RPMDIR/RPMS/$RPMARCH/fpc-$FPCFullVersion-0.$RPMARCH.rpm +if [ ! -f $FPCRPM ]; then + echo ERROR: fpc rpm $FPCRPM not available + exit +fi + +LAZSPEC=$RPMDIR/SPECS/lazarus-$LazVersion-$LazRelease.spec +Src=lazarus-$LazVersion-$LazRelease.tar.gz +SrcTGZ=$RPMDIR/SOURCES/$Src + +#create lazarus spec file +cat lazarus.spec.template | \ + sed -e "s/LAZVERSION/$LazVersion/g" \ + -e "s/LAZRELEASE/$LazRelease/g" \ + -e "s/FPCVERSION/$FPCFullVersion/g" \ + -e "s/FPCSRCVERSION/$FPCFullVersion/g" \ + > $LAZSPEC + +#create lazarus source tgz +../create_lazarus_export_tgz.sh $SrcTGZ + +#init mock environment +mock -r $MOCKCONFIG --init + +#install fpc in mock +mock -r $MOCKCONFIG --install $FPCRPM + +#build lazarus source rpm +rpmbuild --verbose -bs --nodeps $LAZSPEC + +#build lazarus rpm +mock -r $MOCKCONFIG --no-clean --installdeps --rebuild $RPMDIR/SRPMS/lazarus-$LazVersion-$LazRelease.src.rpm + +#copy result into non-root rpm repository +cp /var/lib/mock/$MOCKCONFIG/result/*.src.rpm $RPMDIR/SRPMS/ +cp /var/lib/mock/$MOCKCONFIG/result/*.$RPMARCH.rpm $RPMDIR/RPMS/$RPMARCH/ + +echo "The new rpm can be found at $RPMDIR/RPMS/$RPMARCH/lazarus-$LazVersion-$LazRelease.$RPMARCH.rpm" + +