rendered paste body#!/bin/bash
PACKAGES="fusion ccs-gconf"
COMPIZREMOVE="kde fuse"
PREFIX="/usr/local"
DISTRO="ubuntu-edgy"
ITEMS="$ITEMS fusion/libraries/bcop";
ITEMS="$ITEMS compiz";
ITEMS="$ITEMS fusion/compizconfig/libcompizconfig";
ITEMS="$ITEMS fusion/compizconfig/compizconfig-python";
ITEMS="$ITEMS fusion/compizconfig/compizconfig-backend-gconf";
ITEMS="$ITEMS fusion/compizconfig/compizconfig-backend-kconfig";
ITEMS="$ITEMS fusion/compizconfig/ccsm";
ITEMS="$ITEMS fusion/plugins/3d";
ITEMS="$ITEMS fusion/plugins-main";
ITEMS="$ITEMS fusion/plugins-extra";
ITEMS="$ITEMS fusion/plugins-unsupported";
ITEMS="$ITEMS users/3v1n0/compiz-fusion-debian";
ITEMS="$ITEMS users/kristian/zoom";
#ITEMS="$ITEMS fusion/plugins/thumbnail";
#ITEMS="$ITEMS fusion/plugins/ring";
#ITEMS="$ITEMS fusion/plugins/showdesktop";
#ITEMS="$ITEMS fusion/plugins/group";
#ITEMS="$ITEMS fusion/plugins/expo";
#ITEMS="$ITEMS users/raof/radial-switcher";
#ITEMS="$ITEMS fusion/plugins/gears";
#ITEMS="$ITEMS fusion/plugins/vpswitch";
#ITEMS="$ITEMS fusion/plugins/wall";
#ITEMS="$ITEMS fusion/plugins/resizeinfo";
#ITEMS="$ITEMS fusion/plugins/animation";
#ITEMS="$ITEMS fusion/plugins/cubereflex";
#ITEMS="$ITEMS fusion/misc/yags";
#ITEMS="$ITEMS users/maniac/scalefilter";
#ITEMS="$ITEMS fusion/plugins/goto-viewport";
#ITEMS="$ITEMS fusion/decorators/emerald";
#ITEMS="$ITEMS fusion/plugins/mswitch";
#ITEMS="$ITEMS fusion/plugins-unsupported";
#ITEMS="$ITEMS fusion/plugins/wallpaper";
#ITEMS="$ITEMS fusion/plugins/scaleaddon";
#ITEMS="$ITEMS fusion/plugins/reflex";
#ITEMS="$ITEMS fusion/plugins/splash";
#ITEMS="$ITEMS fusion/plugins/snow";
#ITEMS="$ITEMS fusion/plugins/text";
#ITEMS="$ITEMS fusion/plugins/trailfocus";
#ITEMS="$ITEMS fusion/plugins/tile";
#ITEMS="$ITEMS fusion/plugins/snap";
#ITEMS="$ITEMS fusion/plugins/put";
#ITEMS="$ITEMS fusion/plugins/opacify";
#ITEMS="$ITEMS fusion/plugins/neg";
#ITEMS="$ITEMS fusion/plugins/mblur";
#ITEMS="$ITEMS fusion/plugins/jpeg";
#ITEMS="$ITEMS fusion/plugins/fakeargb";
#ITEMS="$ITEMS fusion/plugins/fadedesktop";
#ITEMS="$ITEMS fusion/plugins/extrawm";
#ITEMS="$ITEMS fusion/plugins/crashhandler";
#ITEMS="$ITEMS fusion/plugins/bench";
#ITEMS="$ITEMS fusion/plugins/addhelper";
#ITEMS="$ITEMS fusion/plugins/firepaint";
#ITEMS="$ITEMS fusion/plugins/winrules";
#ITEMS="$ITEMS fusion/misc/makefile";
#ITEMS="$ITEMS fusion/plugins-wip";
#ITEMS="$ITEMS fusion/plugins/compiz-scheme";
#ITEMS="$ITEMS fusion/plugins/screencasting";
#ITEMS="$ITEMS users/keeguon/compiz-icon";
#ITEMS="$ITEMS fusion/plugins/viewport-switcher";
#ITEMS="$ITEMS users/kristian/compiz-scripts";
#ITEMS="$ITEMS fusion/decorators/emerald-themes";
# Compiz autogen.sh arguments selector
for p in $COMPIZREMOVE ; do
if [ $p = "gnome" ]; then
COMPIZARGS="$COMPIZARGS --enable-kde --disable-gtk --enable-librsvg"
elif [ $p = "kde" ]; then
COMPIZARGS="$COMPIZARGS --enable-gtk --disable-kde --enable-librsvg"
fi
done
COMPIZARGS="$COMPIZARGS --disable-inotify"
COMPIZARGS="$COMPIZARGS --disable-fuse"
# Repositories
REPO="git://annongit.opencompositing.org/"
# Check for git
if [ -z "$(which git-clone)" ]; then
echo "You must have GIT installed in order to run this script. Install git-core package."
exit 1;
fi
# If $1 directory is present, pull repo. If not, clone it.
function clone
{
pkgName=`echo $1 | sed 's/.*\///g'`
OLDPWD=$PWD
if [ -d $pkgName ]; then
cd $pkgName
echo -e "\nUpdating $pkgName";
git-pull > $OLDPWD/.logs/$pkgName.pull.log
cd $OLDPWD
else
echo -e "\nCloning $pkgName";
git-clone $2$1
fi
}
# If autogen.sh exist, configure installation
function do_autogen
{
if [ $1 = "compiz" ]; then
AUTOGEN_OPTIONS="$COMPIZARGS"
else
AUTOGEN_OPTIONS=""
fi
OLDPWD=$PWD
if [ -f $1/autogen.sh ]; then
echo -e "\tConfiguring $1..."
cd $1
echo -e "\tExecuting autogen.sh --prefix=$PREFIX $AUTOGEN_OPTIONS in $1..."
if [ -x configure ]; then
sudo rm -f configure
sudo rm -rf autom4te.cache
fi
if [ -e Makefile ]; then
sudo rm -f Makefile
fi
./autogen.sh --prefix=$PREFIX $AUTOGEN_OPTIONS
cd $OLDPWD
else
echo $1/autogen.sh not found ! bye ...
exit
fi
}
# Call make on each $1
function do_make
{
OLDPWD=$PWD
cd $1 >/dev/null 2>&1
case "$2" in
install)
echo -e "\tInstalling $1..."
echo -e "\tExecuting make"
make
if [ -e autogen.sh ]; then
echo -e "\tExecuting sudo make $2"
sudo make $2 >/dev/null 2>&1
else
echo -e "\tExecuting make $2"
make $2 >/dev/null 2>&1
fi
;;
uninstall)
echo -e "\tUninstalling $1..."
if [ -e autogen.sh ]; then
echo -e "\tExecuting sudo make $2"
sudo make $2 >/dev/null 2>&1
else
echo -e "\tExecuting make $2"
make $2 >/dev/null 2>&1
fi
echo -e "\tExecuting make clean"
make clean >/dev/null 2>&1
esac
cd $OLDPWD >/dev/null 2>&1
}
# Create a clean logs folder for each time makeccc is executed
if [ -d .logs ]; then
rm -rf .logs
fi
mkdir .logs
# makeccc action selector
case "$1" in
all)
reset
echo -en "\n***************Cloning\n"
for a in $ITEMS ; do
echo -en ", "`echo $a | sed 's/.*\///g'`
#clone $a $REPO >/dev/null 2>&1
echo -en "... done"
done
echo -en "\n\n***************Install\n"
for a in $ITEMS; do
pkgName=`echo $a | sed 's/.*\///g'`
# if [ $SpkgName = "screencasting" ]; then
# do_make $a/player $1
# do_make $a/rsc2raw $1
# do_make $a/plugin $1
# #NEED HACK ON LINE 122
# ARCHIVE="$pkgName/plugin/screencasting.c"
# sed -i -e 's/fopen("/home/roico/screencast.rsc"/fopen("/home/$USER/screencast.rsc"/g' $ARCHIVE;
# OLDPWD=$PWD
# echo -en "\n[$pkgName]\n"
# do_autogen $pkgName
# cd $pkgName >/dev/null
# cp -r $OLDPWD/compiz-fusion-debian/$pkgName/debian ./
# sudo dpkg-buildpackage -d -rfakeroot
# echo result :$?
# cd $OLDPWD >/dev/null
# find -name \*$pkgName\*.deb -exec sudo dpkg -i {} \;
do_autogen $pkgName
do_make $pkgName "install"
done
;;
clone)
clear
# Clone Compiz
clone compiz $REPO
# Delete compiz-script folder because of fixes applied on this script
rm -rf compiz-scripts
# Clone CompComm
for a in $ITEMS ; do
clone $a $REPO
done
echo -e "\n"
;;
install)
clear
sudo echo "Welcome to Compiz/CompComm"
# Distro specific fixes
if [ $DISTRO = "ubuntu-feisty" ] || [ $DISTRO = "kubuntu-feisty" ]; then
# bash fix
sudo ln -sf /bin/bash /bin/sh
fi
# Configure and install Compiz
# do_autogen compiz
# do_make compiz $1
# Configure and install CompComm
for a in $ITEMS; do
pkgName=`echo $a | sed 's/.*\///g'`
echo $pkgName
if [ $pkgName = "screencasting" ]; then
do_make $pkgName/player $1
do_make $pkgName/rsc2raw $1
do_make $pkgName/plugin $1
#NEED HACK ON LINE 122
ARCHIVE="$pkgName/plugin/screencasting.c"
sed -i -e 's/fopen("/home/roico/screencast.rsc"/fopen("/home/$USER/screencast.rsc"/g' $ARCHIVE;
fi
if [ $pkgName = "plugins-main" ]; then
do_autogen $pkgName
exit
else
echo rien
# do_autogen $pkgName
# do_make $pkgName $1
fi
done
# Distro specific fixes
#if [ $DISTRO = "ubuntu-feisty" ] || [ $DISTRO = "kubuntu-feisty" ]; then
# Undo bash fix
# sudo ln -sf /bin/dash /bin/sh
# Fix for libccs library
# if [ ! -h /usr/lib/libccs.so.0 ]; then
# sudo ln -s /usr/local/lib/libccs.so.0 /usr/lib/libccs.so.0
# fi
#
# Fix for cube sides number
# gconftool-2 --type int --set /app/compiz/general/screen0/options/hsize 4
# fi
# Install and patch Kristian compiz wrapper
# ARCHIVE="compiz-scripts/manager/compiz-manager"
# sed -i -e 's/VERBOSE="no"/VERBOSE="yes"/g' $ARCHIVE
# sed -i -e 's/DELAY="5"/DELAY="1"/g' $ARCHIVE
# sudo cp $ARCHIVE /usr/bin/
# Version notes
echo -e "\nRun compiz-manager to load Compiz/CompComm."
echo " "
echo "Run ccs-settings o ccsm (preffered) to configure"
;;
uninstall)
# Uninstall Compiz
do_make compiz $1
# Uninstall CompComm
for a in $ITEMS; do
b=`echo $a | sed 's/.*\///g'`
if [ $b = "screencasting" ]; then
sudo rm ~/.compiz/plugins/screencasting.so
sudo rm ~/.compiz/metadata/screencasting.xml
else
do_make $b $1
fi
done
# Uninstalling compiz-manager
sudo rm /usr/bin/compiz-manager
sudo rm -f ~/.config/compiz-managerrc
sudo rm -rf ~/.compiz
;;
packages)
if [ $DISTRO = "ubuntu-feisty" ]; then
sudo aptitude install git gitweb automake intltool libtool libfuse-dev python-pyrex libxslt1-dev build-essential comerr-dev debhelper diffstat dpkg-dev enscript g++ g++-4.1 gawk hspell html2text intltool-debian libacl1-dev libart-2.0-dev libasound2-dev libaspell-dev libatk1.0-dev libattr1-dev libaudio-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev libavahi-compat-libdnssd1 libavahi-glib-dev libbonobo2-dev libbonoboui2-dev libbz2-dev libcairo2-dev libcroco3-dev libcupsys2-dev libdbus-1-dev libdbus-glib-1-dev libesd0-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgconf2-dev libgcrypt11-dev libgl1-mesa-dev libglade2-dev libglib2.0-dev libglu1-mesa-dev libgnome-desktop-dev libgnome-keyring-dev libgnome-window-settings-dev libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomevfs2-dev libgnutls-dev libgpg-error-dev libgsf-1-dev libgtk2.0-dev libice-dev libidl-dev libidn11-dev libjasper-1.701-dev libjpeg62-dev liblcms1-dev liblua50 liblua50-dev liblualib50 liblualib50-dev liblzo-dev libmetacity-dev libmng-dev libogg-dev libopencdk8-dev libopenexr-dev libopenexr2c2a liborbit2-dev libpango1.0-dev libpcre3 libpcre3-dev libpcrecpp0 libpng12-dev libpopt-dev librsvg2-dev libsasl2-dev libselinux1-dev libsepol1-dev libsm-dev libssl-dev libstartup-notification0-dev libstdc++6-4.1-dev libtasn1-3-dev libtiff4-dev libtiffxx0c2 libvorbis-dev libwnck-dev libx11-dev libxau-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxmu-dev libxmu-headers libxrandr-dev libxrender-dev libxres-dev libxt-dev lua50 mesa-common-dev po-debconf poster psutils quilt x11proto-composite-dev x11proto-core-dev x11proto-damage-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-resource-dev x11proto-xext-dev x11proto-xinerama-dev xtrans-dev
elif [ $DISTRO = "kubuntu-feisty" ]; then
sudo aptitude install git gitweb automake intltool libtool libfuse-dev python-pyrex libxslt1-dev build-essential comerr-dev debhelper diffstat dpkg-dev enscript g++ g++-4.1 gawk hspell html2text intltool-debian libacl1-dev libart-2.0-dev libasound2-dev libaspell-dev libatk1.0-dev libattr1-dev libaudio-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev libavahi-compat-libdnssd1 libavahi-glib-dev libbonobo2-dev libbonoboui2-dev libbz2-dev libcairo2-dev libcroco3-dev libcupsys2-dev libdbus-1-dev libdbus-glib-1-dev libesd0-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgconf2-dev libgcrypt11-dev libgl1-mesa-dev libglade2-dev libglib2.0-dev libglu1-mesa-dev libgnome-desktop-dev libgnome-keyring-dev libgnome-window-settings-dev libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomevfs2-dev libgnutls-dev libgpg-error-dev libgsf-1-dev libgtk2.0-dev libice-dev libidl-dev libidn11-dev libjasper-1.701-dev libjpeg62-dev liblcms1-dev liblua50 liblua50-dev liblualib50 liblualib50-dev liblzo-dev libmetacity-dev libmng-dev libogg-dev libopencdk8-dev libopenexr-dev libopenexr2c2a liborbit2-dev libpango1.0-dev libpcre3 libpcre3-dev libpcrecpp0 libpng12-dev libpopt-dev librsvg2-dev libsasl2-dev libselinux1-dev libsepol1-dev libsm-dev libssl-dev libstartup-notification0-dev libstdc++6-4.1-dev libtasn1-3-dev libtiff4-dev libtiffxx0c2 libvorbis-dev libwnck-dev libx11-dev libxau-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxmu-dev libxmu-headers libxrandr-dev libxrender-dev libxres-dev libxt-dev lua50 mesa-common-dev po-debconf poster psutils quilt x11proto-composite-dev x11proto-core-dev x11proto-damage-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-resource-dev x11proto-xext-dev x11proto-xinerama-dev xtrans-dev kate kcontrol kdebase-bin kdebase-data kdebase-dev kdebase-kio-plugins kdelibs-data kdelibs4-dev kdelibs4c2a kdeprint kdesdk-scripts kdesktop kfind khelpcenter kicker klipper kmenuedit konqueror konqueror-nsplugins konsole ksmserver ksplash ksysguard ksysguardd kwin gettext-kde libavahi-qt3-1 libavahi-qt3-dev libkadm55 libkonq4 libkrb5-dev libqt3-headers libqt3-mt libqt3-mt-dev qt3-dev-tools libdbus-qt-1-1c2 libdbus-qt-1-dev libarts1-dev libarts1c2a libartsc0 libartsc0-dev
fi
;;
*)
echo "Usage: $0 packages | clone | instal | uninstall"
exit 1
esac