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