ports/63342: New port: deskutils/taskjuggler: Project management tool

Dean Povey povey at wedgetail.com
Wed Feb 25 10:30:19 UTC 2004


>Number:         63342
>Category:       ports
>Synopsis:       New port: deskutils/taskjuggler: Project management tool
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Feb 25 02:30:18 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Dean Povey
>Release:        FreeBSD 4.8-RELEASE i386
>Organization:
Wedgetail Communications	
>Environment:
System: FreeBSD zwergschwalbe.wedgetail.com 4.8-RELEASE FreeBSD 4.8-RELEASE #1: Thu Apr 10 16:53:14 EST 2003 povey at zwergschwalbe.wedgetail.com:/usr/obj/usr/src/sys/KERNEL.2003-04-10 i386

>Description:

"This is a port of Taskjuggler, a project management tool for Linux and UNIX
system-based operating systems. Instead of clicking yourself painfully through
hundreds of dialog boxes you specify your Taskjuggler project in a simple text
format. You simply list all your tasks and their dependencies. The information
is sent through Taskjuggler and you will get all sorts of reports in HTML or
XML format.

WWW: http://www.taskjuggler.org/"

This port currently builds and tests fine on my system. Only caveats are

1. Original code used perl module PostScript::Simple 0.04 which is
incompatible with the current PostScript::Simple 0.05 used in the ports tree.
I included a patch to fix this and added p5-PostScript-Simple-0.0[1234] to 
CONFLICTS.

2. Documentation requires some docbook conversion tools that I couldn't easily
port, so the current port doesn't build it's manual.

3. Some examples/doc are installed in $PREFIX/share/doc/packages/taskjuggler,
which probably doesn't follow the FreeBSD way of doing things, but is difficult
to easily work around (okay it isn't that hard, but I was too lazy to do the
patch).

Last but not least the port has exactly one option, whether to build the
KDE ktjview program which requires KDE3.

Dean.

>How-To-Repeat:
>Fix:

--- taskjuggler.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	taskjuggler
#	taskjuggler/files
#	taskjuggler/files/patch-tjx2gantt
#	taskjuggler/files/patch-Testsuite-testdir
#	taskjuggler/files/ktjview-plist.mk
#	taskjuggler/Makefile
#	taskjuggler/pkg-descr
#	taskjuggler/distinfo
#	taskjuggler/pkg-plist
#
echo c - taskjuggler
mkdir -p taskjuggler > /dev/null 2>&1
echo c - taskjuggler/files
mkdir -p taskjuggler/files > /dev/null 2>&1
echo x - taskjuggler/files/patch-tjx2gantt
sed 's/^X//' >taskjuggler/files/patch-tjx2gantt << 'END-of-taskjuggler/files/patch-tjx2gantt'
X--- tjx2gantt/tjx2gantt	Mon Jul 14 22:31:53 2003
X+++ tjx2gantt/tjx2gantt.patch	Wed Feb 25 09:07:00 2004
X@@ -1,4 +1,4 @@
X-#!/usr/bin/perl
X+#!/usr/bin/perl -w
X #
X # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
X # !!!  This Software is __ALPHA__  !!!
X@@ -18,12 +18,10 @@
X $| = 1;
X 
X use strict;
X-use warnings;
X 
X package tjTask;
X 
X     use strict;
X-    use warnings;
X     use Class::MethodMaker
X         new_hash_init   => 'new',
X         get_set         => [ qw(Index ProjectID complete Priority Type Id Name ParentTask
X@@ -393,10 +391,10 @@
X             my ($x2, $y2) = _trans_coord($_x2, $_y2);
X             #-- balken
X             $p->setcolour(222,222,222);
X-            $p->box($x1, $y1, $x2, $y2, 1);
X+            $p->box({ filled => 1 }, $x1, $y1, $x2, $y2);
X             #-- rahmen drum
X             $p->setcolour(0,0,0);
X-            $p->box($x1, $y1, $x2, $y2, 0);
X+            $p->box({ filled => 0 }, $x1, $y1, $x2, $y2);
X             #-- linie dazwischen
X             my $l_y = $y2+($task_space/2)-($task_height/2);
X             $p->line($page_border+5, $l_y, $page_x-($page_border*2), $l_y );
X@@ -458,35 +456,35 @@
X             if ( Delta_Days($today_year, $today_month, $today_day, $end_year, $end_month, $end_day) < 0 ) {
X                 if ( $persent < 100 ) {
X                     $p->setcolour(255,0,0);
X-                    $p->box($x1, $y1, $x2, $y2, 1);
X+                    $p->box({ filled => 1 }, $x1, $y1, $x2, $y2);
X                 }
X             } else {
X                 $p->setcolour(255,255,255);
X-                $p->box($x1, $y1, $x2, $y2, 1);
X+                $p->box({ filled => 1 }, $x1, $y1, $x2, $y2);
X             }
X             #-- buffer balken pinseln
X             if ( $task->startBuffer ) {
X                 my $buf = $task->startBuffer;
X                 my ($buf_length, $d) = _trans_coord($_x1 + (($task_length/100*$buf) * $day_x), 0);
X                 $p->setcolour(222,222,222);
X-                $p->box($x1, $y1, $buf_length, $y2, 1);
X+                $p->box({ filled => 1 }, $x1, $y1, $buf_length, $y2);
X             }
X             if ( $task->endBuffer ) {
X                 my $buf = $task->endBuffer;
X                 my ($buf_length, $d) = _trans_coord($_x2 - (($task_length/100*$buf) * $day_x), 0);
X                 $p->setcolour(222,222,222);
X-                $p->box($buf_length, $y1, $x2, $y2, 1);
X+                $p->box({ filled => 1 }, $buf_length, $y1, $x2, $y2);
X             }
X             #-- länge von % feritg balken
X             my ($per_length, $d) = _trans_coord($_x1 + (($task_length/100*$persent) * $day_x), 0);
X             #-- % done balken pinseln
X             if ($persent > 0) {
X                 $p->setcolour(0,255,0);
X-                $p->box($x1, $y1, $per_length, $y2, 1);
X+                $p->box({ filled => 1 }, $x1, $y1, $per_length, $y2);
X             }
X             #-- rahmen um den task
X             $p->setcolour(0,0,0);
X-            $p->box($x1, $y1, $x2, $y2, 0);
X+            $p->box({ filled => 0 }, $x1, $y1, $x2, $y2);
X             #-- text
X             $task->label($name);
X             $task->label_x($x1+1);
X@@ -494,7 +492,7 @@
X         }
X         if ( $task->Type eq 'Container' ) {
X             $p->setcolour(0,0,0);
X-            $p->box($x1-1, $y1, $x2+1, $y2+($task_height/1.2), 1);
X+            $p->box({ filled => 1 }, $x1-1, $y1, $x2+1, $y2+($task_height/1.2));
X             #-- pfeil vorn
X             $p->polygon(
X                 $x1+1, $y2+($task_height/1.2),
X@@ -517,7 +515,7 @@
X         if ( $task->Type eq 'Milestone' ) {
X             $p->setcolour(0,0,0);
X             my ($x, $y) = _trans_coord($_x1, $_y1+($task_height/2));
X-            $p->circle($x, $y, 1, 1);
X+            $p->circle({ filled => 1 }, $x, $y, 1);
X             $p->setfont("Helvetica", 6);
X             my $am = sprintf('%02d', $start_month);
X             my $ad = sprintf('%02d', $start_day);
X@@ -585,7 +583,7 @@
X         my $h_month_week = 3;
X         my ($_x, $_y)   = ($i*$day_x, $day_x*$h_month_week);
X         my ($x, $y)     = _trans_coord($_x, $_y);
X-        $p->box($x, $y, $x+$day_x, $page_border, 1);
X+        $p->box({ filled => 1 }, $x, $y, $x+$day_x, $page_border);
X         #-- die linien haben unterschiedliche höhe
X         #-- is es ein wochen-anfang
X         if ( $act_dow == 1 ) {
END-of-taskjuggler/files/patch-tjx2gantt
echo x - taskjuggler/files/patch-Testsuite-testdir
sed 's/^X//' >taskjuggler/files/patch-Testsuite-testdir << 'END-of-taskjuggler/files/patch-Testsuite-testdir'
X*** TestSuite/testdir	Mon Feb 23 13:10:52 2004
X--- TestSuite/testdir.patch	Mon Feb 23 13:11:05 2004
X***************
X*** 12,18 ****
X    export TASKJUGGLER=../$TASKJUGGLER
X  fi
X  
X! function do_testing
X  {
X    f=$1
X    op=$2
X--- 12,18 ----
X    export TASKJUGGLER=../$TASKJUGGLER
X  fi
X  
X! do_testing()
X  {
X    f=$1
X    op=$2
END-of-taskjuggler/files/patch-Testsuite-testdir
echo x - taskjuggler/files/ktjview-plist.mk
sed 's/^X//' >taskjuggler/files/ktjview-plist.mk << 'END-of-taskjuggler/files/ktjview-plist.mk'
XPLIST_FILES+=	bin/ktjview \
X		lib/kde3/libktjviewpart.so \
X		lib/kde3/libktjviewpart.la \
X		share/icons/hicolor/16x16/apps/ktjview.png \
X		share/icons/hicolor/32x32/apps/ktjview.png \
X		share/icons/hicolor/48x48/apps/ktjview.png \
X		share/icons/locolor/16x16/apps/ktjview.png \
X		share/icons/locolor/32x32/apps/ktjview.png \
X		share/services/ktjview.desktop \
X		share/apps/ktjviewpart/ktjview_part.rc \
X		share/apps/ktjview/ktjview_shell.rc \
X
XPLIST_DIRS+=	share/apps/ktjviewpart \
X		share/apps/ktjview
END-of-taskjuggler/files/ktjview-plist.mk
echo x - taskjuggler/Makefile
sed 's/^X//' >taskjuggler/Makefile << 'END-of-taskjuggler/Makefile'
X# New ports collection makefile for: taskjuggler
X# Date created:	23 February 2004
X# Whom:	 	Dean Povey <povey at wedgetail.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	taskjuggler
XPORTVERSION=	2.0
XCATEGORIES=	deskutils
XMASTER_SITES=	http://www.taskjuggler.org/download/
XEXTRACT_SUFX=	.tar.bz2
X
XMAINTAINER=	povey at wedgetail.com
XCOMMENT=	A project management tool for UNIX based operating systems
X
XLIB_DEPENDS=	qt-mt:${PORTSDIR}/x11-toolkits/qt32:install
X
XOPTIONS=	KTJVIEW "Build KDE KTJView program (Requires KDE)" off
X
XUSE_BZIP2=	yes
X
XGNU_CONFIGURE=	yes
XCONFIGURE_ENV+=	LDFLAGS="${LDFLAGS} ${PTHREAD_LIBS} -L${LOCALBASE}/lib"
XCONFIGURE_TARGET=	--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
X
X.include <bsd.port.pre.mk>
X
XUSE_PERL5_RUN=	yes
XBUILD_DEPENDS+=	${SITE_PERL}/${PERL_ARCH}/Date/Calc.pm:${PORTSDIR}/devel/p5-Date-Calc \
X		${SITE_PERL}/Class/MethodMaker.pm:${PORTSDIR}/devel/p5-Class-MethodMaker \
X		${SITE_PERL}/PostScript/Simple.pm:${PORTSDIR}/print/p5-PostScript-Simple \
X		${SITE_PERL}/${PERL_ARCH}/XML/Parser.pm:${PORTSDIR}/textproc/p5-XML-Parser \
X		poster:${PORTSDIR}/print/poster
X
X.if defined(WITH_KTJVIEW)
XLIB_DEPENDS+=   kwalletbackend:${PORTSDIR}/x11/kdelibs3
XCONFIGURE_ARGS+=	--with-kde-support=yes
X.include "files/ktjview-plist.mk"
X.endif
X
X# Add stuff to the pkg-plist based on options set above
XPLIST_SUB=	EXTRA_PLIST=${EXTRA_PLIST}
X
X# This port will not work with a version of PostScript::Simple earlier than
X# version 0.05. This is because an incompatible change was introduced
X# between 0.04 and 0.05. The original taskjuggler-2.0 actually used the 0.04
X# release, but this port patches to 0.05 as this is what is current in
X# the ports tree, and I was too lazy to patch conditionally.
XCONFLICTS=	p5-PostScript-Simple-0.0[1234]
X
X# Note the taskjuggler dir is listed here rather than pkg-plist so that it
X# is deleted last
XPLIST_DIRS+=	share/doc/packages/taskjuggler
X
X.include <bsd.port.post.mk>
END-of-taskjuggler/Makefile
echo x - taskjuggler/pkg-descr
sed 's/^X//' >taskjuggler/pkg-descr << 'END-of-taskjuggler/pkg-descr'
XThis is a port of Taskjuggler, a project management tool for Linux and UNIX
Xsystem-based operating systems. Instead of clicking yourself painfully through
Xhundreds of dialog boxes you specify your Taskjuggler project in a simple text
Xformat. You simply list all your tasks and their dependencies. The information
Xis sent through Taskjuggler and you will get all sorts of reports in HTML or
XXML format.
X
XWWW: http://www.taskjuggler.org/
X
X- Dean Povey
Xpovey at wedgetail.com
END-of-taskjuggler/pkg-descr
echo x - taskjuggler/distinfo
sed 's/^X//' >taskjuggler/distinfo << 'END-of-taskjuggler/distinfo'
XMD5 (taskjuggler-2.0.tar.bz2) = bde3128d93595de5fc430f26a25d85e6
XSIZE (taskjuggler-2.0.tar.bz2) = 889124
END-of-taskjuggler/distinfo
echo x - taskjuggler/pkg-plist
sed 's/^X//' >taskjuggler/pkg-plist << 'END-of-taskjuggler/pkg-plist'
Xbin/taskjuggler
Xshare/doc/packages/taskjuggler/Examples/FirstProject/Accounting.html
Xshare/doc/packages/taskjuggler/Examples/FirstProject/Calendar.html
Xshare/doc/packages/taskjuggler/Examples/FirstProject/Staff-Details.html
Xshare/doc/packages/taskjuggler/Examples/FirstProject/Staff-Overview.html
Xshare/doc/packages/taskjuggler/Examples/FirstProject/Status-Report.html
Xshare/doc/packages/taskjuggler/Examples/FirstProject/Tasks-Details.html
Xshare/doc/packages/taskjuggler/Examples/FirstProject/Tasks-Overview.html
Xshare/doc/packages/taskjuggler/Examples/FirstProject/AccountingSoftware.tjp
Xshare/doc/packages/taskjuggler/Examples/FirstProject/AccountingSoftware.tjx
Xshare/doc/packages/taskjuggler/Examples/BigProject/Common/Resources.tjsp
Xshare/doc/packages/taskjuggler/Examples/BigProject/Project1/Project1.html
Xshare/doc/packages/taskjuggler/Examples/BigProject/Project1/Project1.tjp
Xshare/doc/packages/taskjuggler/Examples/BigProject/Project1/Project1-Interface.tjsp
Xshare/doc/packages/taskjuggler/Examples/BigProject/Project2/Project2.html
Xshare/doc/packages/taskjuggler/Examples/BigProject/Project2/Project2.tjp
Xshare/doc/packages/taskjuggler/Examples/BigProject/README
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/Calendar-anders.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/Calendar-joe.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/Calendar-khaled.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/Calendar-paul.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/Calendar-sally.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/ResourceUsage-Jun.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/ShiftTimes-06-03.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/ShiftTimes-06-10.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/TaskCoverage-Jun.html
Xshare/doc/packages/taskjuggler/Examples/ShiftSchedule/ShiftSchedule.tjp
Xbin/tjx2gantt
Xshare/doc/packages/taskjuggler/tjx2gantt/README
Xshare/doc/packages/taskjuggler/tjx2gantt/BUGS
Xshare/doc/packages/taskjuggler/tjx2gantt/TODO
Xshare/doc/packages/taskjuggler/tjx2gantt/testProject.tjp
Xshare/doc/packages/taskjuggler/Examples/FirstProject/acso.eps
Xshare/doc/packages/taskjuggler/Examples/FirstProject/acso_poster.eps
X at dirrm share/doc/packages/taskjuggler/Examples/FirstProject
X at dirrm share/doc/packages/taskjuggler/Examples/BigProject/Common
X at dirrm share/doc/packages/taskjuggler/Examples/BigProject/Project1
X at dirrm share/doc/packages/taskjuggler/Examples/BigProject/Project2
X at dirrm share/doc/packages/taskjuggler/Examples/BigProject
X at dirrm share/doc/packages/taskjuggler/Examples/ShiftSchedule
X at dirrm share/doc/packages/taskjuggler/Examples
X at dirrm share/doc/packages/taskjuggler/manual
X at dirrm share/doc/packages/taskjuggler/tjx2gantt
END-of-taskjuggler/pkg-plist
exit
--- taskjuggler.shar ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list