#!/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