mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-11 06:33:38 +01:00
improved fpc deb script
git-svn-id: trunk@9408 -
This commit is contained in:
parent
2a310d62b2
commit
f5573b0b49
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -2485,6 +2485,7 @@ tools/install/debian_fpc/changelog svneol=native#text/plain
|
|||||||
tools/install/debian_fpc/changelog.Debian svneol=native#text/plain
|
tools/install/debian_fpc/changelog.Debian svneol=native#text/plain
|
||||||
tools/install/debian_fpc/control svneol=native#text/plain
|
tools/install/debian_fpc/control svneol=native#text/plain
|
||||||
tools/install/debian_fpc/copyright svneol=native#text/plain
|
tools/install/debian_fpc/copyright svneol=native#text/plain
|
||||||
|
tools/install/debian_fpc/postinst svneol=native#text/plain
|
||||||
tools/install/do_nothing.sh svneol=native#text/plain
|
tools/install/do_nothing.sh svneol=native#text/plain
|
||||||
tools/install/download_and_build_fpc_rpm.sh svneol=native#text/plain
|
tools/install/download_and_build_fpc_rpm.sh svneol=native#text/plain
|
||||||
tools/install/file_filter.sh svneol=native#text/plain
|
tools/install/file_filter.sh svneol=native#text/plain
|
||||||
|
|||||||
@ -3,19 +3,24 @@
|
|||||||
set -x
|
set -x
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# ToDo: check libgpm
|
|
||||||
# ToDo: check if ppcxxx is installed
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# parse parameters
|
# parse parameters
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
Usage="Usage: $0 [nodocs] [notemp] <FPCSrcDir> [release]"
|
Usage="Usage: $0 fpc|fpc-src [notemp] <FPCSrcDir> [release]"
|
||||||
|
|
||||||
WithDOCS=yes
|
# what package should be built ...
|
||||||
if [ "x$1" = "xnodocs" ]; then
|
PackageName=""
|
||||||
WithDOCS=no
|
if [ "$1" = fpc ]; then
|
||||||
shift
|
PackageName=$1
|
||||||
fi
|
fi
|
||||||
|
if [ "$1" = fpc-src ]; then
|
||||||
|
PackageName=$1
|
||||||
|
fi
|
||||||
|
if [ "x$PackageName" = "x" ]; then
|
||||||
|
echo $Usage
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
|
||||||
WithTempDir=yes
|
WithTempDir=yes
|
||||||
if [ "x$1" = "xnotemp" ]; then
|
if [ "x$1" = "xnotemp" ]; then
|
||||||
@ -46,15 +51,13 @@ fi
|
|||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# quick tests
|
# quick tests
|
||||||
|
|
||||||
./check_fpc_dependencies.sh
|
./check_fpc_dependencies.sh
|
||||||
|
|
||||||
CurDir=`pwd`
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# patching
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# retrieve the version information
|
# retrieve the version information
|
||||||
|
|
||||||
echo -n "getting FPC version from local svn ..."
|
echo -n "getting FPC version from local svn ..."
|
||||||
VersionFile="$FPCSrcDir/compiler/version.pas"
|
VersionFile="$FPCSrcDir/compiler/version.pas"
|
||||||
CompilerVersion=`cat $VersionFile | grep ' *version_nr *=.*;' | sed -e 's/[^0-9]//g'`
|
CompilerVersion=`cat $VersionFile | grep ' *version_nr *=.*;' | sed -e 's/[^0-9]//g'`
|
||||||
@ -67,14 +70,20 @@ if [ "$CompilerPatch" != "0" ]; then
|
|||||||
fi
|
fi
|
||||||
echo " $CompilerVersionStr-$FPCRelease"
|
echo " $CompilerVersionStr-$FPCRelease"
|
||||||
|
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# download/export fpc svn if needed
|
||||||
|
|
||||||
SrcTGZ=$(pwd)/fpc-$FPCVersion-$FPCRelease.tar.gz
|
SrcTGZ=$(pwd)/fpc-$FPCVersion-$FPCRelease.tar.gz
|
||||||
|
|
||||||
# download/export fpc svn if needed
|
|
||||||
if [ ! -f $SrcTGZ ]; then
|
if [ ! -f $SrcTGZ ]; then
|
||||||
./create_fpc_export_tgz.sh $FPCSrcDir $SrcTGZ
|
./create_fpc_export_tgz.sh $FPCSrcDir $SrcTGZ
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
# create a temporary copy of the fpc sources to patch it
|
# create a temporary copy of the fpc sources to patch it
|
||||||
|
|
||||||
TmpDir=/tmp/fpc_patchdir
|
TmpDir=/tmp/fpc_patchdir
|
||||||
if [ "$WithTempDir" = "yes" ]; then
|
if [ "$WithTempDir" = "yes" ]; then
|
||||||
if [ -d $TmpDir ]; then
|
if [ -d $TmpDir ]; then
|
||||||
@ -92,6 +101,22 @@ else
|
|||||||
TmpDir=$FPCSrcDir
|
TmpDir=$FPCSrcDir
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# setup variables
|
||||||
|
|
||||||
|
CurDir=`pwd`
|
||||||
|
Arch=i386
|
||||||
|
FPCBuildDir=$TmpDir/fpc_build
|
||||||
|
FPCDeb=$CurDir/${PackageName}_$FPCVersion-${FPCRelease}_$Arch.deb
|
||||||
|
ResourceDir=$CurDir/debian_$PackageName
|
||||||
|
DebianInstallDir=$FPCBuildDir/usr
|
||||||
|
DebianRulezDir=$FPCBuildDir/DEBIAN/
|
||||||
|
DebianDocDir=$FPCBuildDir/usr/share/doc/$PackageName
|
||||||
|
DebianSourceDir=$FPCBuildDir/usr/share/fpcsrc
|
||||||
|
Date=`date --rfc-822`
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# patch sources
|
# patch sources
|
||||||
|
|
||||||
@ -101,33 +126,9 @@ ReplaceScript=replace_in_files.pl
|
|||||||
echo "set version numbers in all Makefiles ..."
|
echo "set version numbers in all Makefiles ..."
|
||||||
perl replace_in_files.pl -sR -f '=\d.\d.\d' -r =$CompilerVersionStr -m 'Makefile(.fpc)?' $FPCSrcDir/*
|
perl replace_in_files.pl -sR -f '=\d.\d.\d' -r =$CompilerVersionStr -m 'Makefile(.fpc)?' $FPCSrcDir/*
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
|
|
||||||
PackageName=fpc-src
|
|
||||||
FPCBuildDir=$TmpDir/fpc_build
|
|
||||||
FPCDeb=$CurDir/$PackageName-$FPCVersion-$FPCRelease.deb
|
|
||||||
ResourceDir=$CurDir/debian_$PackageName
|
|
||||||
DebianLibDir=$FPCBuildDir/usr/lib/fpc
|
|
||||||
DebianRulezDir=$FPCBuildDir/DEBIAN/
|
|
||||||
DebianDocDir=$FPCBuildDir/usr/share/doc/$PackageName
|
|
||||||
DebianSourceDir=$FPCBuildDir/usr/share/fpcsrc
|
|
||||||
Date=`date --rfc-822`
|
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# copy fpc sources
|
# create rulez and files
|
||||||
mkdir -p $DebianSourceDir
|
|
||||||
cp -a $FPCSrcDir/* $DebianSourceDir/
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
# build fpc
|
|
||||||
cd $TmpDir
|
|
||||||
# TODO make all
|
|
||||||
cd -
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
# build fpc-src deb
|
|
||||||
|
|
||||||
# change debian files
|
# change debian files
|
||||||
mkdir -p $DebianDocDir
|
mkdir -p $DebianDocDir
|
||||||
@ -147,6 +148,13 @@ echo "" >> $File
|
|||||||
cat $ResourceDir/changelog >> $File
|
cat $ResourceDir/changelog >> $File
|
||||||
gzip --best $File
|
gzip --best $File
|
||||||
|
|
||||||
|
# create postinst if needed
|
||||||
|
if [ -f "$ResourceDir/postinst" ]; then
|
||||||
|
echo "creating DEBIAN/postinst file"
|
||||||
|
cat $ResourceDir/postinst | sed -e "s/FPCVERSION/$FPCVersion/g" > $DebianRulezDir/postinst
|
||||||
|
chmod a+x $DebianRulezDir/postinst
|
||||||
|
fi
|
||||||
|
|
||||||
# create changelog.Debian file
|
# create changelog.Debian file
|
||||||
echo "creating changelog.Debian file ..."
|
echo "creating changelog.Debian file ..."
|
||||||
File=$DebianDocDir/changelog.Debian
|
File=$DebianDocDir/changelog.Debian
|
||||||
@ -157,10 +165,32 @@ gzip --best $File
|
|||||||
echo "creating copyright file ..."
|
echo "creating copyright file ..."
|
||||||
cp $ResourceDir/copyright $DebianDocDir/
|
cp $ResourceDir/copyright $DebianDocDir/
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if [ "$PackageName" = "fpc-src" ]; then
|
||||||
|
# copy fpc sources
|
||||||
|
mkdir -p $DebianSourceDir
|
||||||
|
cp -a $FPCSrcDir/* $DebianSourceDir/
|
||||||
|
fi
|
||||||
|
if [ "$PackageName" = "fpc" ]; then
|
||||||
|
# build fpc
|
||||||
|
mkdir $FPCBuildDir/etc
|
||||||
|
cd $FPCSrcDir
|
||||||
|
make all
|
||||||
|
mkdir -p $DebianInstallDir
|
||||||
|
make install INSTALL_PREFIX=$DebianInstallDir
|
||||||
|
cd -
|
||||||
|
fi
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
# creating deb
|
# creating deb
|
||||||
|
|
||||||
cd $TmpDir
|
cd $TmpDir
|
||||||
fakeroot dpkg-deb --build $FPCBuildDir
|
fakeroot dpkg-deb --build $FPCBuildDir
|
||||||
mv $FPCBuildDir.deb $FPCDeb
|
mv $FPCBuildDir.deb $FPCDeb
|
||||||
|
|
||||||
|
echo "The new deb can be found at $FPCDeb"
|
||||||
|
echo "You can test it with lintian."
|
||||||
|
|
||||||
# end.
|
# end.
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,8 @@ Section: devel
|
|||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Mattias Gaertner <mattias@cvs.freepascal.org>
|
Maintainer: Mattias Gaertner <mattias@cvs.freepascal.org>
|
||||||
Architecture: i386
|
Architecture: i386
|
||||||
|
Pre-Depends: debhelper (>= 4.2), libgpmg1-dev
|
||||||
|
Replaces: fp-compiler, fp-utils, fp-ide, fp-units-rtl, fp-units-base, fp-units-fcl, fp-units-fv, fp-units-gtk, fp-units-gtk2, fp-units-gnome1, fp-units-db, fp-units-gfx, fp-units-net, fp-units-misc
|
||||||
Description: Free Pascal Compiler
|
Description: Free Pascal Compiler
|
||||||
Freepascal is a free 32/64bit Pascal Compiler. It comes with a
|
Freepascal is a free 32/64bit Pascal Compiler. It comes with a
|
||||||
run-time library fully compatible with Turbo Pascal 7.0 and nearly
|
run-time library fully compatible with Turbo Pascal 7.0 and nearly
|
||||||
|
|||||||
2
tools/install/debian_fpc/postinst
Executable file
2
tools/install/debian_fpc/postinst
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
sh /usr/lib/fpc/FPCVERSION/samplecfg /usr/lib/fpc/\$fpcversion/ /etc
|
||||||
Loading…
Reference in New Issue
Block a user