#!/bin/sh

[ `id -u` = 0 ] || { echo "must be root"; exit 1; }

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="zenity"
SEP="-"
VERSION="2.20.1"
MIRROR="http://freshmeat.net/urls/8e0577f86221635345c9345ed963a591"
DESCRIPTION="display Gtk+ dialog boxes"
AUTHORS="GlynnFoster and LucasRocha"
HOMEPAGE="http://freshmeat.net/projects/zenity"
LICENSE="GPL"
ME="jls_legalize (unsenepopiu at tin dot it)"
	DEPS="expat2.tcz glib2.tcz graphics-libs-1.tcz libxml2.tcz fontconfig.tcz ttf-bitstream-vera.tcz gtk2.tcz atk.tcz cairo.tcz pango.tcz pixman.tcz Xlibs_support.tcz libglade.tcz libgnomecanvas.tcz libart.tcz dbus.tcz dbus-glib.tcz libnotify.tcz"
BUILDDEPS="gnome-doc-utils.tcz gettext.tcz gtk2-dev.tcz libart.tcz libglade-dev.tcz libgnomecanvas.tcz perl5.tcz perl_xml_parser.tcz"
FLAGS="--prefix=/usr/local --disable-scrollkeeper"
DOCS="usr/local/share/gnome"


TCUSER=`cat /etc/sysconfig/tcuser`
SRC="${PACKAGE}${SEP}${VERSION}.tar.gz"
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${PKGDIR}/${PACKAGE}${SEP}${VERSION}"

clean(){
	rm -rf ${PKGDIR}-*
	rm -rf ${THISDIR}/${PACKAGE}
}
environment(){
	TCEDIR="$(cat /opt/.tce_dir)"
	for each in compiletc.tcz squashfs-tools-4.0.tcz ${DEPS} ${BUILDDEPS}; do
		sudo -u ${TCUSER} tce-load -i ${TCEDIR}/optional/${each}
		sudo -u ${TCUSER} tce-load -w -i ${each}
	done
	[ -d "${PKGDIR}" ] && rm -rf ${PKGDIR}
	mkdir -p ${PKGDIR}/tmp
	cd ${PKGDIR} && wget ${MIRROR} -O ${SRC}
	tar xzf ${SRC}
}

buildit(){
	cd ${SRCDIR}
	./configure ${FLAGS}
	make
	touch /tmp/mark
	make DESTDIR=${PKGDIR}/tmp install
}

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

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

#EOF
	#   chmod 775 usr/local/tce.installed/${PACKAGE}

	#mkdir -pm 775 usr/local/tce.menu
	#cat <<EOF> usr/local/tce.menu/${PACKAGE}
#<JWM>
#  <Program label="$PACKAGE">$PACKAGE</Program>
#</JWM>
#EOF
	#chmod 644 usr/local/tce.menu/${PACKAGE}

	#mkdir -pm 775 usr/local/tce.icons
	#cp ${SRCDIR}/data/$PACKAGE.png usr/local/tce.icons/
	#cat <<EOF> usr/local/tce.icons/${PACKAGE}
#i: /usr/local/tce.icons/$PACKAGE.png
#t: $PACKAGE
#c: $PACKAGE
#EOF
	#chmod 644 usr/local/tce.icons/*

	#dont clobber tc setup
	#chown -R root:staff usr/local/tce.*

	#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}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	Zenity is a tool that allows you to display Gtk+ dialog boxes from the 
			command line and through shell scripts. It is similar to gdialog, but is 
			intended to be saner. It comes from the same family as dialog, 
			Xdialog, and cdialog, but it surpasses those projects by having a cooler name.
				
		This extension is PPI compatible
Change-log:	----
Current:	${TODAY} First version
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

   for each in ${DEPS}; do echo ${each} >> ${PACKAGE}-locale.tcz.dep; done
   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:	----
Current:	${TODAY} First version
EOF
}
	
#here we go
clean
environment
buildit
workit
packageit
