Table of Contents
Table of Contents
This document is a checklist and FAQ sheet you can use to make sure that your environment is ready for installing Squore. The first chapter covers common pre-requisites and concepts of the Squore architecture. Each of the following chapters covers more specific topics that you only need to read about if you are interested in using the proposed solutions.
Squore is based on a traditional 3-tier architecture consisting of:
As shown in the schema above, Squore Server can provide analysis results to clients without having access to any source code, in scenarios where the analysis is carried out on a client machine with access to the SCM repository, as is the case in most Continuous Integration environments.
If you are planning to access source code hosted in a Subversion, Git, ClearCase, CVS or Synergy repository, a command line client for this repository must be available on the machine where the Squore analysis carried out. For complete information about all installation pre-requisites, consult the section called “Installation Prerequisites”.
Squore allows analysing source code in the following programming languages: ABAP, Ada, C, COBOL, C++, C#, Fortran 77, Fortran 90, Java, JavaScript, Lustre, Mind-C, Objective-C, PHP, PL/SQL, Python, T-SQL, Visual Basic .NET, XAML.
Table of Contents
This chapter only covers how to ensure that your environment can be prepared for a Squore installation. For actual instructions on how to install Squore itself, refer to the full Installation and Administration Guide.
The following is a list of the officially supported and tested operating systems:
CentOS 6
CentOS 7
Fedora 19
Ubuntu Server 14.04
Windows 7
Windows 8
Windows 10
The following is a list of the operating systems that are not regularly tested but are known to be working:
RedHat EL 6
RedHat EL 7
SuSe Linux 11.1
Ubuntu Server 10.04
Ubuntu Server 16.04
Windows Server 2008 R2
Windows Server 2012 R2
Squore Server can use the following database management systems to store its data:
PostgreSQL 8.4 and up
Oracle Database 12c Release 1
In both cases, it is possible to have database on the same machine as Squore Server or on a remote machine.
When using a database backend on a remote machine, the database administrator is responsible for backing up the database. The backup scripts included in the Squore Server installation will only handle the backup of the data stored on the Squore Server file system in that case. You can find more information about backup strategies for Squore Server in the section called Backup Tools in the Installation and Administration Guide.
Squore is compatible with many browsers. The following is the list of officially supported browsers:
Google Chrome 24 and up
Mozilla Firefox 17 and up
Apple Safari 6 and up
Microsoft Internet Explorer 8 and up
Microsoft Edge 20 and up
For a successful installation of Squore, you will need:
The latest version of the Squore Server installer, which can be downloaded from http://support.squoring.com/download_area.php
The latest version of the Squore CLI installer, which can be downloaded from http://support.squoring.com/download_area.php for installations where only a command-line client is needed
A user account with system administrator privileges
The Oracle Java Development Kit version 1.7.0_51 or higher
Java 1.8 is not supported.
It is technically possible to run Squore using a 32-bit JDK, however this will limit the memory available to 1GB of RAM to run the application, which will result in poor performance. If you still want to attempt such an installation, consult the troubleshooting page at http://openwiki.squoring.com/index.php/Running_Squore_On_A_32-bit_Java_Installation
The Oracle Java Runtime Environment version 1.7.0_51 or higher for Squore CLI
At least 2 GB of space available on the disk for a full installation
A valid Squore Server licence file (optional, since the licence file can be added after installation)
The java
executable should be in the machine's PATH
environment variable for Squore CLI to run successfully.
Keep in mind that the requirements above are the strict minimum. In production, Squore Server generally runs on a dedicated machine with a multi-core processor and 8 to 12GB of RAM. Squore reserves 25% of the available RAM of the machine to the database and another 25% to the server. External processes (like CheckStyle or Findbugs) running on the same machine as Squore may add to the amount of RAM required for analysing source code. Linux is known to offer better performances than Windows when running Squore.
When using Oracle as a database backend, a database administrator must create an Oracle user before you can install Squore.
The user requires the following privileges:
CREATE PROCEDURE
CREATE SEQUENCE
CREATE SESSION
CREATE TABLE
CREATE TYPE
CREATE VIEW
A valid quota for the tablespace used by the user (for example UNLIMITED)
Because a licence is linked to the hardware on which Squore Server is installed, Squoring usually delivers a temporary licence to try out Squore first. This give you time to send out your host-id to our team, who will then issue a permanent licence file. In order to find out what your host-id is, follow these steps:
Download the host-id checker from http://support.squoring.com/download_area.php
Open a terminal on the machine where you installed or plan to install Squore.
Run the command java -jar squore-hostid.jar
.
Send the output to support@squoring.com.
A JDK is required for Squore Server. The Windows installer contains the tcl and perl runtimes as well as a portable PostgreSQL installation.
A JRE is required for Squore CLI. The Windows installer contains the tcl and perl runtimes needed. It will allow you to obtain the configuration needed to create projects from the server.
On Linux platforms, the following must be installed before installing Squore:
Perl version 5.10.1 or greater including the following extra-modules:
Mandatory packages:
Algorithm::Diff [module details]
Archive::Zip [module details]
Date::Calc [module details]
(Squore Server only) DBD::Pg (unless you use a Oracle as your database backend) [module details]
(Squore Server only) DBI (unless you use a Oracle as your database backend) [module details]
Digest::SHA [module details]
HTTP::Request [module details]
JSON [module details]
LWP [module details]
LWP::UserAgent [module details]
Time::HiRes [module details]
XML::Parser [module details]
Optional packages for working with Microsoft Excel:
HTML::Entities [module details]
Spreadsheet::BasicRead [module details]
Optional packages for working with OSLC systems:
Date::Parse [module details]
WWW::Mechanize [module details]
XML::LibXML [module details]
Optional packages for working with GitHub systems:
Date::Parse [module details]
Mail::Box::Manager [module details]
Mail::Message::Body::Lines [module details]
Mail::Message::Construct [module details]
Mail::Mbox::MessageParser [module details]
Net::GitHub [module details]
Optional packages for working with Semios/Prometil systems:
File::Slurp [module details]
Optional packages for Advanced CSV Export Management:
Text::CSV [module details]
If some of these modules are not available as packages on your operating system, use your perl installation's cpan to install the modules. Using the OS packages is recommended, as it avoids having to reinstall via cpan after upgrading your version of perl.
Tcl version 8.5 or greater,
(Squore Server only) PostgreSQL version 8.4
(unless you use a RDBMS running on another system) including at least the server component, and optionally, the
pgAdmin utility. Note that your system must use a UTF-8 locale for the database creation to be carried out successfully. You can force this by running export LANG=en_US.UTF-8
or export LANG=fr_FR.UTF-8
according to what is available on your system before installing Squore.
(Squore Server only) The rsync utility
If you are running on a headless Squore Server, java-1.6.0-openjdk may not be sufficient, as it lacks some fonts to render graphics. This is why using Oracle's JDK is recommended.
On Red Hat Enterprise Linux and CentOS (6.5 and 7.1), the dependencies are satisfied by the following packages:
Mandatory packages:
java-1.7.0-openjdk
perl
perl-Algorithm-Diff
perl-Archive-Zip
perl-Date-Calc
perl-Digest-SHA
perl-JSON
perl-libwww-perl
perl-Time-HiRes
perl-XML-Parser
(Squore Server only) postgresql-server (unless you use a RDBMS running on another system)
(Squore Server only) rsync
tcl
Optional packages for working with Microsoft Excel:
perl-HTML-Parser
perl-CPAN (CPAN utility requirement)
perl-Spreadsheet-ParseExcel (available in the EPEL repository)
perl-Spreadsheet-XLSX (available in the EPEL repository)
The module Spreadsheet::BasicRead is not available as a package and must therefore be installed using cpan (make sure cpan is properly configured, by running cpan without arguments first):
sudo cpan -i Spreadsheet::BasicRead
Optional packages for working with OSLC systems:
perl-TimeDate
perl-WWW-Mechanize (available in the EPEL repository)
perl-XML-LibXML
Optional packages for working with GitHub systems:
perl-TimeDate
perl-Mail-Box (available in the EPEL repository)
perl-Mail-Mbox-MessageParser (available in the EPEL repository)
perl-Net-GitHub (available in the EPEL repository)
Optional packages for working with Semios/Prometil systems:
perl-File-Slurp
Optional packages for Advanced CSV Export Management:
perl-Text-CSV (available in the EPEL repository)
For more information about how to install the Extra Packages for Enterprise Linux (EPEL) repository, consult https://fedoraproject.org/wiki/EPEL.
On Ubuntu 14.04.3 LTS, the dependencies are satisfied by the following packages:
Mandatory packages:
libalgorithm-diff-perl
libarchive-zip-perl
libdate-calc-perl
(Squore Server only) libdbd-pg-perl (unless you use a Oracle as your database backend)
(Squore Server only) libdbi-perl (unless you use a Oracle as your database backend)
libhttp-message-perl
libjson-perl
libwww-perl
libxml-parser-perl
openjdk-7-jdk
perl
(Squore Server only) postgresql (unless you use a RDBMS running on another system)
(Squore Server only) rsync
tcl
Optional packages for working with Microsoft Excel:
make (CPAN utility requirement)
libhtml-parser-perl
libspreadsheet-parseexcel-perl
libspreadsheet-xlsx-perl
The module Spreadsheet::BasicRead is not available as a package and must therefore be installed using cpan (make sure cpan is properly configured, by running cpan without arguments first):
sudo cpan -i Spreadsheet::BasicRead
Optional packages for working with OSLC systems:
libtimedate-perl
libwww-mechanize-perl
libxml-libxml-perl
Optional packages for working with GitHub systems:
libtimedate-perl
libmail-box-perl
libmail-mbox-messageparser-perl
libnet-github-perl
Optional packages for working with Semios/Prometil systems:
libfile-slurp-perl
Optional packages for Advanced CSV Export Management:
libtext-csv-perl
End users can run third-party static code analysers or rule checkers that are not shipped with the Squore installer for licencing reasons. In this case, it is necessary to download the extra binaries from http://support.squoring.com/download_area.php and deploy them on the server.
The list of third party plugins to be downloaded separately is as follows:
Checkstyle 5.6
CPD 4.2.6
FindBugs 2.0 or 3.0
Cppcheck 1.61
PMD 5.0.5
Polyspace Export
Stylecop 4.7
Here is a full example of how to deploy Checkstyle into Squore
Download the Checkstyle binary from http://support.squoring.com/download_area.php.
Extract the contents of the zip file onto Squore Server.
Copy the extracted checkstyle-5.6 folder into <SQUORE_HOME>/addons/tools/CheckStyle_auto.
Instruct all client installations to synchronise with the server so that they get the newly deployed third-party binaries.
If you have deployed some third-party tools on Squore Server, they will automatically be downloaded to your client when you launch the client synchronisation script.
AntiC and Cppcheck on Linux also require special attention: Cppcheck must be installed and available in the path, and antiC must be compiled with the command:
# cd <SQUORE_HOME>/addons/Antic_auto/bin/ && gcc antic.c -o antic
For more information, refer to the Command Line Interface Manual, which contains the full details about special installation procedures for Data Providers and Repository Connectors.
During the installation of Squore on Windows, the installer provides the option to register two services to control Squore's startup and shutdown.
After installing Squore Server and the Windows services, you should follow these steps on your server:
Configure both services to run with a dedicated user instead of the built-in LocalSystem
Ensure that the dedicated user you assigned to run the services is explicitly granted the Full Control permission on the following folders:
<SQUORE_HOME>
<SQUORE_DATA>\cluster
<SQUORE_DATA>\backup
<SQUORE_DATA>\projects
<SQUORE_DATA>\temp
<SQUORE_DATA>\temp\sources
By explicitly granting this permission instead of inheriting it from a group, you ensure that you will not run into issues with folder and file permissions, especially if User Account Control is enabled on your server.
Set the startup type for both services to Run automatically
You can manage and configure the two new services in the Windows Services console or from the command line. If you want to change their display names for example, you can use the following Windows command as administrator:
sc config "JBAS71SVC" DisplayName= "Squore Web" sc config "PG84SVC" DisplayName= "Squore DB"
In order to configure Squore to integrate with your LDAP Server, you should make sure that you have access to the following information:
The address of the LDAP server you want to connect to Squore.
The section(s) of the directory that contain the users that should be allowed to log into Squore.
The login and password of a user account allowed to browse the section(s) of the directory mentioned above.
Basic knowledge of your directory structure. Note that Squore was tested with Microsoft Active Directory on Windows Server 2008 and OpenLDAP on Ubuntu 12.04.
If you need to obtain this information to a system administrator, ask for these details:
java.naming.provider.url: The URL of the directory server.
baseCtxDN: The fixed DN of the context to start the user search from.
bindDN: The DN used to bind against the ldap server for the user and roles queries. This is some DN with read/search permissions on the baseCtxDN and rolesCtxDN values.
bindCredential: The password for the bindDN
baseFilter: The search query sent by Squore to the LDAP server when authentificating. If the password is correct and the search returns true, the user is allowed to log into Squore. The default query checks that the login exists, but you can change it to check that the login is valid and that the user is part of a specific group for example, using the syntax &((condition1) (condition2))
. For more information about LDAP query syntax, refer to https://technet.microsoft.com/en-us/library/aa996205(v=exchg.65).aspx. Note that the & characters must be written as an entity (&) in the settings file.
rolesCtxDN: The fixed DN of the context to search for user roles. This is required to exist, even though it is not used by Squore at the moment.
userCompositeName (optional): the field in the LDAP account that Squore will import and user as the user's full name.
userMail (optional): the field in the LDAP account that Squore will import and user as the user's e-mail address.
userOrganizationUnit (optional): the field in the LDAP account that Squore will import and user as the user's department.
userId (optional): the field in the LDAP account that Squore will use as a the final user login to create the account or log into the application.
In order to configure Squore to integrate with TeamForge, you will need to provide the following Teamforge details:
TeamForge Server URL (without / at the end), for example http://localhost
.
TeamForge Server Name (will appear in Squore export format list), for example TeamForge
.
TeamForge artifact default status at export, for example Open
.
TeamForge artifact default priority at export, for example 4
.
SvnEdge Main Repository URL, for example http://localhost/svn
.
SvnEdge Viewer (viewvc) URL, for example http://localhost/viewvc
.
External System Id of SvnEdge (for ex: exsy1001), for example exsy1011
.
The rest of the configuration is carried out on the TeamForge side with data obtained from Squore after you create some projects. You can see this information in the full Installation and Administration Guide