#!/bin/sh

. /etc/init.d/tc-functions

checkroot

export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti"
export CPPFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

TODAY=`date +%Y/%m/%d`
PACKAGE="meld"
SEP="-"
VERSION="1.5"
SUBVERSION="1"
MIRROR="http://ftp.gnome.org/pub/gnome/sources/meld/${VERSION}/"
DESCRIPTION="visual diff and merge tool"
AUTHORS="Stephen Kennedy <steve9000@users.sourceforge.net>"
HOMEPAGE="http://meld.sourceforge.net/"
LICENSE="GPL/MIT"
ME="jls_legalize (unsenepopiu at tin dot it)"
DEPS="gamin.tcz \
hicolor-icon-theme.tcz \
libglade.tcz \
libxslt.tcz \
pygtk-2.7.tcz \
shared-mime-info.tcz"
BUILDEPS="intltool.tcz \
gettext.tcz \
libiconv.tcz \
perl5.tcz \
scrollkeeper.tcz"
FLAGS=""
DOCS="usr/local/share/man"
TCUSER=`cat /etc/sysconfig/tcuser`
SRC="meld${SEP}${VERSION}.${SUBVERSION}.tar.bz2"
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${PKGDIR}/meld${SEP}${VERSION}.${SUBVERSION}"
TCEDIR="$(cat /opt/.tce_dir)"
ICON="/usr/local/share/icons/hicolor/32x32/apps/${PACKAGE}.png"

clean(){
	rm -rf ${THISDIR}/${PACKAGE}
}
environment(){
	for each in squashfs-tools-4.x.tcz compiletc.tcz ${DEPS} ${BUILDEPS}; do
		APPNAME=$(getbasefile "$each" 1)
		if [ ! -f /usr/local/tce.installed/"${APPNAME}" ]; then
			if [ ! -e ${TCEDIR}/optional/${each} ]; then
				sudo -u ${TCUSER} tce-load -w ${each}
			fi
			sudo -u ${TCUSER} tce-load -i ${TCEDIR}/optional/${each}
		fi
	done
	[ -d "${PKGDIR}" ] && rm -rf ${PKGDIR}
	mkdir -p ${PKGDIR}/tmp
	cd ${PKGDIR} 
	wget ${MIRROR}${SRC}
	tar xjf ${SRC}
}

buildit(){
	cd ${SRCDIR}
	touch /tmp/mark
	make DESTDIR=${PKGDIR}/tmp install || exit 1
}

workit(){
	if [ "`ls -A ${PKGDIR}/tmp`" ]; then
		rm /tmp/mark
	else
	cd /
	find usr/ -newer /tmp/mark -not -type d > /tmp/${PACKAGE}.list
		tar czO -T /tmp/${PACKAGE}.list | tar xzf - -C ${PKGDIR}/tmp
		rm /tmp/${PACKAGE}.list
	fi

	cd ${PKGDIR}/tmp
	rm -rf ${DOCS}

	mkdir -p usr/local/share/doc/License
	cp ${SRCDIR}/COPYING usr/local/share/doc/License/${PACKAGE}.txt

	find usr/ | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
	find usr/ | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null

	echo "X-FullPathIcon="$ICON >> usr/local/share/applications/meld.desktop

	#package specific stuff
	#locale
	mkdir -p ../locale/usr/local/share/locale
	mv usr/local/share/locale ../locale/usr/local/share
}

packageit(){
   cd ${PKGDIR}/tmp
   for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}.tcz.list
   done

   mksquashfs . ../${PACKAGE}.tcz

   cd ${PKGDIR}
   md5sum ${PACKAGE}.tcz > ${PACKAGE}.tcz.md5.txt

   for each in ${DEPS}; do echo ${each} >> ${PACKAGE}.tcz.dep; done

   size=`du -h ${PACKAGE}.tcz | cut -f 1`

cat <<EOF> ${PACKAGE}.tcz.info
Title:		${PACKAGE}.tcz
Description:	${DESCRIPTION}
Version:	${VERSION}.${SUBVERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	Meld is a visual diff and merge tool. You can compare two or
		three files and edit them in place (diffs update dynamically).
		You can compare two or three folders and launch file
		comparisons. You can browse and view a working copy from
		popular version control systems such such as CVS, Subversion,
		Bazaar-ng and Mercurial.
		---------------------
		PPI compatible
Change-log:	2009/10/26 First packging 
		2010/03/28 Recompiled & Repackaged
		2010/07/02 Update to 1.3.2
		2010/09/16 Update to 1.3.3
		2010/10/06 Update to 1.4.0
			added X-FullPathIcon in the .desktop file
			for tce.icons compatibility.
			Rebuild against python 2.6
			cause doesnn't work against 2.7.
		2010/12/29 Update to 1.5.0
Current:	${TODAY} Update to ${VERSION}.${SUBVERSION}.  
EOF

   #locale
   cd ${PKGDIR}/locale
   for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}-locale.tcz.list
   done

   mksquashfs . ../${PACKAGE}-locale.tcz

   cd ${PKGDIR}
   md5sum ${PACKAGE}-locale.tcz > ${PACKAGE}-locale.tcz.md5.txt

   echo ${PACKAGE}.tcz > ${PACKAGE}-locale.tcz.dep
   
   size=`du -h ${PACKAGE}-locale.tcz | cut -f 1`

   cat <<EOF> ${PACKAGE}-locale.tcz.info
Title:		${PACKAGE}-locale.tcz
Description:	${DESCRIPTION} locale files
Version:	${VERSION}.${SUBVERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}	
Comments:	locale files
		This extension is PPI compatible
Change-log:	2009/10/26 First packging 
		2010/03/28 Recompiled & Repackaged
		2010/07/02 Update to 1.3.2
		2010/09/16 Update to 1.3.3
Current:	2010/10/06 Update to 1.4.0
			added X-FullPathIcon in the .desktop file
			for tce.icons compatibility.
			Rebuild against python 2.6
			cause doesnn't work against 2.7.
		2010/12/29 Update to 1.5.0
Current:	${TODAY} Update to ${VERSION}.${SUBVERSION}.  

EOF
}
checkit(){
	sudo chown ${TCUSER}:staff ${THISDIR}
	cd ${PKGDIR}
	if [ ! -f /usr/local/tce.installed/submitqc ]; then
		if [ ! -e ${TCEDIR}/optional/submitqc ]; then
			sudo -u ${TCUSER} tce-load -w submitqc
		fi
		su ${TCUSER} -c "tce-load -is submitqc"
	fi
	submitqc
}
tarit(){	
	cd ${PKGDIR}
	[ -e ../${PACKAGE}$SEP$VERSION.${SUBVERSION}.tar.bz2 ] && rm ../${PACKAGE}$SEP$VERSION.${SUBVERSION}.tar.bz2
	cp ../${PACKAGE}.tcbuild .
	tar	cjvf ../${PACKAGE}$SEP$VERSION.${SUBVERSION}.tar.bz2 \
		${PACKAGE}.tcz* \
		${PACKAGE}-locale.tcz* \
		${PACKAGE}.tcbuild \
		${SRC}
}
#here we go

clean
environment
echo -n "Press Enter key."
read gagme
buildit
echo -n "Press Enter key."
read gagme
workit
echo -n "Press Enter key."
read gagme
packageit
echo -n "Press Enter key."
read gagme
checkit
tarit


