diff --git a/applications/tappytux/build/build_package.sh b/applications/tappytux/build/build_package.sh new file mode 100755 index 000000000..f2ce85d26 --- /dev/null +++ b/applications/tappytux/build/build_package.sh @@ -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 diff --git a/applications/tappytux/build/createbundle.sh b/applications/tappytux/build/createbundle.sh new file mode 100755 index 000000000..f78d98e49 --- /dev/null +++ b/applications/tappytux/build/createbundle.sh @@ -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 '' >$plistfile + echo '' >>$plistfile + echo '' >>$plistfile + echo '' >>$plistfile + echo ' CFBundleDevelopmentRegion' >>$plistfile + echo ' English' >>$plistfile + echo ' CFBundleExecutable' >>$plistfile + echo ' '$appname'' >>$plistfile + echo ' CFBundleIconFile' >>$plistfile + echo ' macicon.icns' >>$plistfile + echo ' CFBundleIdentifier' >>$plistfile + echo ' org.magnifier.magnifier' >>$plistfile + echo ' CFBundleInfoDictionaryVersion' >>$plistfile + echo ' 6.0' >>$plistfile + echo ' CFBundlePackageType' >>$plistfile + echo ' APPL' >>$plistfile + echo ' CFBundleSignature' >>$plistfile + echo ' MAG#' >>$plistfile + echo ' CFBundleVersion' >>$plistfile + echo ' 1.0' >>$plistfile + echo '' >>$plistfile + echo '' >>$plistfile +fi + +cd build