#!/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"
export CPPFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib -fvisibility=hidden"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

TODAY=`date +%Y/%m/%d`
PACKAGE="tracker"
SEP="-"
#VERSION="0.8.17"
VERSION="0.10.8"
#MIRROR="http://ftp.gnome.org/pub/GNOME/sources/tracker/0.8/"
MIRROR="http://ftp.gnome.org/pub/GNOME/sources/tracker/0.10/"
DESCRIPTION="a search engine"
AUTHORS="various"
HOMEPAGE="http://projects.gnome.org/tracker/"
LICENSE="GPL"
ME="jls_legalize <jlselgalize at gmail dot com>"
DEPS="sqlite3.tcz \
libgnome-keyring.tcz \
icu.tcz \
enca.tcz \
gtk2.tcz \
libexempi.tcz \
libgsf.tcz \
libexif.tcz \
libiconv.tcz \
taglib.tcz \
libgee.tcz \
hicolor-icon-theme.tcz"
#flac.tcz \
#libvorbis.tcz \
#xine-lib.tcz \
#gupnp-igd.tcz \
#gupnp.tcz \
#gupnp-tools.tcz \
#hal.tcz" 
#poppler.tcz \
#gstreamer.tcz"
#upower.tcz \
#vala.tcz \
BUILDDEPS="sqlite3-dev.tcz \
glib2-dev.tcz \
dbus-glib-dev.tcz \
intltool.tcz \
pango-dev.tcz \
libxml2-dev.tcz \
gtk2-dev.tcz \
libgee-dev.tcz \
icu-dev.tcz \
enca-dev.tcz \
enca.tcz \
flac-dev.tcz \
libvorbis-dev.tcz \
libgsf-dev.tcz \
poppler-dev.tcz \
taglib-dev.tcz \
libexempi-dev.tcz \
gupnp-igd-dev.tcz \
libexif-dev.tcz \
xine-lib-dev.tcz \
gudev-dev.tcz \
libproxy-2.6.tcz \
gupnp-dlna-dev.tcz" 
#libnautilus-extension-dev.tcz \
#totem-pl-parser-dev.tcz \
#NetworkManager-dev.tcz \
#libpanel-applet-dev.tcz \
#upower-dev.tcz" 
#hal-dev.tcz \
#gst-plugins-base-dev.tcz" 
#gupnp-dev.tcz \
#gupnp-igd-dev.tcz \
#gupnp-av-dev.tcz \
#gstreamer-dev.tcz"
#gst-plugins-bad-dev.tcz \
FLAGS="--prefix=/usr/local \
--enable-libvorbis \
--enable-libflac \
--disable-hal \
--disable-upower \
--enable-gstreamer-helix \
--enable-unit-tests \
--disable-functional-tests"
#--enable-network-manager \
#--enable-tracker-search-bar \
#--enable-miner-rss \
#--enable-video-extractor=gupnp-dlna \
#--disable-tracker-explorer \
#--disable-unit-tests \
DOCS=""


TCUSER=`cat /etc/sysconfig/tcuser`
SRC="${PACKAGE}${SEP}${VERSION}.tar.bz2"
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${PKGDIR}/${PACKAGE}${SEP}${VERSION}"
TCEDIR="$(cat /opt/.tce_dir)"

clean(){
	rm -rf ${THISDIR}/${PACKAGE}
}
environment(){
	for each in compiletc.tcz ${DEPS} ${BUILDDEPS}; 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}
	make clean
	./configure ${FLAGS} || exit 1 
	echo -n "Press Enter key."
	read gagme
	make || exit 1 
	make DESTDIR=${PKGDIR}/tmp install-strip || exit 1 
}

workit(){
	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=/usr/local/share/icons/hicolor/48x48/apps/${PACKAGE}.png" >> usr/local/share/applications/${PACKAGE}-needle.desktop
	echo "X-FullPathIcon=/usr/local/share/icons/hicolor/48x48/apps/${PACKAGE}.png" >> usr/local/share/applications/${PACKAGE}-preferences.desktop

cat <<EOF> usr/local/share/tracker/tracker
#!/bin/sh
[ -e /usr/local/libexec/tracker-miner-fs ] && [ -z "\$(pidof tracker-miner-fs)" ] && ( /usr/local/libexec/tracker-miner-fs ) &
[ -e /usr/local/libexec/tracker-store ] && [ -z "\$(pidof tracker-store)" ] && ( /usr/local/libexec/tracker-store ) &
EOF

	mkdir -pm 775 usr/local/tce.installed
	cat <<EOF> usr/local/tce.installed/${PACKAGE}
#!/bin/sh 

TCUSER=\$(cat /etc/sysconfig/tcuser)
su "\${TCUSER}" -c /usr/local/libexec/tracker-miner-fs &
su "\${TCUSER}" -c /usr/local/libexec/tracker-store &
cp /usr/local/share/tracker/tracker "/home/\${TCUSER}/.X.d/"
chown "\${TCUSER}":staff "/home/\${TCUSER}/.X.d/tracker"
EOF
	#don't clobber tc setup
	chown -R root:staff usr/local/tce.*

	#locale
	mkdir -p ../locale/usr/local/share/locale
	mv usr/local/share/locale ../locale/usr/local/share
	#dev
	for I in $(find `ls` -name *.h); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done

	for I in $(find `ls` -name *.a); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done

	for I in $(find `ls` -name *.la); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done
	
	for I in $(find `ls` -name *.pc); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done

	rm -rf usr/local/include
	rm -rf usr/local/lib/pkgconfig
}

packageit(){
   if [ ! -f /usr/local/tce.installed/squashfs-tools-4.x ]; then
	if [ ! -e ${TCEDIR}/optional/squashfs-tools-4.x.tcz ]; then
		sudo -u ${TCUSER} tce-load -w squashfs-tools-4.x.tcz 
	fi
	su ${TCUSER} -c "tce-load -is squashfs-tools-4.x.tcz"
   fi
	
   cd ${PKGDIR}/tmp
   for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}.tcz.list
   done

   [ -e ../${PACKAGE}.tcz ] && rm ../${PACKAGE}.tcz*
   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}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	In case u are upgrading delete 
		~/.X.d//tracker-miner-fs
		and 
		~/.X.d//tracker-writeback

		Optional dependencies: 
		libvorbis, enca, gst-plugins-base, flac.

		This extension is PPI compatible
Change-log:    	2011/01/27 first version 0.9.35 
		2011/02/12 updated to 0.9.38
		2011/03/06 updated to 0.10.1, changed 
			~/.X.d//tracker-miner-fs to
			~/.X.d//tracker-writeback
		2011/03/12 updated to 0.10.3, changed 
	                ~/.X.d//tracker-writeback to
	                ~/.X.d//tracker
	 	2011/03/22 updated to 0.10.4
Current:	${TODAY} updated to ${VERSION}
EOF
   #locale
   cd ${PKGDIR}/locale
   for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}-locale.tcz.list
   done

   [ -e ../${PACKAGE}-locale.tcz ] && rm ../${PACKAGE}-locale.tcz*
   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}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	locale files
				
		This extension is PPI compatible
Change-log:    	2011/01/27 first version 0.9.35 
		2011/02/12 updated to 0.9.38
		2011/03/06 updated to 0.10.1
		2011/03/12 updated to 0.10.3
	 	2011/03/22 updated to 0.10.4
Current:	${TODAY} updated to ${VERSION}
EOF


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

   [ -e ../${PACKAGE}-dev.tcz ] && rm ../${PACKAGE}-dev.tcz*
   mksquashfs . ../${PACKAGE}-dev.tcz

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

   echo ${PACKAGE}.tcz > ${PACKAGE}-dev.tcz.dep
   for each in ${BUILDDEPS}; do echo ${each} >> ${PACKAGE}-dev.tcz.dep; done

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

   cat <<EOF> ${PACKAGE}-dev.tcz.info
Title:		${PACKAGE}-dev.tcz
Description:	${DESCRIPTION}. Development files
Version:	${VERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	development files
				
		This extension is PPI compatible
Change-log:    	2011/01/27 first version 0.9.35 
		2011/02/12 updated to 0.9.38
		2011/03/06 updated to 0.10.1
		2011/03/12 updated to 0.10.3
	 	2011/03/22 updated to 0.10.4
Current:	${TODAY} updated to ${VERSION}
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}
	rm ../${PACKAGE}$SEP$VERSION.tar.bz2
	cp ../${PACKAGE}.tcbuild .
	tar	cjvf ../${PACKAGE}$SEP$VERSION.tar.bz2 \
		${PACKAGE}.tcz* \
		${PACKAGE}-dev.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
