Files
lazarus-ccr/applications/fpbrowser/build/build_package.sh

265 lines
4.8 KiB
Bash
Raw Normal View History

#!/bin/sh
#
# This script generates packages for the Lazarus Image Editor
#
##################################
# Constants
##################################
PRODUCT="Lazarus Image Editor"
VERSION="0.9"
OS="linux"
EXENAME="lazimageeditor"
TARGET_DIR="./$EXENAME-$OS-$VERSION"
TARGET_TAR="$EXENAME-$OS-$VERSION.tar"
TARGET_ZIP="$EXENAME-$VERSION.zip"
# DEBIAN_USR_DIR=/home/felipe/Programas/magnifier/build/usr
##################################
# Builds a binary tar package
##################################
BuildBinary ()
{
# Goes to the root directory
cd ..
# Builds the software
# ~/Programas/lazarus/lazbuild $EXENAME.lpi
strip --strip-all $EXENAME
# Creates main directory
mkdir $TARGET_DIR/
mkdir $TARGET_DIR/Images
# Copies files to the directory
cp ./$EXENAME $TARGET_DIR/
cp ./install.sh $TARGET_DIR/
cp ./Images/*.png $TARGET_DIR/Images/
# Creates the archive
tar -cvf $TARGET_TAR $TARGET_DIR/
bzip2 $TARGET_TAR
# Clean up
rm -rf $TARGET_DIR/
cd build
return
}
##################################
# Creates a source zip package
##################################
SourcePackage ()
{
# Goes to the root directory of the magnifier
cd ..
# Clean up
echo "Clean up"
./clean.sh
rm -rf ../magnifier-$VERSION/
# We use SVN export to get rid of the heavy svn files
# copies all files to a new temporary directory
echo "svn export ./ ../magnifier-$VERSION/"
svn export ./ ../magnifier-$VERSION/
# Creates the package
echo "zip -r ../$TARGET_ZIP ../magnifier-$VERSION/"
zip -rv ../$TARGET_ZIP ../magnifier-$VERSION/
# Clean up
echo "Clean up"
rm -rf ../magnifier-$VERSION/
cd build
return
}
##################################
# Set up the RPM build environment
##################################
CreateRPMEnvironment ()
{
# Creates the directory structure
mkdir $HOME/RPM
mkdir $HOME/RPM/BUILD # This directory is utilized by RPM to build the package.
mkdir $HOME/RPM/RPMS # Here you can find binary RPMs after you build them.
mkdir $HOME/RPM/SOURCES # Place your compressed tar files and patches here.
mkdir $HOME/RPM/SPECS # Place all your spec files here.
mkdir $HOME/RPM/SRPMS # Here you can find source RPMs after you build them.
# rpmbuild environment file
touch $HOME/.rpmmacros
echo "%_topdir /home/felipe/RPM/" >> $HOME/.rpmmacros
echo "%_tmppath /home/felipe/tmp" >> $HOME/.rpmmacros
echo "" >> $HOME/.rpmmacros
echo "%_signature gpg" >> $HOME/.rpmmacros
echo "%_gpg_name Mandrakelinux" >> $HOME/.rpmmacros
echo "%_gpg_path ~/.gnupg" >> $HOME/.rpmmacros
# Spec file
cp magnifier.spec $HOME/RPM/SPECS/
# Zip file
cp ../../$TARGET_ZIP $HOME/RPM/SOURCES/
return
}
##################################
# Builds a binary and source RPM package
##################################
RPMPackage ()
{
# Set up the RPM build environment
CreateRPMEnvironment
# now build it
echo "rpmbuild -ba --clean $HOME/RPM/SPECS/magnifier.spec"
rpmbuild -ba --clean $HOME/RPM/SPECS/magnifier.spec
return
}
##################################
# Creates a Debian package
##################################
DebianPackage ()
{
# Goes to the root directory of the magnifier
cd ..
# Builds the software
# ./make.sh
strip --strip-all magnifier
# Returns to build dir
cd build
# Creates the control.tar.gz file
tar -cvf control.tar control
gzip control.tar
# Creates the data.tar.gz file
mkdir $DEBIAN_USR_DIR
mkdir $DEBIAN_USR_DIR/bin
mkdir $DEBIAN_USR_DIR/share
mkdir $DEBIAN_USR_DIR/share/magnifier
cd ..
cp ./magnifier $DEBIAN_USR_DIR/bin/vmg
cp $RESOURCES $DEBIAN_USR_DIR/share/magnifier
cd $MANUALS_DIR
cp $MANUALS $DEBIAN_USR_DIR/share/magnifier
cd ..
cd build
tar -cvf data.tar $DEBIAN_USR_DIR
gzip data.tar
# Creates the package
mkdir DEBIAN
cp control DEBIAN/
cp data.tar.gz DEBIAN/
cp debian-binary DEBIAN/
dpkg -b ./ magnifier_3.4-0_i386.deb
# Clean up
echo "Clean up"
rm -rf $DEBIAN_USR_DIR
rm -rf ./DEBIAN
rm -rf data.tar.gz
rm -rf control.tar.gz
cd ..
./clean.sh
cd build
return
}
##################################
# Main section
##################################
echo "========================================================"
echo " Lazarus Image Editor build script"
echo "========================================================"
echo ""
echo " Please select which package you would like to build:"
echo ""
echo " 1 > Linux Gtk2 binary tar.bz2 package"
echo " 3 > Source .zip package"
echo " 4 > RPM package (source and binary)"
echo " 5 > Debian package"
echo " 0 > Exit"
read command
case $command in
1) BuildBinary;;
3) SourcePackage;;
4) RPMPackage;;
5) DebianPackage;;
0) exit 0;;
*) echo "Invalid command"
exit 0;;
esac