Date: Wed, 25 Feb 2004 20:29:22 +1000 (EST) From: Dean Povey <povey@wedgetail.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/63342: New port: deskutils/taskjuggler: Project management tool Message-ID: <200402251029.i1PATMU8000202@zwergschwalbe.wedgetail.com> Resent-Message-ID: <200402251030.i1PAUJJc059094@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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@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@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@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@dirrm share/doc/packages/taskjuggler/Examples/FirstProject X@dirrm share/doc/packages/taskjuggler/Examples/BigProject/Common X@dirrm share/doc/packages/taskjuggler/Examples/BigProject/Project1 X@dirrm share/doc/packages/taskjuggler/Examples/BigProject/Project2 X@dirrm share/doc/packages/taskjuggler/Examples/BigProject X@dirrm share/doc/packages/taskjuggler/Examples/ShiftSchedule X@dirrm share/doc/packages/taskjuggler/Examples X@dirrm share/doc/packages/taskjuggler/manual X@dirrm share/doc/packages/taskjuggler/tjx2gantt END-of-taskjuggler/pkg-plist exit --- taskjuggler.shar ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402251029.i1PATMU8000202>