[Fusionforge-commits] FusionForge branch 6.0 updated. v6.0.3-63-g76441ae

Franck Villaume nerville at libremir.placard.fr.eu.org
Fri Jan 15 00:28:03 CET 2016

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, 6.0 has been updated
       via  76441ae2acab9c6f3a34a051038956e37465d717 (commit)
       via  af1035d8d278ca1e3cc0cc9df99ff9aeadcfe099 (commit)
       via  7cae201adeaabdbcb3591baa14cd4137436737c3 (commit)
       via  b0dbfdf7d77aa53fa3801a38424d414b7aaa6bfe (commit)
      from  df25d5d8d0641c378eace91ba156fcf96c826c2b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------

commit 76441ae2acab9c6f3a34a051038956e37465d717
Merge: df25d5d af1035d
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date:   Fri Jan 15 00:27:52 2016 +0100

    Merge branch 'Branch_5_3' into 6.0

diff --cc src/CHANGES
index c0965ba,fa88fd7..3223efd
--- a/src/CHANGES
+++ b/src/CHANGES
@@@ -1,131 -1,5 +1,132 @@@
 +FusionForge 6.0.4:
 +* Accounts: do not accept digits-only user and group names, to avoid confusion with UID/GID in system commands (Inria)
 +* Accounts: drop redundant (and insecure) unsalted MD5 password hashes from the database (Inria)
 +* Accounts: trigger system replication when user changes password or shell (Inria)
 +* Accounts: passwords hashes: increase md5crypt salt length to 8; fix invalid Blowfish salt (Inria)
 +* Accounts: passwords hashes: add support for SHA256/SHA512 (Inria)
 +* Accounts: fix supported ssh keys types - again (Inria)
 +* FRS: fix shownotes.php link. Use new url form. view=shownotes (TrivialDev)
 +* FRS: frs latest zip migration script hardening (TrivialDev)
 +* MTA-Exim4: restart exim4 on install
 +* News: pending site news e-mail reminder: properly filter out private projects (Inria)
 +* Plugin cvstracker: fix permission issues 
 +* Plugin SCM: fix another race condition when creating project with SCM selected (Inria)
 +* Plugin SCM Git: improve user matching when computing stats, support git .mailmap (Inria)
 +* Plugin SCM SVN: fix HTTP commit access for old SVN 1.7 clients (Inria)
 +* Plugin scmhook: fix non-editable mailing list name in some configurations (Inria)
 +* Plugin scmhook: fix migration scripts svntracker To ScmhookCommitTracker & svncommitemail To ScmHookCommitEmail (TrivialDev)
 +* Plugin MediaWiki: fix permission error when upgrading suspended projects database (Inria & TrivialDev)
 +* Plugin MediaWiki: restore access to public dumps at /plugins/mediawiki/dumps/ (Inria)
 +* Plugin Projects Hierarchy: don't display a project as possible child if there's no read access to it (Inria)
 +* Plugin Projects Hierarchy: mask delegation checkbox until implementation is complete [#797] (Inria)
 +* Plugin Projects Hierarchy: prevent auto-validation of parent-child requests [#796] (Inria)
 +* Plugin Taskboard: fix blank admin page when project tracker is disabled (Inria)
 +* Updated simplified Chinese translation (Mingye Wang)
 +* Site Admin: fix grouplist.php listing projects using specific plugin [#800] (TrivialDev)
 +FusionForge 6.0.3:
 +* Layout: fix rss url when url is absolute (TrivialDev)
 +* Accounts: accept more elliptic curve ssh keys types (Unit 193 & Inria)
 +* Accounts: fix missing system privileges when using "Add Users From List" (Inria)
 +* Docman: fix filesize sort [#784] (TrivialDev)
 +* News: allow moderating news comments even if the Forum tool is disabled (Inria)
 +* Plugin SCM: fix race condition when creating project with SCM selected (Inria)
 +* Plugin SCM SVN: fix repo access to RO group (Inria)
 +* Plugin SCM Git: work-around for iframe access to private projects' gitweb from Firefox 40 (Inria)
 +* Plugin scmhook: git committracker: fix groupname detection on multi-server setup (Inria)
 +* Plugin scmhook: git postreceiveemail: don't prepend [projectname] in subject by default (Inria)
 +* Plugin Taskboard: remove in-progress French translation (Inria)
 +* Plugin Taskboard: block dropping item on columns with resolution "closed" [#781] (TrivialDev)
 +FusionForge 6.0.2:
 +* Accounts: fix elliptic curve ssh keys support (Inria)
 +* Project stats: fix misleading label on statistics default empty graph (Inria)
 +* Project stats: fix weekly aggregation and display (Inria)
 +* Mailing lists: fix description encoding depending on Mailman version (Inria & Thorsten Glaser)
 +* Mailing lists: fix default list URL path (Inria)
 +* Mailing lists: fix installation on CentOS (Inria)
 +* FRS: don't reset permissions when derefencing roles in other projects [#782] (Inria)
 +* FRS: do not display hidden releases publicly (TrivialDev & Inria)
 +* FRS: revert Notes and ChangeLog as optional fields - also when editing releases (Inria)
 +* Tracker: fix column title in add/update custom field elements (TrivialDev)
 +* Software Map: use "GNU/Linux" instead of "Linux" when referring to the OS (Inria)
 +* Snippets: allow forge administrator to delete snippets (Inria)
 +* Plugin Taskboard: fix logic on initialize error (TrivialDev)
 +* Plugin Taskboard: fix background column color setting (TrivialDev)
 +FusionForge 6.0.1:
 +* Accounts: accept elliptic curve ssh keys (Unit 193)
 +* Accounts: fix project join request form [#778] (Inria)
 +* Accounts: user home: fix missing full name when there's a title (Inria)
 +* SCM: fix commit privileges (*_scmro group membership) (Inria)
 +* SCM: kill stalled Apache processes (Inria)
 +* Forum: fix conflict between attachments and pending attachments [#662] (Inria)
 +* FRS: display new releases first (Roland Mas, for Inria)
 +* FRS: revert Notes and ChangeLog as optional fields (Inria)
 +* FRS: fix administration link in project Tools page (Inria)
 +* FRS: fix per-release .zip for old uploads [#774] (TrivialDev and Inria)
 +* FRS: fix links to release .zip when the package contain spaces (Inria)
 +* Tracker: fix description re-html-ization when editing item (Inria)
 +* Tracker: fix HTML entities in mail notifications (Inria)
 +* Tracker: provide a "Submit" button below the "add a comment" field [#776] (TrivialDev)
 +* Tracker: on item update, notify users who monitor the whole tracker (Inria)
 +* Tracker/FRS/Docman/Forum: allow viewing text and image files within the browser [#773] (Inria)
 +* Activity: commit log now works with private projects (Inria)
 +* Widgets: MyProjects: only display active projects (Inria)
 +* Widgets: MyLatestCommits, ProjectLatestCommits: now works with private projects (Inria)
 +* SCM SVN: fix double-compression in ViewVC (Inria)
 +* SCM SVN: support files with spaces in ViewVC (Inria)
 +* SCM SVN: fix permissions in migration script (Inria)
 +* Plugin scmhook: git commitemail: fix subject, handle special chars, sync script with upstream (Roland Mas and Inria)
 +* Plugin scmhook: fix hook deactivation (Inria)
 +* Plugin scmhook: fix predictable temporary file name (Roland Mas)
 +* Disable forceful gzip compression, mitigates BREACH attacks [#779] (tarent solutions GmbH and Inria)
 +* Doc clean-up (Inria)
 +FusionForge 6.0:
 +* New install system [#710] (Inria)
 +* Reactivity: system replication is now performed immediately (rather than waiting for cron jobs) [#147] (Inria)
 +* SCM: Concurrent SSH and HTTPS access, relying on Apache mod_itk [#519] (Roland Mas and Inria)
 +* SCM: Allow projects to use several SCM engines in parallel [#751] (Roland Mas, for CEA)
 +* SCM: Support read-only access to private projects via SSH (Inria)
 +* SCM: Browsing support for (Git) private repositories [#519] (Roland Mas, for AdaCore)
 +* SCM: Anonymous read-only access through xinetd and rsync (Inria)
 +* System: Users now use a common default group ("users") rather than per-user group; avoids conflicts with project groups [#760] (Inria)
 +* Docman: Basic Webdav write mkcol, delete, put, move support [#658] (TrivialDev)
 +* Docman: Add move mass actions [#657] (TrivialDev)
 +* Docman: Direct link to file details [#747] (TrivialDev)
 +* Docman: Rewrite parser using unoconv, support more file formats [#749] (Roland Mas, for CEA)
 +* FRS: Enable widget "My monitored packages" [#697] (TrivialDev)
 +* FRS: Provide new role settings [#705] (TrivialDev)
 +* FRS: Add delete packages, releases or files mass action [#713] (TrivialDev)
 +* FRS: Provide link to download any release as ZIP file [#737] (TrivialDev)
 +* FRS: Fix RBAC migration script [#765] (TrivialDev)
 +* FRS: Reorganise code [#692] (TrivialDev)
 +* Web UI: drop tipsy plugin, use standard jQuery UI tooltip already provided [#656] (TrivialDev)
 +* Web UI: FusionForge Theme & jQuery UI theme sync [#663] (TrivialDev)
 +* Web UI: Update the jQuery & jQuery UI frameworks [#664] (TrivialDev)
 +* Web UI: feedback, error_msg, warning_msg are now store in cookie [#669] (TrivialDev)
 +* Web UI: Update the jQuery Auto-height plugin [#716] (TrivialDev)
 +* Web UI: Updated French translation (St├ęphane Aulery and Inria)
 +* Widget Public Area: display FRS link [#684] (TrivialDev)
 +* Widget My Latest Commits: New widget to display user commits on "My Page" [#743] (TrivialDev)
 +* Widget Project Latest Commits: New widget to display the 5 latest commits on the project page (TrivialDev)
 +* Widget Project Latest Documents: enhancement, add actions buttons (monitor, delete) [#745] (TrivialDev)
 +* Tracker: Enable support for multi-select extrafield in roadmap [#655] (TrivialDev)
 +* Forum: Store the attached file on FS [#662] (TrivialDev)
 +* vhosts: Allow customization from <config_dir>/custom/httpd.vhosts.tmpl (Inria)
 +* Plugin SCM SVN: Improved ViewVC integration, using external installation [#719] (Inria, TrivialDev)
 +* Plugin SCM Git: Activity log entry link to commit log in SCM browsing tab [#719] (TrivialDev)
 +* Plugin SCM Hg (Mercurial): Display the Repository History stats block [#724] (TrivialDev)
 +* Plugin SCM Hg (Mercurial): Add support for project activity tab [#725] (TrivialDev)
 +* Plugin SCM Hg (Mercurial): Activity log entry link to commit log in SCM browsing tab [#726] (TrivialDev)
 +* Plugin scmhook: Update git post-receive email hook (tarent solutions GmbH, Teckids e.V.)
 +* Plugin scmhook: Install hooks as the requesting system user (Inria)
 +* Plugin AuthLDAP: Support LPAP_OPT_REFERRALS option, needed by ActiveDirectory Server [#734] (TrivialDev)
 +* Plugin Task Board: New Agile TaskBoard supporting Scrum and Kanban methodologies (Vitaliy Pylypiv and TrivialDev)
+ * Cronjob: fix PHP syntax in db_trove_main (TrivialDev)
  * Widgets MyTasks, MyMonitoredForums show no entries. Wrong permission check [#790] (TrivialDev)
  * Plugin Wiki: fix display in activity project tab, wrong hook check variable (TrivialDev)
  * SCM: fix direct HTTP access with Apache 2.4 (Inria)
diff --cc src/cronjobs/db/db_trove_maint.php
index f6d87eb,0000000..4207882
mode 100755,000000..100755
--- a/src/cronjobs/db/db_trove_maint.php
+++ b/src/cronjobs/db/db_trove_maint.php
@@@ -1,164 -1,0 +1,163 @@@
 +#! /usr/bin/php
 + * Copyright 1999-2001 (c) VA Linux Systems
 + * Copyright 2009, Roland Mas
 + *
 + * This file is part of FusionForge. FusionForge is free software;
 + * you can redistribute it and/or modify it under the terms of the
 + * GNU General Public License as published by the Free Software
 + * Foundation; either version 2 of the Licence, or (at your option)
 + * any later version.
 + *
 + * FusionForge is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License along
 + * with FusionForge; if not, write to the Free Software Foundation, Inc.,
 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 + */
 +require dirname(__FILE__).'/../../common/include/env.inc.php';
 +require_once $gfcommon.'include/pre.php';
 +require $gfcommon.'include/cron_utils.php';
 +  Rebuild the trove_agg table, which saves us
 +  from doing really expensive queries in trove
 +  each time of the trove map is viewed
 +db_query_params ('DELETE FROM trove_agg',
 +		 array());
 +db_query_params ('INSERT INTO trove_agg
 +(SELECT tgl.trove_cat_id, g.group_id, g.group_name, g.unix_group_name, g.status, g.register_time, g.short_description, project_weekly_metric.percentile, project_weekly_metric.ranking
 +FROM groups g
 +LEFT JOIN project_weekly_metric USING (group_id), trove_group_link tgl, pfo_role_setting prs
 +WHERE tgl.group_id=g.group_id
 +AND g.type_id = 1
 +AND g.status = $1
 +AND g.group_id = prs.ref_id
 +AND prs.section_name = $2
 +AND prs.role_id = 1
 +ORDER BY trove_cat_id ASC, ranking ASC)',
 +		 array('A',
 +		       'project_read'));
 +$err .= db_error();
 +Calculate the number of projects under each category
 +Do this by first running an aggregate query in the database,
 +then putting that into two associative arrays.
 +Start at the top of the trove tree and recursively go down
 +the tree, building a third associative array which contains
 +the count of projects under each category
 +Then iterate through that third array and insert the results into the
 +database inside of a transaction
 +$res = db_query_params ('SELECT trove_cat.trove_cat_id,trove_cat.parent
 +FROM trove_cat
 +WHERE trove_cat.trove_cat_id!=0
 +GROUP BY trove_cat.trove_cat_id,trove_cat.parent',
 +			array());
 +for ($i=0; $i<$rows; $i++) {
 +	$parent_list[db_result($res,$i,'parent')][]=db_result($res,$i,'trove_cat_id');
 +$res = db_query_params ('SELECT trove_cat.trove_cat_id,trove_cat.parent,count(groups.group_id) AS count
 +	FROM  trove_cat LEFT JOIN trove_group_link ON
 +		trove_cat.trove_cat_id=trove_group_link.trove_cat_id
 +	LEFT JOIN groups ON
 +		groups.group_id=trove_group_link.group_id,
 +        pfo_role_setting prs
 +	WHERE (groups.status=$1 OR groups.status IS NULL)
 +	AND (groups.type_id=1 OR groups.status IS NULL)
 +	AND groups.group_id = prs.ref_id
 +	AND prs.section_name = $2
 +	AND prs.role_id = 1
 +	GROUP BY trove_cat.trove_cat_id,trove_cat.parent',
 +			array('A',
 +				'project_read'));
 +$rows = db_numrows($res);
 +for ($i=0; $i<$rows; $i++) {
 +	$cat_counts[db_result($res,$i,'trove_cat_id')][0]=db_result($res,$i,'parent');
 +	$cat_counts[db_result($res,$i,'trove_cat_id')][1]=db_result($res,$i,'count');
 +function get_trove_sub_projects($cat_id) {
 +	global $cat_counts,$sum_totals,$parent_list;
 +	// Number of groups that were in this trove_cat
 +	$count=isset($cat_counts[$cat_id][1]) ? $cat_counts[$cat_id][1] : 0;
 +	//number of children of this trove_cat
 +	$rows=count( @$parent_list[$cat_id] );
 +	for ($i=0; $i<$rows; $i++) {
 +		$count += get_trove_sub_projects( $parent_list[$cat_id][$i] );
 +	}
 +	$sum_totals["$cat_id"]=$count;
 +	return $count;
 +//start the recursive function at the top of the trove tree
 +$res2 = db_query_params ('SELECT trove_cat_id FROM trove_cat WHERE parent=0',
 +			 array());
 +for ($i=0; $i< db_numrows($res2); $i++) {
 +	get_trove_sub_projects( db_result($res2,$i,0) );
 +db_query_params ('DELETE FROM trove_treesums',
 +		 array());
 +$err .= db_error();
 +//$err .= "<table>";
 +while (list($k,$v) = each($sum_totals)) {
 +	$res = db_query_params ('INSERT INTO trove_treesums (trove_cat_id,subprojects)
 +		VALUES ($1,$2)',
 +				array($k,
 +				      $v));
 +	if (!$res || db_affected_rows($res)!=1) {
 +		$err .= db_error();
 +	}
 +//	$err .= "<tr><td>$k</td><td>$v</td></tr>\n";
 +//$err .= "</table>";
 +if (db_error()) {
 +	$err .= "Error: ".db_error();
- cron_entry(5,$err)
- ?>


Summary of changes:
 src/CHANGES                        | 1 +
 src/cronjobs/db/db_trove_maint.php | 3 +--
 2 files changed, 2 insertions(+), 2 deletions(-)


More information about the Fusionforge-commits mailing list