Tappytux: Adds bundle and linux package builders
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2032 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
315ab409ed
commit
bbe3c17935
264
applications/tappytux/build/build_package.sh
Executable file
264
applications/tappytux/build/build_package.sh
Executable file
@ -0,0 +1,264 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# This script generates packages for the Lazarus Image Editor
|
||||
#
|
||||
|
||||
##################################
|
||||
# Constants
|
||||
##################################
|
||||
|
||||
PRODUCT="TappyTux"
|
||||
VERSION="0.9"
|
||||
OS="linux"
|
||||
EXENAME="tappytux"
|
||||
|
||||
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
|
104
applications/tappytux/build/createbundle.sh
Executable file
104
applications/tappytux/build/createbundle.sh
Executable file
@ -0,0 +1,104 @@
|
||||
#!/bin/sh
|
||||
# Force Bourne shell in case tcsh is default.
|
||||
#
|
||||
|
||||
#
|
||||
# Reads the bundle type
|
||||
#
|
||||
|
||||
echo "========================================================"
|
||||
echo " Bundle creation script"
|
||||
echo "========================================================"
|
||||
echo ""
|
||||
echo " Please select which kind of bundle you would like to build:"
|
||||
echo ""
|
||||
echo " 1 > Debug bundle"
|
||||
echo " 2 > Release bundle"
|
||||
echo " 0 > Exit"
|
||||
|
||||
read command
|
||||
|
||||
case $command in
|
||||
|
||||
1) ;;
|
||||
|
||||
2) ;;
|
||||
|
||||
0) exit 0;;
|
||||
|
||||
*) echo "Invalid command"
|
||||
exit 0;;
|
||||
|
||||
esac
|
||||
|
||||
#
|
||||
# Creates the bundle
|
||||
#
|
||||
|
||||
cd ..
|
||||
|
||||
appname=TappyTux
|
||||
appfolder=$appname.app
|
||||
macosfolder=$appfolder/Contents/MacOS
|
||||
plistfile=$appfolder/Contents/Info.plist
|
||||
appfile=tappytux
|
||||
|
||||
PkgInfoContents="APPLTAP#"
|
||||
|
||||
#
|
||||
if ! [ -e $appfile ]
|
||||
then
|
||||
echo "$appfile does not exist"
|
||||
elif [ -e $appfolder ]
|
||||
then
|
||||
echo "$appfolder already exists"
|
||||
else
|
||||
echo "Creating $appfolder..."
|
||||
mkdir $appfolder
|
||||
mkdir $appfolder/Contents
|
||||
mkdir $appfolder/Contents/MacOS
|
||||
mkdir $appfolder/Contents/Resources
|
||||
|
||||
#
|
||||
# For a debug bundle,
|
||||
# Instead of copying executable into .app folder after each compile,
|
||||
# simply create a symbolic link to executable.
|
||||
#
|
||||
if [ $command = 1 ]; then
|
||||
ln -s ../../../$appname $macosfolder/$appname
|
||||
else
|
||||
cp $appname $macosfolder/$appname
|
||||
fi
|
||||
|
||||
# Copy the resource files to the correct place
|
||||
svn export images $appfolder/Contents/Resources/images
|
||||
#
|
||||
# Create PkgInfo file.
|
||||
echo $PkgInfoContents >$appfolder/Contents/PkgInfo
|
||||
#
|
||||
# Create information property list file (Info.plist).
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>' >$plistfile
|
||||
echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >>$plistfile
|
||||
echo '<plist version="1.0">' >>$plistfile
|
||||
echo '<dict>' >>$plistfile
|
||||
echo ' <key>CFBundleDevelopmentRegion</key>' >>$plistfile
|
||||
echo ' <string>English</string>' >>$plistfile
|
||||
echo ' <key>CFBundleExecutable</key>' >>$plistfile
|
||||
echo ' <string>'$appname'</string>' >>$plistfile
|
||||
echo ' <key>CFBundleIconFile</key>' >>$plistfile
|
||||
echo ' <string>macicon.icns</string>' >>$plistfile
|
||||
echo ' <key>CFBundleIdentifier</key>' >>$plistfile
|
||||
echo ' <string>org.magnifier.magnifier</string>' >>$plistfile
|
||||
echo ' <key>CFBundleInfoDictionaryVersion</key>' >>$plistfile
|
||||
echo ' <string>6.0</string>' >>$plistfile
|
||||
echo ' <key>CFBundlePackageType</key>' >>$plistfile
|
||||
echo ' <string>APPL</string>' >>$plistfile
|
||||
echo ' <key>CFBundleSignature</key>' >>$plistfile
|
||||
echo ' <string>MAG#</string>' >>$plistfile
|
||||
echo ' <key>CFBundleVersion</key>' >>$plistfile
|
||||
echo ' <string>1.0</string>' >>$plistfile
|
||||
echo '</dict>' >>$plistfile
|
||||
echo '</plist>' >>$plistfile
|
||||
fi
|
||||
|
||||
cd build
|
Loading…
Reference in New Issue
Block a user