Update for Flyspray 0.9.7 -> 0.9.8. A couple of days after the author released 0.9.8, a security problem was found, and a separate update archive was released as 0.9.8-update1. This port includes the patches from -update1, and has set PORTEPOCH to 1 in order to note that this is not vanilla 0.9.8.
State Changed From-To: open->feedback Please do not use shar(1) for updates, use `diff -ruN` output instead.
diff -ruN flyspray/Makefile flyspray-0.9.8.1/Makefile --- flyspray/Makefile Fri Apr 29 16:56:05 2005 +++ flyspray-0.9.8.1/Makefile Tue Nov 1 12:10:12 2005 @@ -6,7 +6,8 @@ # PORTNAME= flyspray -PORTVERSION= 0.9.7 +PORTVERSION= 0.9.8 +PORTEPOCH= 1 CATEGORIES= devel MASTER_SITES= http://flyspray.rocks.cc/files/ @@ -21,38 +22,49 @@ NO_BUILD= yes +FLYSPRAYDIR= ${PREFIX}/share/${PORTNAME} +ATTACHMENTDIR= ${DBDIR}/${PORTNAME}/attachments DBDIR= /var/db -DOC_FILES= AUTHORS.txt BUGS.txt CHANGELOG.txt INSTALL.txt README.txt \ - TODO.txt UPGRADING.txt README.FreeBSD \ +DOC_FILES= AUTHORS.txt BUGS.txt CHANGELOG.txt INSTALL.txt \ + QA_CHECKLIST.txt README.txt TODO.txt UPGRADING.txt \ + README.FreeBSD \ licences/ADOdb.licence.txt \ licences/Flyspray.licence.txt \ licences/NuvolaIcons.licence.txt \ + licences/class.jabber.php.licence.txt \ licences/jsCalendar.licence.txt \ - licences/phpMarkdown.licence.txt + licences/phpMarkdown.licence.txt \ + licences/phpmailer.licence.txt \ -FLYSPRAY_FILES= favicon.ico header.php includes index.php lang scripts sql themes +FLYSPRAY_FILES= .htaccess favicon.ico header.php index.php \ + remote-client.php remote.php docs/licences/gnu_lgpl.html \ + includes lang scripts setup sql themes PKGMESSAGE= ${WRKSRC}/pkg-message post-patch: @${CP} ${PKGDIR}/files/README.FreeBSD ${WRKSRC}/docs/ - @${REINPLACE_CMD} -e "s|realpath('../')|'${PREFIX}/share'|g" \ - ${WRKSRC}/sql/install-${PORTVERSION}.php - @${RM} ${WRKSRC}/sql/install-${PORTVERSION}.php.bak + @${REINPLACE_CMD} -e "s|%%FLYSPRAYDIR%%|"${FLYSPRAYDIR}"|g" \ + -e "s|%%DOCSDIR%%|"${DOCSDIR}"|g" \ + ${WRKSRC}/docs/README.FreeBSD + @${FIND} ${WRKSRC} -name \*.orig -exec ${RM} '{}' ';' do-install: - @${MKDIR} ${PREFIX}/share/${PORTNAME} - ${CHMOD} 755 ${PREFIX}/share/${PORTNAME} - ${INSTALL_DATA} ${WRKSRC}/header.php ${PREFIX}/share/${PORTNAME}/header.php-dist + @${MKDIR} ${FLYSPRAYDIR} + ${CHMOD} 755 ${FLYSPRAYDIR} + ${INSTALL_DATA} ${WRKSRC}/flyspray.conf.php \ + ${FLYSPRAYDIR}/flyspray.conf.php-dist + ${TOUCH} ${FLYSPRAYDIR}/flyspray.conf.php cd ${WRKSRC} && \ tar cf - ${FLYSPRAY_FILES} | \ - (cd ${PREFIX}/share/${PORTNAME} && tar -xf -) - ${LN} -s ${DBDIR}/${PORTNAME}/attachments ${PREFIX}/share/${PORTNAME}/attachments - @${MKDIR} ${DBDIR}/${PORTNAME}/attachments - ${CHMOD} 750 ${DBDIR}/${PORTNAME}/attachments - ${CHOWN} ${WWWOWN}:${WWWGRP} ${DBDIR}/${PORTNAME}/attachments - ${CHOWN} ${WWWOWN}:${WWWGRP} ${PREFIX}/share/${PORTNAME} + (cd ${FLYSPRAYDIR} && tar -xf -) + ${LN} -s ${ATTACHMENTDIR} ${FLYSPRAYDIR}/attachments + ${LN} -s ${PREFIX}/share/adodb ${FLYSPRAYDIR} + @${MKDIR} ${ATTACHMENTDIR} + ${CHMOD} 750 ${ATTACHMENTDIR} + ${CHOWN} ${WWWOWN}:${WWWGRP} ${ATTACHMENTDIR} + ${CHOWN} ${WWWOWN}:${WWWGRP} ${FLYSPRAYDIR}/flyspray.conf.php post-install: install-doc @${SED} -e 's|%%DOCSDIR%%|${DOCSDIR}|g' pkg-message > ${PKGMESSAGE} diff -ruN flyspray/distinfo flyspray-0.9.8.1/distinfo --- flyspray/distinfo Fri Apr 29 16:56:05 2005 +++ flyspray-0.9.8.1/distinfo Tue Nov 1 11:03:30 2005 @@ -1,2 +1,2 @@ -MD5 (flyspray-0.9.7.tar.gz) = ab686864412a0fb4590560ee360bb1f5 -SIZE (flyspray-0.9.7.tar.gz) = 347443 +MD5 (flyspray-0.9.8.tar.gz) = e034c2f1638cca65c41c7cb3590e2014 +SIZE (flyspray-0.9.8.tar.gz) = 385283 diff -ruN flyspray/files/README.FreeBSD flyspray-0.9.8.1/files/README.FreeBSD --- flyspray/files/README.FreeBSD Fri Mar 25 00:09:01 2005 +++ flyspray-0.9.8.1/files/README.FreeBSD Tue Nov 1 14:31:43 2005 @@ -10,67 +10,43 @@ # mysqladmin -u root -p create flyspray -2) Import the Flyspray database tables into your new empty database. Here is - the unix/linux command line method; be sure to enter your mysql root - password when prompted: +2) Insert the following configuration command into your Apache httpd.conf: -# mysql -u root -p flyspray < flyspray-version.sql + Alias "/flyspray/" "%%FLYSPRAYDIR%%/" + <Directory %%FLYSPRAYDIR%%> + AllowOverride All + Options Indexes FollowSymLinks + Order allow,deny + Allow from all + </Directory> -3) Insert the following configuration command into your httpd.conf: - - Alias "/flyspray/" "/usr/local/share/flyspray/" - -4) Point your browser to http://yourserver.com/flyspray/ and you should +3) Point your browser to http://yourserver.com/flyspray/ and you should see the Flyspray setup script! -5) If you are upgrading from an old version of Flyspray, skip to note 10 - below. Otherwise, create youself a new user, and put this user into the - Admin group. - -6) CHANGE THE PASSWORD FOR THE super/super ACCOUNT by clicking the 'Change - Password' link near the top of the page. You might like to disable the - account entirely, or it will appear in the list of members to be assigned - tasks. +4) Click on the admin links to set up your Options and lists. -7) Click on the admin links to set up your Options and lists. +5) Close the sample task, and begin adding your own. -8) Close the sample task, and begin adding your own. - -9) Report any bugs you find back to http://flyspray.rocks.cc/?p=Support or the +6) Report any bugs you find back to http://flyspray.rocks.cc/bts/ or the mailing list linked from the Flyspray homepage. -Upgrading from Previous Versions of Flyspray -============================================ +Upgrading from Flyspray 0.9.7 +============================= You can upgrade from a previous version of Flyspray by doing the following: -0) read /usr/local/share/doc/flyspray/UPGRADING.txt. +0) read %%DOCSDIR%%/UPGRADING.txt. 1) back up your old flyspray task database using "mysqldump". No, really, - you seriously run the risk of losing ALL your data if you don't do this. - -2) load http://yourserver.com/flyspray/ in your browser, set up the - database access parameters and click the "continue to next page" button. - DO NOT click "Continue to next page" a second time (i.e. on the page - which reads "Next, we are going to try setting up your database...") - -3) If you are upgrading from 0.9.5, you will need to upgrade your database - settings to 0.9.6 before going to 0.9.7. You can do this by loading the - upgrade script on: - - http://yourserver.com/flyspray/sql/upgrade_0.9.5_to_0.9.6-mysql.php - - You will need to click "Perform upgrade now!". - -4) To upgrade your database structure from 0.9.6 format to 0.9.7 load the - following URL into your browser: - - http://yourserver.com/flyspray/sql/upgrade_0.9.6_to_0.9.7.php + you seriously run the risk of losing data if you don't do this. - You will need to click "Take me to Flyspray 0.9.7 now!" +2) load http://yourserver.com/flyspray/ in your browser and follow the + installation instructions. On the "Database setup" page, set the + "Install/Upgrade" field to "Upgrade 0.9.7 - 0.9.8" and enter your + database parameters. -5) That's it! flyspray has been upgraded to 0.9.7. If you messed up the +5) That's it! flyspray has been upgraded to 0.9.8. If you messed up the sequence of commands, you will probably have lost data in the process, and may need to re-install your database from your backup. You did take a backup, right? diff -ruN flyspray/files/patch-.htaccess flyspray-0.9.8.1/files/patch-.htaccess --- flyspray/files/patch-.htaccess Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-.htaccess Tue Nov 1 13:17:14 2005 @@ -0,0 +1,20 @@ +--- .htaccess.orig Tue Nov 1 13:13:20 2005 ++++ .htaccess Tue Nov 1 13:13:20 2005 +@@ -5,6 +5,8 @@ + <IfModule mod_rewrite.c> + RewriteEngine on + ++ReWriteBase /flyspray ++ + RewriteRule ^.*\?do=admin&area=prefs$ index.php?do=admin&area=prefs [L] + + RewriteRule ^([0-9]+)$ index.php?do=details&id=$1 [L] +@@ -12,7 +14,7 @@ + RewriteRule ^task/([0-9]+)comment([0-9]+)$ index.php?do=details&id=$1comment$2 [L] + RewriteRule ^task/([0-9]+)/depends$ index.php?do=depends&id=$1 [L] + RewriteRule ^task/([0-9]+)/edit$ index.php?do=details&id=$1&edit=yep [L] +- ++RewriteRule ^task/([0-9]+)/depends&prune=([0-9]+)$ index.php?do=depends&id=$1&prune=$2 [L] + RewriteRule ^newtask$ index.php?do=newtask [L] + RewriteRule ^newtask/proj([0-9]+)$ index.php?do=newtask&project=$1 [L] + diff -ruN flyspray/files/patch-docs::CHANGELOG.txt flyspray-0.9.8.1/files/patch-docs::CHANGELOG.txt --- flyspray/files/patch-docs::CHANGELOG.txt Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-docs::CHANGELOG.txt Tue Nov 1 11:24:56 2005 @@ -0,0 +1,18 @@ +--- docs/CHANGELOG.txt.orig Sun Oct 23 01:22:26 2005 ++++ docs/CHANGELOG.txt Sun Oct 30 07:11:06 2005 +@@ -1,4 +1,14 @@ +-0.9.8 - 23 October 2005 ++0.9.8 update1 - 30 October 05 ++ ++FIXED - Lack of .htaccess rewrite rule for dependency graphs ++FIXED - Cross Site Scripting security hole ++FIXED - Project selector permission query ++FIXED - Date range for Reports ++FIXED - Bugs with language pack function ++FIXED - error_reporting() in header.php ++ ++ ++0.9.8 - 23 October 05 + + NEW - Full-featured installer + NEW - Address rewriting for human-readable URLs diff -ruN flyspray/files/patch-header.php flyspray-0.9.8.1/files/patch-header.php --- flyspray/files/patch-header.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-header.php Tue Nov 1 11:24:57 2005 @@ -0,0 +1,16 @@ +--- header.php.orig Sun Oct 23 01:11:14 2005 ++++ header.php Wed Oct 26 04:16:53 2005 +@@ -4,8 +4,11 @@ + // move flyspray.conf.php to a directory where a browser can't access it. + // (RECOMMENDED). + +-// Turn off PHP notices +-error_reporting(E_ALL & -E_NOTICE); ++// You might like to uncomment the next line if you are receiving lots of ++// PHP NOTICE errors. We are in the process of making Flyspray stop making ++// these errors, but this will help hide them until we are finished. ++ ++//error_reporting(E_ALL & ~E_NOTICE); + + // Check PHP Version (Must Be at least 4.3) + // For 0.9.9, this should redirect to the error page diff -ruN flyspray/files/patch-includes::functions.inc.php flyspray-0.9.8.1/files/patch-includes::functions.inc.php --- flyspray/files/patch-includes::functions.inc.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-includes::functions.inc.php Tue Nov 1 11:24:58 2005 @@ -0,0 +1,78 @@ +--- includes/functions.inc.php.orig Sun Oct 23 09:03:37 2005 ++++ includes/functions.inc.php Sun Oct 30 10:51:12 2005 +@@ -18,19 +18,31 @@ + */ + function get_language_pack($lang, $module) + { +- $before = get_defined_vars(); ++ // MC: functions module is in functions.*inc*.php ++ if ($module == 'functions') { ++ $module .= '.inc'; ++ } ++ ++ $before = get_defined_vars(); + require_once("lang/en/$module.php"); + $after_en = get_defined_vars(); +- $new_var = array_keys(array_diff($after_en, $before)); +- $new_var_name = @$new_var[1]; +- $new_var['en'] = @$$new_var_name; +- if (file_exists("lang/$lang/$module.php")) +- { +- require_once("lang/$lang/$module.php"); +- } +- $new_var[$lang] = @$$new_var_name; ++ $new_var = array_keys(array_diff($after_en, $before)); + +- $$new_var_name = @array_merge($new_var['en'], $new_var[$lang]); ++ if (isset($new_var[1])) { ++ list(, $new_var_name) = $new_var; ++ $new_var['en'] = $$new_var_name; ++ ++ if (file_exists("lang/$lang/$module.php")) { ++ require_once("lang/$lang/$module.php"); ++ } ++ $new_var[$lang] = $$new_var_name; ++ // $$new_var_name = array_merge($new_var['en'], $new_var[$lang]); ++ $$new_var_name = $new_var['en']; ++ $merge_ref =& $$new_var_name; ++ foreach ($new_var[$lang] as $key => $val) { ++ $merge_ref[$key] = $val; ++ } ++ } + } + + /** Redirects the browser to the page in $url +@@ -189,17 +201,19 @@ + + $status_id = $get_details['item_status']; + +- require("lang/$lang/status.php"); ++ global $status_list, $severity_list, $priority_list; ++ $this->get_language_pack($lang, 'status'); ++ $this->get_language_pack($lang, 'severity'); ++ $this->get_language_pack($lang, 'priority'); ++ + $tmp_array = array("status_name" => $status_list[$status_id]); + $get_details = $get_details + $tmp_array; + + $severity_id = $get_details['task_severity']; +- require("lang/$lang/severity.php"); + $tmp_array = array("severity_name" => $severity_list[$severity_id]); + $get_details = $get_details + $tmp_array; + + $priority_id = $get_details['task_priority']; +- require("lang/$lang/priority.php"); + $tmp_array = array("priority_name" => $priority_list[$priority_id]); + $get_details = $get_details + $tmp_array; + +@@ -301,8 +315,9 @@ + global $db; + global $dbprefix; + global $lang; ++ global $functions_text; + +- require("lang/$lang/functions.inc.php"); ++ $this->get_language_pack($lang, 'functions'); + + // Just in case $perpage is something weird, like 0, fix it here: + if ($perpage < 1) { $perpage = ($totalcount > 0 ? $totalcount : 1); } diff -ruN flyspray/files/patch-includes::regexp.php flyspray-0.9.8.1/files/patch-includes::regexp.php --- flyspray/files/patch-includes::regexp.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-includes::regexp.php Tue Nov 1 11:24:59 2005 @@ -0,0 +1,94 @@ +--- includes/regexp.php.orig Sun Jul 24 12:00:47 2005 ++++ includes/regexp.php Wed Oct 26 23:03:01 2005 +@@ -55,6 +55,20 @@ + + }; + ++if (isset($_GET['sort2']) && !empty($_GET['sort2'])) ++{ ++ // Yes. Now check its regex format for safety -- Limited range ++ if (preg_match ("/^(asc|desc)$/", $_GET['sort2'])) { ++ ++ // continue; ++ } else { ++ ++ $fs->Redirect($fs->CreateURL('error', null)); ++// print "Sorting request is invalid."; exit; ++ }; ++ ++}; ++ + if (isset($_GET['project']) && !empty($_GET['project'])) { + + // Yes. Now check its regex format for safety -- Numbers only +@@ -69,6 +83,21 @@ + }; + }; + ++if (isset($_GET['type']) && !empty($_GET['type'])) { ++ ++ // Yes. Now check its regex format for safety -- Numbers only ++ if (preg_match ("/^\d+$/", $_GET['type'])) { ++ ++ // continue; ++ ++ } else { ++ ++ $fs->Redirect($fs->CreateURL('error', null)); ++// print "Tasktype request is invalid."; exit; ++ }; ++}; ++ ++ + if (isset($_GET['page']) && !empty($_GET['page'])) + { + // Yes. Now check its regex format for safety -- Numbers only +@@ -324,4 +353,48 @@ + // print "Magic URL is invalid."; exit; + }; + }; ++ ++if (isset($_GET['tasks']) && !empty($_GET['tasks'])) ++{ ++ // Yes. Now check its regex format for safety -- Limited range ++ if (preg_match ("/^(all|assigned|reported|watched)$/", $_GET['tasks'])) { ++ ++ // continue; ++ } else { ++ ++ $fs->Redirect($fs->CreateURL('error', null)); ++// print "Tasks request is invalid."; exit; ++ }; ++ ++}; ++ ++if (isset($_GET['due']) && !empty($_GET['due'])) { ++ ++ // Yes. Now check its regex format for safety -- Numbers only ++ if (preg_match ("/^\d+$/", $_GET['due'])) { ++ ++ // continue; ++ } else { ++ ++ $fs->Redirect($fs->CreateURL('error', null)); ++// print "Due version request is invalid."; exit; ++ }; ++}; ++ ++if (isset($_GET['string']) && !empty($_GET['string'])) { ++ ++ // Yes. Now check its regex format for safety -- Numbers only ++ if (preg_match ("!<.*>!", $_GET['string'])) { ++ $fs->Redirect($fs->CreateURL('error', null)); ++ }; ++}; ++ ++if (isset($_GET['PHPSESSID']) && !empty($_GET['PHPSESSID'])) { ++ ++ // Yes. Now check its regex format for safety -- Numbers only ++ if (preg_match ("!<.*>!", $_GET['PHPSESSID'])) { ++ $fs->Redirect($fs->CreateURL('error', null)); ++ }; ++}; ++ + ?> diff -ruN flyspray/files/patch-index.php flyspray-0.9.8.1/files/patch-index.php --- flyspray/files/patch-index.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-index.php Tue Nov 1 11:24:59 2005 @@ -0,0 +1,29 @@ +--- index.php.orig Sat Oct 22 13:40:26 2005 ++++ index.php Thu Oct 27 00:09:01 2005 +@@ -384,15 +384,17 @@ + // or, if the user is logged in + } elseif (isset($_COOKIE['flyspray_userid'])) + { +- $get_projects = $db->Query("SELECT DISTINCT p.* +- FROM {$dbprefix}users_in_groups uig +- LEFT JOIN {$dbprefix}groups g ON uig.group_id = g.group_id, +- {$dbprefix}projects p +- WHERE ((uig.user_id = ? +- AND g.view_tasks = '1') +- OR p.others_view = '1') +- AND p.project_is_active = '1' +- GROUP BY p.project_id", ++ $get_projects = $db->Query("SELECT p.* FROM {$dbprefix}projects p ++ LEFT JOIN {$dbprefix}groups g ++ ON p.project_id=g.belongs_to_project ++ AND g.view_tasks=1 ++ LEFT JOIN {$dbprefix}users_in_groups uig ++ ON uig.group_id = g.group_id ++ AND uig.user_id = ? ++ WHERE p.project_is_active='1' ++ AND (p.others_view ++ OR uig.user_id IS NOT NULL) ++ ORDER BY p.project_title", + array($current_user['user_id']) + ); + // Anonymous users diff -ruN flyspray/files/patch-remote.php flyspray-0.9.8.1/files/patch-remote.php --- flyspray/files/patch-remote.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-remote.php Tue Nov 1 11:25:00 2005 @@ -0,0 +1,10 @@ +--- remote.php.orig Thu Aug 25 01:53:36 2005 ++++ remote.php Wed Oct 26 23:03:01 2005 +@@ -564,6 +564,7 @@ + { + global $fs; + global $db; ++ global $dbprefix; + include_once('includes/notify.inc.php'); + $notify = new Notifications; + diff -ruN flyspray/files/patch-scripts::details.php flyspray-0.9.8.1/files/patch-scripts::details.php --- flyspray/files/patch-scripts::details.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-scripts::details.php Tue Nov 1 11:25:01 2005 @@ -0,0 +1,60 @@ +--- scripts/details.php.orig Sat Oct 22 13:41:22 2005 ++++ scripts/details.php Thu Oct 27 00:09:01 2005 +@@ -91,17 +91,19 @@ + } elseif (isset($_COOKIE['flyspray_userid'])) + { + +- $get_projects = $db->Query("SELECT DISTINCT p.* +- FROM {$dbprefix}users_in_groups uig +- LEFT JOIN {$dbprefix}groups g ON uig.group_id = g.group_id, +- {$dbprefix}projects p +- WHERE ((uig.user_id = ? +- AND g.view_tasks = '1') +- OR p.others_view = '1') +- AND p.project_is_active = '1' +- ORDER BY p.project_title", +- array($current_user['user_id']) +- ); ++ $get_projects = $db->Query("SELECT p.* FROM {$dbprefix}projects p ++ LEFT JOIN {$dbprefix}groups g ++ ON p.project_id=g.belongs_to_project ++ AND g.view_tasks=1 ++ LEFT JOIN {$dbprefix}users_in_groups uig ++ ON uig.group_id = g.group_id ++ AND uig.user_id = ? ++ WHERE p.project_is_active='1' ++ AND (p.others_view ++ OR uig.user_id IS NOT NULL) ++ ORDER BY p.project_title", ++ array($current_user['user_id']) ++ ); + + } else + { +@@ -242,7 +244,7 @@ + <select id="status" name="item_status"> + <?php + // let's get a list of statuses and compare it to the saved one +- require("lang/$lang/status.php"); ++ $fs->get_language_pack($lang, 'status'); + foreach($status_list as $key => $val) + { + if ($task_details['item_status'] == $key) +@@ -319,7 +321,7 @@ + <select id="severity" name="task_severity"> + <?php + // Get list of severities +- require("lang/$lang/severity.php"); ++ $fs->get_language_pack($lang, 'severity'); + foreach($severity_list as $key => $val) + { + if ($task_details['task_severity'] == $key) +@@ -340,7 +342,7 @@ + <select id="priority" name="task_priority"> + <?php + // Get list of priorities +- require("lang/$lang/priority.php"); ++ $fs->get_language_pack($lang, 'priority'); + foreach($priority_list as $key => $val) + { + if ($task_details['task_priority'] == $key) diff -ruN flyspray/files/patch-scripts::index.php flyspray-0.9.8.1/files/patch-scripts::index.php --- flyspray/files/patch-scripts::index.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-scripts::index.php Tue Nov 1 11:25:03 2005 @@ -0,0 +1,67 @@ +--- scripts/index.php.orig Sat Oct 22 13:41:49 2005 ++++ scripts/index.php Thu Oct 27 00:09:01 2005 +@@ -129,14 +129,16 @@ + // Those who aren't super users get this more restrictive query + } elseif (isset($_COOKIE['flyspray_userid'])) + { +- $check_projects = $db->Query("SELECT p.project_id +- FROM {$dbprefix}users_in_groups uig +- LEFT JOIN {$dbprefix}groups g ON uig.group_id = g.group_id, +- {$dbprefix}projects p +- WHERE ((uig.user_id = ? +- AND g.view_tasks = '1') +- OR p.others_view = '1') +- AND p.project_is_active = '1' ++ $check_projects = $db->Query("SELECT p.* FROM {$dbprefix}projects p ++ LEFT JOIN {$dbprefix}groups g ++ ON p.project_id=g.belongs_to_project ++ AND g.view_tasks=1 ++ LEFT JOIN {$dbprefix}users_in_groups uig ++ ON uig.group_id = g.group_id ++ AND uig.user_id = ? ++ WHERE p.project_is_active='1' ++ AND (p.others_view ++ OR uig.user_id IS NOT NULL) + ORDER BY p.project_title", + array($current_user['user_id']) + ); +@@ -334,7 +336,7 @@ + <select name="sev"> + <option value=""><?php echo $index_text['allseverities'];?></option> + <?php +- require("lang/$lang/severity.php"); ++ $fs->get_language_pack($lang, 'severity'); + foreach($severity_list as $key => $val) + { + if (isset($_GET['sev']) && $_GET['sev'] == $key) +@@ -430,7 +432,7 @@ + <option value="all" <?php if (isset($_GET['status']) && $_GET['status'] == 'all') echo 'selected="selected"';?>><?php echo $index_text['allstatuses'];?></option> + <option value="" <?php if ((isset($_GET['status']) && empty($_GET['status'])) OR !isset($_GET['status'])) { echo "selected=\"selected\"";}?>><?php echo $index_text['allopentasks'];?></option> + <?php +- require("lang/$lang/status.php"); ++ $fs->get_language_pack($lang, 'status'); + foreach($status_list as $key => $val) + { + if (isset($_GET['status']) && $_GET['status'] == $key) +@@ -739,18 +741,18 @@ + { + // Get the full status name + $status_id = $task_details['item_status']; +- require("lang/$lang/status.php"); ++ $fs->get_language_pack($lang, 'status'); + $status = $status_list[$status_id]; + } + + // Get the full severity name + $severity_id = $task_details['task_severity']; +- require("lang/$lang/severity.php"); ++ $fs->get_language_pack($lang, 'severity'); + $severity = $severity_list[$severity_id]; + + // Get the full priority name + $priority_id = $task_details['task_priority']; +- require("lang/$lang/priority.php"); ++ $fs->get_language_pack($lang, 'priority'); + $priority = $priority_list[$priority_id]; + + // see if it's been assigned diff -ruN flyspray/files/patch-scripts::newtask.php flyspray-0.9.8.1/files/patch-scripts::newtask.php --- flyspray/files/patch-scripts::newtask.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-scripts::newtask.php Tue Nov 1 11:25:03 2005 @@ -0,0 +1,29 @@ +--- scripts/newtask.php.orig Thu Sep 29 21:43:25 2005 ++++ scripts/newtask.php Wed Oct 26 23:03:01 2005 +@@ -104,7 +104,7 @@ + <select id="itemstatus" name="item_status" <?php if ($permissions['modify_all_tasks'] != "1") echo ' disabled="disabled"';?>> + <?php + // Get list of statuses +- require("lang/$lang/status.php"); ++ $fs->get_language_pack($lang, 'status'); + foreach($status_list as $key => $val) + { + if ($key == '2') +@@ -177,7 +177,7 @@ + <select id="taskseverity" class="adminlist" name="task_severity"> + <?php + // Get list of severities +- require("lang/$lang/severity.php"); ++ $fs->get_language_pack($lang, 'severity'); + foreach($severity_list as $key => $val) + { + if ($key == '2') +@@ -198,7 +198,7 @@ + <select id="task_priority" name="task_priority" <?php if ($permissions['modify_all_tasks'] != "1") echo ' disabled="disabled"';?>> + <?php + // Get list of statuses +- require("lang/$lang/priority.php"); ++ $fs->get_language_pack($lang, 'priority'); + foreach($priority_list as $key => $val) + { + if ($key == '2') diff -ruN flyspray/files/patch-scripts::reports.php flyspray-0.9.8.1/files/patch-scripts::reports.php --- flyspray/files/patch-scripts::reports.php Thu Jan 1 01:00:00 1970 +++ flyspray-0.9.8.1/files/patch-scripts::reports.php Tue Nov 1 11:25:04 2005 @@ -0,0 +1,17 @@ +--- scripts/reports.php.orig Mon Oct 3 12:51:02 2005 ++++ scripts/reports.php Thu Oct 27 00:09:01 2005 +@@ -353,9 +353,12 @@ + $date = 'from'; + $fromdate = $_REQUEST['fromdate']; + $todate = $_REQUEST['todate']; +- ++ if (!isset($fromdate) || $fromdate=="") { $fromdate = date("d-M-Y"); } ++ if (!isset($todate) || $todate=="") { $todate = date("d-M-Y"); } ++ + $ufromdate = strtotime($fromdate); +- $utodate = strtotime($todate); ++ // Add 24 hours to the end to make it include that date ++ $utodate = strtotime($todate) + 86400; + + $wheredate = "AND h.event_date > {$ufromdate} AND h.event_date < {$utodate}"; + break; diff -ruN flyspray/files/patch-sql::install-0.9.7.php flyspray-0.9.8.1/files/patch-sql::install-0.9.7.php --- flyspray/files/patch-sql::install-0.9.7.php Thu Mar 24 23:24:24 2005 +++ flyspray-0.9.8.1/files/patch-sql::install-0.9.7.php Thu Jan 1 01:00:00 1970 @@ -1,11 +0,0 @@ ---- sql/install-0.9.7.php.orig Thu Mar 24 17:26:47 2005 -+++ sql/install-0.9.7.php Thu Mar 24 17:28:09 2005 -@@ -75,7 +75,7 @@ - // This line gets the operating system so that we know which way to put slashes in the path - strstr( PHP_OS, "WIN") ? $slash = "\\" : $slash = "/"; - $basedir = realpath('../') . $slash; --$adodbpath = $basedir . 'adodb' . $slash . 'adodb.inc.php'; -+$adodbpath = '%%LOCALBASE%%' . $slash . 'adodb' . $slash . 'adodb.inc.php'; - - if (!isset($_SESSION['basedir'])) { - $_SESSION['basedir'] = $basedir; diff -ruN flyspray/pkg-descr flyspray-0.9.8.1/pkg-descr --- flyspray/pkg-descr Thu Aug 28 20:56:31 2003 +++ flyspray-0.9.8.1/pkg-descr Tue Nov 1 11:03:30 2005 @@ -2,10 +2,21 @@ finding something that suits your needs? Tried installing Bugzilla, but found it too complex? -Flyspray is an easy to use bug tracking system for those who don't require -all the complexities of something like Bugzilla. +Flyspray is a power but easy to use bug tracking system for those who don't +require all the complexities of something like Bugzilla. -Initially developed for the Psi project, Flyspray is now available for -everyone to download and use for their own projects. +Features include: + + * Web-based, platform-independent + * Multiple database support (through the ADOdb database abstraction + layer) + * Easy installation + * Easy to use + * Multiple projects + * Permissions-based user groups + * 'Watching' tasks, with notification of changes (email or Jabber) + * Comprehensive task history + * File attachments + * CSS themes WWW: http://flyspray.rocks.cc/ diff -ruN flyspray/pkg-plist flyspray-0.9.8.1/pkg-plist --- flyspray/pkg-plist Fri Apr 29 16:56:05 2005 +++ flyspray-0.9.8.1/pkg-plist Tue Nov 1 16:05:32 2005 @@ -1,339 +1,242 @@ +%%DATADIR%%/.htaccess +%%DATADIR%%/adodb %%DATADIR%%/attachments -%%DATADIR%%/header.php-dist +%%DATADIR%%/docs/licences/gnu_lgpl.html %%DATADIR%%/favicon.ico +%%DATADIR%%/flyspray.conf.php +%%DATADIR%%/flyspray.conf.php-dist %%DATADIR%%/header.php -%%DATADIR%%/includes/styleswitcher.js -%%DATADIR%%/includes/regexp.php +%%DATADIR%%/includes/archive_tar.php +%%DATADIR%%/includes/backend.inc.php +%%DATADIR%%/includes/class.jabber.php +%%DATADIR%%/includes/class.phpmailer.php +%%DATADIR%%/includes/class.smtp.php +%%DATADIR%%/includes/db.inc.php +%%DATADIR%%/includes/functions.inc.php %%DATADIR%%/includes/functions.js -%%DATADIR%%/includes/jscalendar/lang/calendar-ko-utf8.js -%%DATADIR%%/includes/jscalendar/lang/calendar-fi.js -%%DATADIR%%/includes/jscalendar/lang/calendar-es.js -%%DATADIR%%/includes/jscalendar/lang/calendar-du.js -%%DATADIR%%/includes/jscalendar/lang/calendar-ko.js -%%DATADIR%%/includes/jscalendar/lang/calendar-si.js -%%DATADIR%%/includes/jscalendar/lang/calendar-no.js -%%DATADIR%%/includes/jscalendar/lang/calendar-hu.js -%%DATADIR%%/includes/jscalendar/lang/calendar-sk.js -%%DATADIR%%/includes/jscalendar/lang/calendar-ro.js -%%DATADIR%%/includes/jscalendar/lang/calendar-ru.js +%%DATADIR%%/includes/gzip_compress.php +%%DATADIR%%/includes/ie_hover.js +%%DATADIR%%/includes/jscalendar/calendar-blue.css +%%DATADIR%%/includes/jscalendar/calendar-blue2.css +%%DATADIR%%/includes/jscalendar/calendar-brown.css +%%DATADIR%%/includes/jscalendar/calendar-green.css +%%DATADIR%%/includes/jscalendar/calendar-setup.js +%%DATADIR%%/includes/jscalendar/calendar-setup_stripped.js +%%DATADIR%%/includes/jscalendar/calendar-system.css +%%DATADIR%%/includes/jscalendar/calendar-tas.css +%%DATADIR%%/includes/jscalendar/calendar-win2k-1.css +%%DATADIR%%/includes/jscalendar/calendar-win2k-2.css +%%DATADIR%%/includes/jscalendar/calendar-win2k-cold-1.css +%%DATADIR%%/includes/jscalendar/calendar-win2k-cold-2.css +%%DATADIR%%/includes/jscalendar/calendar.js +%%DATADIR%%/includes/jscalendar/calendar.php +%%DATADIR%%/includes/jscalendar/calendar_stripped.js %%DATADIR%%/includes/jscalendar/lang/calendar-af.js -%%DATADIR%%/includes/jscalendar/lang/calendar-hr-utf8.js -%%DATADIR%%/includes/jscalendar/lang/calendar-pl-utf8.js +%%DATADIR%%/includes/jscalendar/lang/calendar-al.js +%%DATADIR%%/includes/jscalendar/lang/calendar-bg.js +%%DATADIR%%/includes/jscalendar/lang/calendar-big5-utf8.js +%%DATADIR%%/includes/jscalendar/lang/calendar-big5.js +%%DATADIR%%/includes/jscalendar/lang/calendar-br.js +%%DATADIR%%/includes/jscalendar/lang/calendar-ca.js +%%DATADIR%%/includes/jscalendar/lang/calendar-cs-utf8.js %%DATADIR%%/includes/jscalendar/lang/calendar-cs-win.js +%%DATADIR%%/includes/jscalendar/lang/calendar-da.js +%%DATADIR%%/includes/jscalendar/lang/calendar-de.js +%%DATADIR%%/includes/jscalendar/lang/calendar-du.js %%DATADIR%%/includes/jscalendar/lang/calendar-el.js %%DATADIR%%/includes/jscalendar/lang/calendar-en.js -%%DATADIR%%/includes/jscalendar/lang/calendar-br.js -%%DATADIR%%/includes/jscalendar/lang/calendar-lt-utf8.js +%%DATADIR%%/includes/jscalendar/lang/calendar-es.js +%%DATADIR%%/includes/jscalendar/lang/calendar-fi.js %%DATADIR%%/includes/jscalendar/lang/calendar-fr.js -%%DATADIR%%/includes/jscalendar/lang/calendar-nl.js +%%DATADIR%%/includes/jscalendar/lang/calendar-he-utf8.js +%%DATADIR%%/includes/jscalendar/lang/calendar-hr-utf8.js %%DATADIR%%/includes/jscalendar/lang/calendar-hr.js -%%DATADIR%%/includes/jscalendar/lang/calendar-jp.js -%%DATADIR%%/includes/jscalendar/lang/calendar-pl.js +%%DATADIR%%/includes/jscalendar/lang/calendar-hu.js %%DATADIR%%/includes/jscalendar/lang/calendar-it.js +%%DATADIR%%/includes/jscalendar/lang/calendar-jp.js +%%DATADIR%%/includes/jscalendar/lang/calendar-ko-utf8.js +%%DATADIR%%/includes/jscalendar/lang/calendar-ko.js +%%DATADIR%%/includes/jscalendar/lang/calendar-lt-utf8.js %%DATADIR%%/includes/jscalendar/lang/calendar-lt.js -%%DATADIR%%/includes/jscalendar/lang/calendar-zh.js -%%DATADIR%%/includes/jscalendar/lang/calendar-sp.js -%%DATADIR%%/includes/jscalendar/lang/calendar-ca.js +%%DATADIR%%/includes/jscalendar/lang/calendar-lv.js +%%DATADIR%%/includes/jscalendar/lang/calendar-nl.js +%%DATADIR%%/includes/jscalendar/lang/calendar-no.js +%%DATADIR%%/includes/jscalendar/lang/calendar-pl-utf8.js +%%DATADIR%%/includes/jscalendar/lang/calendar-pl.js %%DATADIR%%/includes/jscalendar/lang/calendar-pt.js -%%DATADIR%%/includes/jscalendar/lang/calendar-da.js -%%DATADIR%%/includes/jscalendar/lang/calendar-tr.js +%%DATADIR%%/includes/jscalendar/lang/calendar-ro.js +%%DATADIR%%/includes/jscalendar/lang/calendar-ru.js +%%DATADIR%%/includes/jscalendar/lang/calendar-ru_win_.js +%%DATADIR%%/includes/jscalendar/lang/calendar-si.js +%%DATADIR%%/includes/jscalendar/lang/calendar-sk.js +%%DATADIR%%/includes/jscalendar/lang/calendar-sp.js %%DATADIR%%/includes/jscalendar/lang/calendar-sv.js -%%DATADIR%%/includes/jscalendar/lang/calendar-de.js -%%DATADIR%%/includes/jscalendar/img.gif -%%DATADIR%%/includes/jscalendar/calendar-system.css -%%DATADIR%%/includes/jscalendar/calendar-setup.js +%%DATADIR%%/includes/jscalendar/lang/calendar-tr.js +%%DATADIR%%/includes/jscalendar/lang/calendar-zh.js +%%DATADIR%%/includes/jscalendar/lang/cn_utf8.js %%DATADIR%%/includes/jscalendar/menuarrow.gif -%%DATADIR%%/includes/jscalendar/test-position.html -%%DATADIR%%/includes/jscalendar/calendar.js -%%DATADIR%%/includes/jscalendar/calendar-brown.css -%%DATADIR%%/includes/jscalendar/calendar-blue.css -%%DATADIR%%/includes/jscalendar/calendar-tas.css -%%DATADIR%%/includes/jscalendar/calendar-win2k-1.css -%%DATADIR%%/includes/jscalendar/calendar-win2k-2.css -%%DATADIR%%/includes/jscalendar/ChangeLog -%%DATADIR%%/includes/jscalendar/simple-1.html -%%DATADIR%%/includes/jscalendar/simple-2.html -%%DATADIR%%/includes/jscalendar/simple-3.html -%%DATADIR%%/includes/jscalendar/README -%%DATADIR%%/includes/jscalendar/calendar.php -%%DATADIR%%/includes/jscalendar/calendar-setup_stripped.js -%%DATADIR%%/includes/jscalendar/calendar-green.css -%%DATADIR%%/includes/jscalendar/calendar_stripped.js %%DATADIR%%/includes/jscalendar/menuarrow2.gif -%%DATADIR%%/includes/jscalendar/test.php -%%DATADIR%%/includes/jscalendar/calendar-blue2.css -%%DATADIR%%/includes/jscalendar/calendar-win2k-cold-1.css -%%DATADIR%%/includes/jscalendar/calendar-win2k-cold-2.css -%%DATADIR%%/includes/jscalendar/release-notes.html -%%DATADIR%%/includes/jscalendar/index.html -%%DATADIR%%/includes/jscalendar/bugtest-hidden-selects.html -%%DATADIR%%/includes/functions.inc.php +%%DATADIR%%/includes/jscalendar/skins/aqua/active-bg.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/dark-bg.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/hover-bg.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/menuarrow.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/normal-bg.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/rowhover-bg.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/status-bg.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/theme.css +%%DATADIR%%/includes/jscalendar/skins/aqua/title-bg.gif +%%DATADIR%%/includes/jscalendar/skins/aqua/today-bg.gif %%DATADIR%%/includes/markdown.php -%%DATADIR%%/includes/gzip_compress.php +%%DATADIR%%/includes/notify.inc.php +%%DATADIR%%/includes/regexp.php +%%DATADIR%%/includes/styleswitcher.js +%%DATADIR%%/includes/tabs.js +%%DATADIR%%/includes/template.php +%%DATADIR%%/includes/version.php +%%DATADIR%%/includes/xmlrpc.inc +%%DATADIR%%/includes/xmlrpcs.inc %%DATADIR%%/index.php +%%DATADIR%%/lang/en/admin.php %%DATADIR%%/lang/en/authenticate.php -%%DATADIR%%/lang/en/reports.php -%%DATADIR%%/lang/en/newgroup.php -%%DATADIR%%/lang/en/index.php -%%DATADIR%%/lang/en/severity.php -%%DATADIR%%/lang/en/newtask.php -%%DATADIR%%/lang/en/functions.inc.php -%%DATADIR%%/lang/en/newproject.php %%DATADIR%%/lang/en/chpass.php +%%DATADIR%%/lang/en/details.php +%%DATADIR%%/lang/en/functions.inc.php +%%DATADIR%%/lang/en/index.php %%DATADIR%%/lang/en/loginbox.php -%%DATADIR%%/lang/en/priority.php -%%DATADIR%%/lang/en/status.php %%DATADIR%%/lang/en/main.php -%%DATADIR%%/lang/en/register.php -%%DATADIR%%/lang/en/details.php %%DATADIR%%/lang/en/modify.php +%%DATADIR%%/lang/en/newgroup.php +%%DATADIR%%/lang/en/newproject.php +%%DATADIR%%/lang/en/newtask.php %%DATADIR%%/lang/en/newuser.php -%%DATADIR%%/lang/en/admin.php -%%DATADIR%%/lang/ptbr/authenticate.php -%%DATADIR%%/lang/ptbr/newgroup.php -%%DATADIR%%/lang/ptbr/index.php -%%DATADIR%%/lang/ptbr/severity.php -%%DATADIR%%/lang/ptbr/newtask.php -%%DATADIR%%/lang/ptbr/functions.inc.php -%%DATADIR%%/lang/ptbr/newproject.php -%%DATADIR%%/lang/ptbr/loginbox.php -%%DATADIR%%/lang/ptbr/chpass.php -%%DATADIR%%/lang/ptbr/status.php -%%DATADIR%%/lang/ptbr/main.php -%%DATADIR%%/lang/ptbr/register.php -%%DATADIR%%/lang/ptbr/details.php -%%DATADIR%%/lang/ptbr/readme.txt -%%DATADIR%%/lang/ptbr/modify.php -%%DATADIR%%/lang/ptbr/newuser.php -%%DATADIR%%/lang/ptbr/admin.php +%%DATADIR%%/lang/en/notify.inc.php +%%DATADIR%%/lang/en/pm.php +%%DATADIR%%/lang/en/priority.php +%%DATADIR%%/lang/en/register.php +%%DATADIR%%/lang/en/reports.php +%%DATADIR%%/lang/en/severity.php +%%DATADIR%%/lang/en/status.php %%DATADIR%%/lang/langdiff.php -%%DATADIR%%/lang/fr/authenticate.php -%%DATADIR%%/lang/fr/reports.php -%%DATADIR%%/lang/fr/newgroup.php -%%DATADIR%%/lang/fr/index.php -%%DATADIR%%/lang/fr/severity.php -%%DATADIR%%/lang/fr/newtask.php -%%DATADIR%%/lang/fr/functions.inc.php -%%DATADIR%%/lang/fr/newproject.php -%%DATADIR%%/lang/fr/loginbox.php -%%DATADIR%%/lang/fr/chpass.php -%%DATADIR%%/lang/fr/priority.php -%%DATADIR%%/lang/fr/status.php -%%DATADIR%%/lang/fr/register.php -%%DATADIR%%/lang/fr/main.php -%%DATADIR%%/lang/fr/details.php -%%DATADIR%%/lang/fr/modify.php -%%DATADIR%%/lang/fr/admin.php -%%DATADIR%%/lang/fr/newuser.php -%%DATADIR%%/lang/es/authenticate.php -%%DATADIR%%/lang/es/newgroup.php -%%DATADIR%%/lang/es/index.php -%%DATADIR%%/lang/es/severity.php -%%DATADIR%%/lang/es/newtask.php -%%DATADIR%%/lang/es/functions.inc.php -%%DATADIR%%/lang/es/newproject.php -%%DATADIR%%/lang/es/loginbox.php -%%DATADIR%%/lang/es/chpass.php -%%DATADIR%%/lang/es/status.php -%%DATADIR%%/lang/es/main.php -%%DATADIR%%/lang/es/register.php -%%DATADIR%%/lang/es/details.php -%%DATADIR%%/lang/es/modify.php -%%DATADIR%%/lang/es/newuser.php -%%DATADIR%%/lang/es/admin.php -%%DATADIR%%/lang/de/authenticate.php -%%DATADIR%%/lang/de/reports.php -%%DATADIR%%/lang/de/newgroup.php -%%DATADIR%%/lang/de/index.php -%%DATADIR%%/lang/de/severity.php -%%DATADIR%%/lang/de/newtask.php -%%DATADIR%%/lang/de/functions.inc.php -%%DATADIR%%/lang/de/newproject.php -%%DATADIR%%/lang/de/loginbox.php -%%DATADIR%%/lang/de/priority.php -%%DATADIR%%/lang/de/chpass.php -%%DATADIR%%/lang/de/status.php -%%DATADIR%%/lang/de/register.php -%%DATADIR%%/lang/de/main.php -%%DATADIR%%/lang/de/details.php -%%DATADIR%%/lang/de/modify.php -%%DATADIR%%/lang/de/newuser.php -%%DATADIR%%/lang/de/admin.php -%%DATADIR%%/lang/nl/authenticate.php -%%DATADIR%%/lang/nl/reports.php -%%DATADIR%%/lang/nl/newgroup.php -%%DATADIR%%/lang/nl/index.php -%%DATADIR%%/lang/nl/severity.php -%%DATADIR%%/lang/nl/newtask.php -%%DATADIR%%/lang/nl/functions.inc.php -%%DATADIR%%/lang/nl/newproject.php -%%DATADIR%%/lang/nl/loginbox.php -%%DATADIR%%/lang/nl/chpass.php -%%DATADIR%%/lang/nl/priority.php -%%DATADIR%%/lang/nl/status.php -%%DATADIR%%/lang/nl/register.php -%%DATADIR%%/lang/nl/main.php -%%DATADIR%%/lang/nl/details.php -%%DATADIR%%/lang/nl/modify.php -%%DATADIR%%/lang/nl/admin.php -%%DATADIR%%/lang/nl/newuser.php -%%DATADIR%%/lang/pl/authenticate.php -%%DATADIR%%/lang/pl/reports.php -%%DATADIR%%/lang/pl/newgroup.php -%%DATADIR%%/lang/pl/index.php -%%DATADIR%%/lang/pl/severity.php -%%DATADIR%%/lang/pl/newtask.php -%%DATADIR%%/lang/pl/functions.inc.php -%%DATADIR%%/lang/pl/newproject.php -%%DATADIR%%/lang/pl/loginbox.php -%%DATADIR%%/lang/pl/chpass.php -%%DATADIR%%/lang/pl/priority.php -%%DATADIR%%/lang/pl/status.php -%%DATADIR%%/lang/pl/register.php -%%DATADIR%%/lang/pl/main.php -%%DATADIR%%/lang/pl/details.php -%%DATADIR%%/lang/pl/modify.php -%%DATADIR%%/lang/pl/admin.php -%%DATADIR%%/lang/pl/newuser.php -%%DATADIR%%/lang/it/authenticate.php -%%DATADIR%%/lang/it/reports.php -%%DATADIR%%/lang/it/newgroup.php -%%DATADIR%%/lang/it/index.php -%%DATADIR%%/lang/it/severity.php -%%DATADIR%%/lang/it/newtask.php -%%DATADIR%%/lang/it/functions.inc.php -%%DATADIR%%/lang/it/newproject.php -%%DATADIR%%/lang/it/chpass.php -%%DATADIR%%/lang/it/loginbox.php -%%DATADIR%%/lang/it/priority.php -%%DATADIR%%/lang/it/status.php -%%DATADIR%%/lang/it/register.php -%%DATADIR%%/lang/it/main.php -%%DATADIR%%/lang/it/details.php -%%DATADIR%%/lang/it/modify.php -%%DATADIR%%/lang/it/admin.php -%%DATADIR%%/lang/it/newuser.php -%%DATADIR%%/lang/dk/authenticate.php -%%DATADIR%%/lang/dk/newgroup.php -%%DATADIR%%/lang/dk/index.php -%%DATADIR%%/lang/dk/severity.php -%%DATADIR%%/lang/dk/newtask.php -%%DATADIR%%/lang/dk/functions.inc.php -%%DATADIR%%/lang/dk/newproject.php -%%DATADIR%%/lang/dk/chpass.php -%%DATADIR%%/lang/dk/loginbox.php -%%DATADIR%%/lang/dk/status.php -%%DATADIR%%/lang/dk/register.php -%%DATADIR%%/lang/dk/main.php -%%DATADIR%%/lang/dk/details.php -%%DATADIR%%/lang/dk/modify.php -%%DATADIR%%/lang/dk/newuser.php -%%DATADIR%%/lang/dk/admin.php +%%DATADIR%%/remote-client.php +%%DATADIR%%/remote.php +%%DATADIR%%/scripts/admin.php %%DATADIR%%/scripts/authenticate.php -%%DATADIR%%/scripts/reports.php -%%DATADIR%%/scripts/newgroup.php -%%DATADIR%%/scripts/rss.php -%%DATADIR%%/scripts/index.php -%%DATADIR%%/scripts/newtask.php -%%DATADIR%%/scripts/newproject.php %%DATADIR%%/scripts/chproject.php -%%DATADIR%%/scripts/loginbox.php -%%DATADIR%%/scripts/schrem.php -%%DATADIR%%/scripts/register.php +%%DATADIR%%/scripts/daemon.php +%%DATADIR%%/scripts/depends.php %%DATADIR%%/scripts/details.php +%%DATADIR%%/scripts/editcomment.php +%%DATADIR%%/scripts/error.php +%%DATADIR%%/scripts/index.php +%%DATADIR%%/scripts/loginbox.php +%%DATADIR%%/scripts/lostpw.php %%DATADIR%%/scripts/modify.php -%%DATADIR%%/scripts/admin.php +%%DATADIR%%/scripts/myprofile.php +%%DATADIR%%/scripts/newgroup.php +%%DATADIR%%/scripts/newtask.php %%DATADIR%%/scripts/newuser.php -%%DATADIR%%/sql/upgrade_0.9.5_to_0.9.6-pgsql.php -%%DATADIR%%/sql/upgrade_0.9.6_to_0.9.7.mysql -%%DATADIR%%/sql/flyspray-0.9.7.mysql -%%DATADIR%%/sql/mysql2pgsql.pl +%%DATADIR%%/scripts/pm.php +%%DATADIR%%/scripts/register.php +%%DATADIR%%/scripts/reports.php +%%DATADIR%%/scripts/rss.php +%%DATADIR%%/scripts/rss2.php +%%DATADIR%%/scripts/schedule.php +%%DATADIR%%/setup/images/exclamation.png +%%DATADIR%%/setup/images/title.png +%%DATADIR%%/setup/index.php +%%DATADIR%%/setup/styles/setup.css +%%DATADIR%%/setup/styles/theme.css +%%DATADIR%%/setup/templates/administration.tpl.php +%%DATADIR%%/setup/templates/complete_install.tpl.php +%%DATADIR%%/setup/templates/database.tpl.php +%%DATADIR%%/setup/templates/license.tpl.php +%%DATADIR%%/setup/templates/pre_install.tpl.php +%%DATADIR%%/setup/templates/structure.tpl.php +%%DATADIR%%/sql/flyspray-0.9.8.mysql +%%DATADIR%%/sql/flyspray-0.9.8.pgsql %%DATADIR%%/sql/flyspray.conf.skel -%%DATADIR%%/sql/install-0.9.7.php -%%DATADIR%%/sql/upgrade_0.9.3.1_to_0.9.4-mysql.php -%%DATADIR%%/sql/upgrade_0.9.6_to_0.9.7.pgsql -%%DATADIR%%/sql/upgrade_0.9.4_to_0.9.5-mysql.php -%%DATADIR%%/sql/upgrade_0.9.6_to_0.9.7.php -%%DATADIR%%/sql/upgrade_0.9.5_to_0.9.6-mysql.php -%%DATADIR%%/sql/flyspray-0.9.7.pgsql -%%DATADIR%%/themes/Bluey/tab-notactive.png -%%DATADIR%%/themes/Bluey/percent-0.png -%%DATADIR%%/themes/Bluey/percent-100.png +%%DATADIR%%/sql/upgrade_0.9.7_to_0.9.8.mysql +%%DATADIR%%/sql/upgrade_0.9.7_to_0.9.8.pgsql +%%DATADIR%%/themes/Bluey/asc.png +%%DATADIR%%/themes/Bluey/attachment.png +%%DATADIR%%/themes/Bluey/button-over.png +%%DATADIR%%/themes/Bluey/button.png +%%DATADIR%%/themes/Bluey/calendar.png +%%DATADIR%%/themes/Bluey/comment.png +%%DATADIR%%/themes/Bluey/desc.png +%%DATADIR%%/themes/Bluey/frown.png +%%DATADIR%%/themes/Bluey/index.html +%%DATADIR%%/themes/Bluey/menu/comment.png +%%DATADIR%%/themes/Bluey/menu/editmydetails.png +%%DATADIR%%/themes/Bluey/menu/lists.png +%%DATADIR%%/themes/Bluey/menu/logout.png +%%DATADIR%%/themes/Bluey/menu/newtask.png +%%DATADIR%%/themes/Bluey/menu/options.png +%%DATADIR%%/themes/Bluey/menu/projectprefs.png +%%DATADIR%%/themes/Bluey/menu/reports.png +%%DATADIR%%/themes/Bluey/menu/search.png +%%DATADIR%%/themes/Bluey/menu/usersandgroups.png +%%DATADIR%%/themes/Bluey/mime/application.png %%DATADIR%%/themes/Bluey/mime/application/octet-stream.png -%%DATADIR%%/themes/Bluey/mime/application/x-gzip.png %%DATADIR%%/themes/Bluey/mime/application/pdf.png -%%DATADIR%%/themes/Bluey/mime/text/html.png +%%DATADIR%%/themes/Bluey/mime/application/x-gzip.png %%DATADIR%%/themes/Bluey/mime/audio.png %%DATADIR%%/themes/Bluey/mime/image.png -%%DATADIR%%/themes/Bluey/mime/application.png %%DATADIR%%/themes/Bluey/mime/text.png +%%DATADIR%%/themes/Bluey/mime/text/html.png %%DATADIR%%/themes/Bluey/mime/video.png -%%DATADIR%%/themes/Bluey/menu/projectprefs.png -%%DATADIR%%/themes/Bluey/menu/newtask.png -%%DATADIR%%/themes/Bluey/menu/reports.png -%%DATADIR%%/themes/Bluey/menu/lists.png -%%DATADIR%%/themes/Bluey/menu/comment.png -%%DATADIR%%/themes/Bluey/menu/editmydetails.png -%%DATADIR%%/themes/Bluey/menu/search.png -%%DATADIR%%/themes/Bluey/menu/usersandgroups.png -%%DATADIR%%/themes/Bluey/menu/logout.png -%%DATADIR%%/themes/Bluey/menu/options.png -%%DATADIR%%/themes/Bluey/comment.png +%%DATADIR%%/themes/Bluey/next.png +%%DATADIR%%/themes/Bluey/percent-0.png %%DATADIR%%/themes/Bluey/percent-10.png -%%DATADIR%%/themes/Bluey/theme.css -%%DATADIR%%/themes/Bluey/asc.png -%%DATADIR%%/themes/Bluey/calendar.png -%%DATADIR%%/themes/Bluey/smile.png -%%DATADIR%%/themes/Bluey/button.png -%%DATADIR%%/themes/Bluey/desc.png +%%DATADIR%%/themes/Bluey/percent-100.png %%DATADIR%%/themes/Bluey/percent-20.png -%%DATADIR%%/themes/Bluey/tab-active.png %%DATADIR%%/themes/Bluey/percent-30.png -%%DATADIR%%/themes/Bluey/title.png %%DATADIR%%/themes/Bluey/percent-40.png %%DATADIR%%/themes/Bluey/percent-50.png %%DATADIR%%/themes/Bluey/percent-60.png %%DATADIR%%/themes/Bluey/percent-70.png -%%DATADIR%%/themes/Bluey/button-over.png %%DATADIR%%/themes/Bluey/percent-80.png %%DATADIR%%/themes/Bluey/percent-90.png -%%DATADIR%%/themes/Bluey/index.html -%%DATADIR%%/themes/Bluey/attachment.png -%%DATADIR%%/themes/Bluey/frown.png +%%DATADIR%%/themes/Bluey/prev.png +%%DATADIR%%/themes/Bluey/smile.png +%%DATADIR%%/themes/Bluey/tab-active.png +%%DATADIR%%/themes/Bluey/tab-notactive.png +%%DATADIR%%/themes/Bluey/theme.css +%%DATADIR%%/themes/Bluey/title.png %%PORTDOCS%%%%DOCSDIR%%/AUTHORS.txt %%PORTDOCS%%%%DOCSDIR%%/BUGS.txt %%PORTDOCS%%%%DOCSDIR%%/CHANGELOG.txt %%PORTDOCS%%%%DOCSDIR%%/INSTALL.txt +%%PORTDOCS%%%%DOCSDIR%%/QA_CHECKLIST.txt %%PORTDOCS%%%%DOCSDIR%%/README.txt %%PORTDOCS%%%%DOCSDIR%%/TODO.txt %%PORTDOCS%%%%DOCSDIR%%/UPGRADING.txt %%PORTDOCS%%%%DOCSDIR%%/ADOdb.licence.txt %%PORTDOCS%%%%DOCSDIR%%/Flyspray.licence.txt +%%PORTDOCS%%%%DOCSDIR%%/class.jabber.php.licence.txt %%PORTDOCS%%%%DOCSDIR%%/NuvolaIcons.licence.txt %%PORTDOCS%%%%DOCSDIR%%/jsCalendar.licence.txt %%PORTDOCS%%%%DOCSDIR%%/phpMarkdown.licence.txt +%%PORTDOCS%%%%DOCSDIR%%/phpmailer.licence.txt %%PORTDOCS%%%%DOCSDIR%%/README.FreeBSD %%PORTDOCS%%@dirrm %%DOCSDIR%% +@dirrm %%DATADIR%%/docs/licences +@dirrm %%DATADIR%%/docs @dirrm %%DATADIR%%/includes/jscalendar/lang +@dirrm %%DATADIR%%/includes/jscalendar/skins/aqua +@dirrm %%DATADIR%%/includes/jscalendar/skins @dirrm %%DATADIR%%/includes/jscalendar @dirrm %%DATADIR%%/includes @dirrm %%DATADIR%%/lang/en -@dirrm %%DATADIR%%/lang/ptbr -@dirrm %%DATADIR%%/lang/fr -@dirrm %%DATADIR%%/lang/es -@dirrm %%DATADIR%%/lang/de -@dirrm %%DATADIR%%/lang/nl -@dirrm %%DATADIR%%/lang/pl -@dirrm %%DATADIR%%/lang/it -@dirrm %%DATADIR%%/lang/dk @dirrm %%DATADIR%%/lang @dirrm %%DATADIR%%/scripts +@dirrm %%DATADIR%%/setup/styles +@dirrm %%DATADIR%%/setup/images +@dirrm %%DATADIR%%/setup/templates +@dirrm %%DATADIR%%/setup @dirrm %%DATADIR%%/sql -@dirrm %%DATADIR%%/themes/Bluey/mime/audio -@dirrm %%DATADIR%%/themes/Bluey/mime/image @dirrm %%DATADIR%%/themes/Bluey/mime/application @dirrm %%DATADIR%%/themes/Bluey/mime/text -@dirrm %%DATADIR%%/themes/Bluey/mime/video @dirrm %%DATADIR%%/themes/Bluey/mime @dirrm %%DATADIR%%/themes/Bluey/menu @dirrm %%DATADIR%%/themes/Bluey
State Changed From-To: feedback->open Feedback received. But remove PORT_EPOCH before commit.
State Changed From-To: open->closed Committed, thanks!