Cliosoft Sos Fundamentals
Cliosoft Sos Fundamentals
Cliosoft Sos Fundamentals
Administration Guide
Software Version 7
October, 2015
Revision G
Legal Notices
Copyright © 2014 ClioSoft, Inc. All rights reserved. Published in the USA.
The information in this publication is provided as is. ClioSoft makes no representations or
warranties of any kind with respect to the information in this publication, and specifically disclaims
implied warranties of merchantability or fitness for a particular purpose.
The use, copying, or distribution of any ClioSoft or third-party software described in this publication
requires an applicable software license.
ClioSoft and the ClioSoft logo are trademarks of ClioSoft Inc. All other trademarks used in this
document are the property of their respective owners.
2
TABLE OF CONTENTS
CHAPTER0
3
Using the SOSAdmin Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Setting Up Primary and Cache Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Configuring a Primary Server and its Local Cache Server . . . . . . . . . . . . . 44
Setting Up a Remote Cache Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Accessing Linux Servers from Windows Clients. . . . . . . . . . . . . . . . . . . . . 49
Starting the SOS Servers Automatically . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Configuring SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Configuring Client Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Creating Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Defining a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Adding Files to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4
Revision Search Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Directories to Populate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Branch Options for Files and Directories . . . . . . . . . . . . . . . . . . . . . . . . . . 84
UMASK Settings for Work Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Defining Reference Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Setting Up Projects for Referencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Adding References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Specifying the RSO for a Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Syntax of the REFERENCE_PROJECT Block . . . . . . . . . . . . . . . . . . . . . . 88
Integrating SOS Projects with Change Request Tracking Systems . . . . . . . . . 90
Supported Tracking Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5
Specifying SOS Tcl Commands in .sosrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Default Settings in .sosrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Priority of .sosrc Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6
OVERVIEW OF SOS ADMINISTRATION
CHAPTER1
This manual explains how to install, configure, and manage the ClioSoft SOS
hardware configuration management software. This manual is for CAD managers
and project leads who have an administrative role in SOS design projects.
This chapter covers the following topics:
• How Hardware Configuration Management Works
• Documentation and Support
LICENSING
This chapter explains how to install the ClioSoft SOS software and set up licensing
in the following sections:
• System Requirements
• Downloading and Installing the Software
• Upgrading to a New Release of SOS
• Licensing
• Verifying the Installation
• Integrating SOS with Your CAD System
• Installing and Configuring the SOS Web Client
System Requirements
The SOS software is supported on the following platforms and operating system
versions:
Table 1 Supported Platforms
Platform Supported OS Versions
Red Hat Enterprise Linux 4.0 and later
Microsoft Windows XP and later
The next table lists the hardware requirements for SOS servers.
Table 2 Server Hardware Requirements
Resource Requirements and Recommendations
CPU x86 multi-core processor at 3GHz or faster. Because
the primary and cache servers are multi-threaded,
ClioSoft recommends that you use a multi-CPU server
for optimal performance if you plan to run multiple SOS
server and cache daemons on the same machine.
Memory
Minimum of 16 GB. The SOS primary and cache
servers are supported by their own PostgreSQL back-
end daemons. The primary server does very little work
if caching is enabled because the cache server caches
all of the data needed. Allow for about 4 kb per
managed object to cache meta-data without swapping.
For example, a project with 50,000 object files would
need 200 MB for cached metadata.
NOTE: Slow NFS connectivity can cause performance bottlenecks by blocking access to
the SOS database.
The next table lists the hardware requirements for the client systems where users
run the SOS client software and their EDA tools.
Table 3 Client System Hardware Requirements
Resource Requirements and Recommendations
CPU x86 at 1.5 GHz or faster.
Memory Minimum of 4GB.
Network connectivity 100 Mbps
Downloading
1 Visit www.cliosoft.com and log in to your support account. If you do not have an
account, you must register for an account before downloading the software.
2 From the ClioSoft Support page, under Technical Resources, click Download
Releases.
3 Click Download to accept the license agreement.
4 Click the link to download the installation file for your release.
• If you wish to use some other location for the directory for any reason. For
example, some customers set up a different SERVERS directory for each project.
Another reason to use a different location is if you install the SOS software on a
read-only disk or partition, because the SERVERS directory must be writable by
all users.
Another way to relocate the SERVERS directory is by using a symbolic link; in
this case, it is not necessary to have all of the users set $SOS_SERVERS_DIR:
mkdir writable_servers_dir
mkdir writable_servers_dir/LOCAL writable_servers_dir/REMOTE
chmod -R a+rwx writable_servers_dir
rm -rf $CLIOSOFT_DIR/SERVERS
ln -s writable_servers_dir $CLIOSOFT_DIR/SERVERS
These permissions allow any user to create a server. Omit the chmod command
to restrict creating servers to administrators.
4 If you have a full installation but only want to use VDD as a standalone utility, set
the CLIOSOFT_CDS_DIFF variable to 1. For example, for the C shell:
setenv CLIOSOFT_CDS_DIFF 1
Here is a summary of the .cshrc file changes:
setenv CLIOSOFT_DIR path_to_SOS_installation
set path = ($path $CLIOSOFT_DIR/bin)
setenv LD_LIBRARY_PATH "$CLIOSOFT_DIR/lib/64bit:$CLIOSOFT_DIR/
lib:$LD_LIBRARY_PATH"
setenv GDM_USE_SHLIB_ENVVAR 1
Here is a summary of the Bourne shell .profile file changes:
CLIOSOFT_DIR=path_to_SOS_installation
PATH=$PATH:$CLIOSOFT_DIR/bin
LD_LIBRARY_PATH="$CLIOSOFT_DIR/lib/64bit:$CLIOSOFT_DIR/ lib:$LD_LIBRARY_PATH"
GDM_USE_SHLIB_ENVVAR=1
export CLIOSOFT_DIR LD_LIBRARY_PATH GDM_USE_SHLIB_ENVVAR
NOTE: All users need to update their Linux startup file with these variables.
Create a separate “latest version” symbolic link for each platform, as shown in the
example.
4 Click I Agree to accept the license agreement and continue to the Choose
Installation Type page.
5 If you use SOS with Keysight ADS, choose ClioSoft for SOS via ADS. Otherwise
choose Default.
6 Click Next and open the Choose Installation Folder page.
7 Accept the default location (recommended) or click Browse and choose a different
location. Then click Next.
8 Click Browse and choose a new or existing SERVERS folder. This will almost
always be a folder on a remote system. Windows and Linux clients share a
common SERVERS folder, so you almost never want to create the SERVERS folder in
the default location on your local Windows disk. Here is a typical path to the folder:
\\myserver.mycompany.com\edatools\clio\SERVERS
If the shared SERVERS directory is not on a shared mounted directory, specify a
SERVERS directory on the local disk and use the SOSAdmin application to
create a local server that references the remote server. This lets you specify
the server location with a URL, rather than a CIFS path. For instructions, see
“Accessing Linux Servers from Windows Clients”.
9 Click Install to continue.
10Click Next in the Installation Complete page to view the Release Notes page, and
then click Finish to complete the installation.
• installPath is the optional installation path. The default path for Windows 7 is
C:\Program Files (x86)\ClioSoft\sos_release-number. If you are
installing SOS to use with Keysight ADS, you must use this argument to override
the default path and specify a path that does not contain spaces.
• serversDir is the optional location of the SERVERS directory. The default location
is installPath\..\SERVERS.
Below are some examples.
• To install at the default location:
sos_6.23.p3s_win.exe /S
• To install at a different location:
sos_6.23.p3s_win.exe /S /INSTDIR=c:\cliosoft\sos_6.22.p3
• To install using a different location for the SERVERS directory:
sos_6.23.p3s_win.exe /S /SERVERS=z:\cliosoft\SERVERS
NOTE: If you are upgrading from SOS 6 to SOS 7, skip this section and follow the
instructions in Upgrading Linux Installations from SOS 6 to SOS 7, next.
1 Follow the instructions in “Downloading” to download the software.
2 Log in to the CAD tools software manager account.
3 Copy the installation .tar file to your ClioSoft installation directory,
$CLIOSOFT_DIR.
If your installation follows the ClioSoft recommendations, that directory will
now resemble this example, with one or more existing directories for ClioSoft
releases and a .tar file for the release that you are about to install:
% ls $CLIOSOFT_DIR
latest_sos@ -> sos_6.24.p1_linux
SERVERS/
sos_6.25.p2_linux.tar
sos_6.24.p1_linux/
sos_6.23.p1_linux/
...
In the example, we are preparing to upgrade from SOS release 6.24.p1 to
release 6.25.p2.
4 Follow the instructions in “Installing the Software on Linux”.
After you run the installation script, you will have a new directory for the new
release at the same level as the latest_sos symbolic link and the SERVERS
directory.
5 Delete the existing symbolic link:
rm latest_sos
6 Update the symbolic link to latest_sos to point to the new release:
ln -s sos_6.25.p2_linux latest_sos
7 Shut down and restart the SOS servers with the Shutdown and Startup buttons in
the SOSAdmin application. For instructions, see “Shutting Down and Restarting
Servers”.
8 If your installation directory scheme is different than the suggestion above, and
$CLIOSOFT_DIR does not point to a symbolic link that you can update, tell your
users to update $CLIOSOFT_DIR to point to the new installation root.
9 Advise your users to exit and restart their design tools and the SOS client software
so that they can begin using the new version. To force an update to running
clients:
1 Click Clients in the SOSAdmin window.
2 Click Select All in the Clients dialog box.
3 Click Exit Clients.
converts your project data from the ClioSoft proprietary database format to a
PostgreSQL database. Follow the steps in the next sections to upgrade to SOS 7.
NOTE: If you are upgrading from an earlier version of SOS 7, follow the instructions in the
previous section, “Upgrading Linux Installations with SOS Minor Revisions”.
5 If your installation directory scheme is different than the suggestion above, and
$CLIOSOFT_DIR does not point to a symbolic link that you can update, tell your
users to update $CLIOSOFT_DIR to point to the new installation root.
Licensing
This section describes how to set up and manage SOS licenses. SOS uses FlexNet
to manage software licensing. The SOS software contacts the FlexNet license server
daemon, lmgrd, running on a license server host on your network. Typically, your
organization will already have a license server host set up for your EDA tool
software, and you can use that license server host with the SOS software. Version
11.10.1 of FlexNet is included with the SOS software. You can run the license server
on Linux or Windows hosts.
When a user starts SOS, the SOS software contacts the license daemon on the
license server to obtain a license. Licenses are keyed to the host ID of the license
server.
NOTE: The SOS software uses its own server daemon sosd for communication between
SOS servers and clients. This daemon is not a license daemon. Typically, the
license daemon (lmgrd) runs on the license server host, which may be a host on
your local area network or a remote host.
This section covers the following topics:
• License Options
• Obtaining License Keys from ClioSoft
• About the ClioSoft License File
License Options
ClioSoft licenses are user-based. ClioSoft offers two options for licensing the SOS
software: 24-hour reserved licensing and named user licensing.
The default license option is 24-hour reserved licensing. With this option, anyone
may check out a license. The license remains checked out for 24 hours after the user
exits all of their SOS clients.
Named user licensing requires that you maintain a FlexNet options file, typically
named users.lst,that contains a list of user IDs. (This file may also specify other
FlexNet options.) Only the listed users may run the SOS software, even if unused
licenses are available. You can modify the list at any time, but you cannot add more
users to the users.lst file than the number of purchased licenses. Changing the list
requires stopping and restarting the license daemon. FlexNet limits the frequency of
changes to the users.lst file.
Large organizations generally prefer the 24-hour reserved licensing option to avoid
the need to maintain a users.lst file and restart the daemon frequently. These
licenses have the suffix _ul (“user linger”).
With either licensing option, a single license lets a user run any number of SOS
clients.
For Windows 7:
1 From the Start menu, choose All Programs > Accessories > Command
Prompt.
2 Type ipconfig and review the command output to determine the IP address of
your wired Ethernet adapter.
3 From the Start menu, choose All Programs, choose the release-specific folder
for the SOS software, and then choose FlexNet Utilities.
4 Click the System Settings tab and confirm that you are viewing the information
for your wired Ethernet adapter. Although you may use the host ID of any of the
adapters for licensing, ClioSoft recommends that you use the host ID of the local
(wired) Ethernet adapter. If you use the host ID of the wireless adapter, licensing
will fail whenever the wireless adapter is disabled.
The Ethernet Address value is the FlexNet host ID for your Windows system. A
typical value is 008048e575e6. The Computer/Hostname is the Windows host
name.
3 Send the FlexNet host ID and the host name in an email message to
[email protected]. Please include your contact information, including a
telephone number, and the names of the ClioSoft products that you have
purchased (or want to evaluate).
where
For example:
# ----------------------------------------------------------------------
# ClioSoft License File generated on: 15.January.2013
# ----------------------------------------------------------------------
# Customer Details
# ----------------------------------------------------------------------
...
SERVER enter_hostname_here 12345678901
VENDOR cliolmd
USE_SERVER
FEATURE clio_sos_ent_ul cliolmd 6.0 1-mar-2013 25 23456789012 \
DUP_GROUP=U
FEATURE clio_sos_viadfII_ul cliolmd 6.0 1-mar-2013 25 34567890123 \
DUP_GROUP=U
Your license file contains FEATURE lines for some or all of the following ClioSoft
product options:
ClioSoft recommends that you specify the port number explicitly as described above,
even if you use a port number within the default range, to speed up communication
between the ClioSoft and FlexNet daemons.
4 Create INCLUDE lines for each FEATURE line in your license file. Typically this
means one INCLUDE line for either the clio_sos or clio_sos_ent feature, and a
second INCLUDE line for the integration with your CAD environment:
INCLUDE clio_sos GROUP SOS_USERS
INCLUDE clio_sos_viadfII GROUP SOS_USERS
5 Save the users.lst file to the location that you specified on the VENDOR line in
your license file.
If some users need access to different features, you can create multiple groups. For
example, if only some of the users need access to the Cadence Virtuoso software,
but all of the users run SOS in standalone mode, you might set up these two groups:
GROUP SOS_USERS user1 user2 user3 user4
GROUP SOS_USERS_CDN user1 user2
INCLUDE clio_sos GROUP SOS_USERS
INCLUDE clio_sos_viadfII GROUP SOS_USERS_CDN
2 From the Start menu, choose All Programs, choose the release-specific folder for
the SOS software, right-click FlexNet Utilities, and choose Run as administrator
from the menu.
File Description
.cdsinit Virtuoso startup file
cdsLibMgr.il Cadence Library Manager startup file
cdsinfo.tag Cadence information file that contains the Design Manager
(DM) tool configuration
ClioSoft recommends that you include all three files, and the cds.lib file, in the SOS
project. This lets the files be automatically copied or linked into each user’s work area
directory, so that everyone has the correct versions of the files. A typical work area
would have this structure:
• docs (specifications and other documentation)
• scripts
• rtl (Verilog and VHDL files)
.cdsinit
Add these lines at the end of the .cdsinit file:
let( (clioDir)
clioDir = getShellEnvVar("CLIOSOFT_DIR")
load((strcat clioDir "/scripts/cds_sosviadfII.il"))
)
NOTE: To ensure that all users can run SOS, make this change to the site (global)
.cdsinit file, or include the change in the .cdsinit file in the project work area
directory.
cdsLibMgr.il
Add these lines to the cdsLibMgr.il file. These commands load the SOS menus
when the Cadence Library Manager starts.
let( (clioDir)
clioDir = getShellEnvVar("CLIOSOFT_DIR")
load((strcat clioDir "/scripts/cdsLibMgr.il"))
)
cdsinfo.tag
The cdsinfo.tag file tells Virtuoso which Design Management (DM) system to use, if
any. Each library directory should contain a cdsinfo.tag file with the correct settings
for that library:
• Project libraries that you manage with SOS need to specify SOS as the DM
system. Include this line in the file:
DMTYPE sos
• Unmanaged reference or scratch libraries should not specify any DM system.
Include this line in the file:
DMTYPE none
There should be no other DMTYPE settings in the cdsinfo.tag files.
cds.lib
Each user’s personal cds.lib file should be an unmanaged file (outside SOS
revision control) in the cds directory of their work area. All users should include a
common project.lib file in their personal cds.lib file:
INCLUDE ./project.lib
The project.lib file is managed in SOS. This means that all users get the same
definitions for the project working and reference libraries. Definitions for the project
working libraries use relative pathnames, because each user must refer to the library
in their work area. Definitions for reference libraries use full pathnames. Here is an
example:
# Reference libs not managed by SOS
DEFINE ref_lib1 /projects/common/reflibs/ref_lib1
DEFINE ref_lib2 /projects/common/reflibs/ref_lib2
DEFINE ref_lib3 /projects/common/reflibs/ref_lib3
DEFINE pdk_lib /projects/common/pdks/pdk_lib
# Project libraries
DEFINE proj_lib1 ./proj_lib1
DEFINE proj_lib2 ./proj_lib2
If those commands appear, you have updated your startup files correctly.
3 Exit Virtuoso.
For example:
cat $CLIOSOFT_DIR/adaptors/cdesigner/sos.cfg >> \
path_to_repository/setup/sos.cfg
5 Update the $SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl file. This file contains
Custom Designer customizations for third-party tools. You can have many custom
integrations being loaded from the same file.
Append $CLIOSOFT_DIR/adaptors/cdesigner/.cdesigner.tcl to the
$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl file. For example:
cat $CLIOSOFT_DIR/adaptors/cdesigner/.cdesigner.tcl >> \
$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
PROJECTS
This chapter explains how to set up SOS servers and SOS projects in the following
sections:
• About SOS Servers, Clients, Projects, and Work Areas
• Using the SOSAdmin Application
• Setting Up Primary and Cache Servers
• Creating Projects
For optimal performance, SOS primary servers should always have a cache server
that handles the clients’ requests to check files into and out of the project. This is
called the local cache server: “local” in the sense that both servers are located at the
same geographic location, and usually run on the same host computer. Figure 2
shows this more realistic simple case.
Figure 2: A More Realistic Simple Case
Most large design teams are spread out across multiple sites, often in more than one
country. Figure 3 illustrates this arrangement. For multi-site installations, there is
usually a primary SOS server at the main development site and an SOS cache
server at every site. This arrangement gives every user access to all of the project’s
files, as though they worked at the same facility. For the design team shown in
Figure 3, when Sally (a designer in San Jose) checks in a new cellview, her new
cellview gets copied to both the primary server in San Jose and the cache server in
Shanghai. The designers in Shanghai can begin using Sally’s new cellview
immediately.
Figure 3: Cache Server for a Remote Design Team
You can configure the cache server to be automatically updated immediately with
changed files from the primary server, updated at a specified frequency, or updated
on demand whenever a local user needs a file. Metadata about changes is always
synchronized between the primary and cache servers.
Maximizing Performance
The SOS software performs very little computation but is “disk bound” because it
reads and writes many files frequently. The key to maximizing performance is to
improve access to files on disk:
• If you use network-attached storage (NAS), which is the most common situation,
choose high-performance hardware. If there is high latency between the NAS and
the SOS primary and database servers, communication with the PostgreSQL
database will not be optimal and users may experience delays.
• For the best possible performance, store the project repository and cache on a
local disk on the server host system, rather than using network-attached storage.
• Use a separate SOS server daemon for each SOS project.
• Have users create their work areas on a local disk, not a network disk. This also
improves the performance of your design tools.
figure shows the directories for an organization with two SOS servers (trinity and
neo).
Figure 4: Data-Type-Specific Directories
This approach lets you isolate the repository on a separate file server or mount point,
protecting both the server and the repository from performance and disk space
issues caused by users’ simulation and verification runs. The cache and work area
directories would typically be stored on a second file server or mount point, although
you may choose to use a separate file server for each.
The .rep directory for each server contains a pg_data subdirectory for the
PostgreSQL database, and separate subdirectories for each project’s configuration
files.
Data Security
To encrypt communication and file transfers between servers, select Use SSL in the
New Server dialog box when you create the servers. You can also enable this option
for existing servers. See
To restrict access to the project data, you can configure the servers to require client
authentication. See “Configuring Client Authentication”.
NOTE: The SOSAdmin application also has a command line interface. The syntax is:
sosadmin command [arguments]
For a list of commands, type sosadmin help. For detailed help about a particular
command, type sosadmin help command. The examples in this manual use the
SOSAdmin application, not the command line.
The Running column shows the status of each server:
Table 4 Server Status Values
Running Column Description
(SOS software version number) The server is running normally.
no The server is not running.
(blank) No cache server is defined for this primary server.
?? The server is defined, but SOSAdmin has not yet
determined the server status.
The other columns show the information that you enter when you define a server.
See “Setting Up Primary and Cache Servers”.
The next table describes the command buttons in the SOSAdmin window:
Table 5 SOSAdmin Window Commands
Command Description
New Create a new SOS primary or cache server. See “Setting Up Primary
and Cache Servers”.
Edit Update the settings for an SOS server.
Delete Permanently delete an SOS server. Deleting a server does not
delete the project repository.
Startup Start an SOS server that is not running.
Shutdown Stop a running SOS server.
Reread Config Read changes in the server configuration file. See “Configuring
Projects with sosd.cfg”.
Ping Check the status of the selected primary and cache servers.
Ping All Check the status of all of the servers and update the status of the
Running columns.
Projects Create or manage projects. See “Creating Projects”.
Project Map Define servers for reference projects whose files may be used in
other projects. See “Defining Reference Projects”.
Clients See who is connected, send messages to connected clients before
shutting down a server, close connections to the clients, or exit the
clients.
6 In the SSH terminal window, type yes to connect securely to the server host.
7 Wait a few seconds and click Ping in the SOSAdmin window to check the server
status. Also check for messages in the terminal window where you started
SOSAdmin.
If the Ping command reports that it was unable to connect to the server then wait
for a few more seconds and try again.
If the server fails to start, check the primary server log file (server.log) and cache
server log file (srv_cache.log) for messages. By default, these logs are located
here:
$CLIOSOFT_DIR/SERVERS/LOCAL/server_name
However, if you have set $SOS_SERVERS_DIR, the log files are located here:
$SOS_SERVERS_DIR/LOCAL/server_name
The Ping command will fail if another process is using the port. If you suspect this
problem, click Edit, change the port number, and try to start the server again.
You can use the ps command to check the status of the server daemon
processes. The primary server daemon process is sosd -primary, and the cache
daemon process is sosd -cache.
Next Steps:
• If remote sites need to access this server, set up their remote cache servers now.
• Next, create the SOS project that this server will manage. See “Creating Projects”.
Linux
For Linux hosts, add these lines to /etc/rc.local:
#!/bin/sh
# Start SOS Servers
CLIOSOFT_DIR=path_to_SOS_software
export CLIOSOFT_DIR
echo
echo "Starting SOS Server server_name"
echo
su owner_of_sos_server -c "$CLIOSOFT_DIR/bin/sosadmin startup
server_name" >/dev/null 2>&1
exit 0
Replace path_to_SOS_software, owner_of_sos_server, and server_name
with the correct values for your situation.
Windows
NOTE: It is very uncommon to run the SOS server daemons on Windows.
The daemons run as Windows services. Follow these steps to configure those
services to start automatically.
1 From the Control Panel, click Administrative Tools and then click Services.
2 Find the SOS service in the list. It will be named sosd SOS_SERVER_NAME or
sosd_cache SOS_SERVER_NAME.
3 Set that service to start up automatically.
Configuring SSL
You can configure SOS to use SSL for secure communication between primary and
cache servers.
Prerequisites
You will need:
• A CA certificate
• A private key file
• A pass phrase.
If a user does not have an X display and the SOS process is not already running, the
user must follow these steps to authenticate from the command line:
1 Start SOS without an X display:
sos -nowin
2 When prompted, enter a user name and password on the command line.
3 Background the sos process:
<Control-Z> bg
4 Start the SOS command-line interface and run SOS commands in your work area:
soscmd
Creating Projects
• Defining a New Project
• Adding Files to a Project
NOTE: The Import command lets you restore a project that you archived with the Export
command. To migrate an SOS 6.xx project to the current release, continue with
these instructions and use the Import option in the Create a New Project dialog
box.
3 For the Name of the Project, use the same name as the server to simplify project
administration.
4 (Optional) Enter the account names for the project administrators, separated by
commas.
If you leave this field blank, the default project administrator is the owner of the
server.
5 (Optional) Enter Comments to describe the project.
6 (Optional) To migrate an SOS 6.xx repository to SOS 7.0, select Import an SOS 6
repository and browse to the repository directory. Repository directories have the
.rep name suffix.
7 Click Ok to create the project and then click Dismiss to close the Info dialog box
that opens.
Migrating Data from Other Revision Control Systems Into a New Project
If your existing design data is already under Linux revision control, you can use the
ClioSoft utilities to import the data into a new project. The revision control systems
listed in the table are supported:
Table 6 Utilities for Importing Data Under Revision Control
Revision Control Systems ClioSoft Import Utility
RCS rcs_import
CVS cvs_import
SVN svn_import
Type any of the import commands with no arguments to see a usage message.
• You can create work area directories in subdirectories of users’ home directories,
or you can follow the previous example and create them as subdirectories under a
single project-specific directory.
Follow these steps to create the administrator’s work area directory:
1 From the Linux command line, create a new directory. For example:
% cd /server/ourchip/adsl_project/workareas
% mkdir cadmgr
% cd cadmgr
2 Copy any necessary startup files for your design tools into the new directory. See
“Integrating SOS with Your CAD System” for best practices for Cadence Virtuoso
and the other design tools that SOS supports.
3 Copy the initial set of design files into the administrator’s work area directory. The
owner of the files must be the project administrator.
4 From that directory, enter the Linux command sos to start SOS.
If the SOS Login dialog box appears, enter the Linux account name and password
for this account (cadmgr in the example).
5 In the SOS window, choose File > New Workarea.
To let SOS choose the appropriate default values for different types of data, do not
choose a value for Revision control method.
4 Click Create All.
ADMINISTRATION
This chapter explains how to administer SOS servers and SOS projects in the
following sections.
• Creating and Restoring Backups and Archives
• Managing Projects and Servers
• Using Shared Work Areas
• SOSAdmin Command Line Quick Reference
Archiving a Project
1 From the Projects dialog box, with the server running, click Archive. The Archive
Project dialog box opens.
2 Enter a location for the exported data and click Archive in the dialog box.
3 Review the messages from SOS and PostgreSQL for any issues and click
Dismiss to dismiss the dialog box.
The Archive command generates three files for the project:
Restoring an Archive
The archive files that you create with the Archive command contain all of the
information needed to restore a project to the same SOS server or a different server.
1 Open the Projects dialog box for the destination SOS server.
2 If you are replacing the active project with an archived version, click Delete and
delete the that project.
3 Click Restore.
4 Enter the project name and the path to the exported files and click Restore.
5 Review the messages from SOS and PostgreSQL for any issues and click
Dismiss to dismiss the dialog box.
NOTE: The Clients window is available to the server owner only, on the primary server
only.
Moving Projects
Moving a project can involve either reassigning the project to a different server,
physically moving the repository to a new path, or both.
To reassign a project to another SOS server, use the Export and Import commands
in the Projects dialog box to create a project archive and restore the archive to the
new server. See “Creating and Restoring Backups and Archives”.
To move the database and options files for a server and all of its projects to a new
file system, follow these steps:
1 In the SOSAdmin window, highlight the server, click Shutdown, and click Yes to
shut down the server.
2 Using operating system commands, move the .rep directory for the server to the
new file system.
3 Click Edit and update the Repository Path to match the new location. Click OK to
apply the changes.
4 Restart the server with the Startup command.
To use a shared work area with full access, users need to set their umask to 000 or
00? and then connect to the work area.
SOSD.CFG
This chapter explains how to configure SOS projects with the server configuration
file, sosd.cfg, in the following sections.
• Overview of the Server Configuration File
• Working With Configuration Files
• Setting Project Access Controls
• Setting the Default Revision Search Order, Populate, Branch, and Work Area
UMASK Options
• Defining Reference Projects
• Integrating SOS Projects with Change Request Tracking Systems
The syntax for the rules is similar to the syntax for the xhost command in the X
Windows system. A plus sign (+) grants access and a minus sign (-) denies access.
You can specify host names, IP addresses, or subnet ranges (with wildcards). The
default rule is simply +, and all hosts have access.
In the previous example, all hosts have access except for training and
demo.cliosoft.com. The next example denies access to all hosts by default, and
then specifies the allowed IP addresses:
-
+128.64.139.*
-128.64.139.100
-training.cliosoft.com
The rules above specify:
1 Deny access to all hosts.
2 Grant access to all hosts on the subnet 128.64.139.
3 Deny access to the IP address 128.64.139.100 and the host
training.cliosoft.com.
USER wallyr {
-- Define the default group for 'wallyr' to 'all_my_groups'
-- All groups that wallyr is a member of will get equal rights
-- over files owned by wallyr and group set to all_my_groups
DEFAULT_GROUP all_my_groups;
}
-- **** Default Group definitions (END) **** --
• MODIFY_ACL controls whether users can modify the access controls on files and
directories that they create.
The default access controls are:
OPEN_WORLD yes;
ACL {
READ world; -- can be owner, group or world
WRITE world; -- can be owner, group or world
MODIFY_ACL yes; -- can be yes or no, must be yes for Virtuoso
}
NOTE: The world setting in the configuration file corresponds to the All option in the SOS
graphical user interface.
If a file has READ and WRITE set to world, and OPEN_WORLD is yes, anyone in your
organization can populate their work area with the file, check it out, modify it, and
check it back in. If OPEN_WORLD is set to no, only the user names listed in sosd.cfg
can perform those operations; other users in the company cannot populate their
work areas with even a read-only copy of the file.
Roles
Roles control a user’s access permissions and optionally limit the commands that
the user can run. You assign users to roles by specifying lists of users for each role.
In the project configuration file, you can give a user the same role in all groups for a
project, or you can give a particular user different roles in different groups. The
predefined roles are:
For example:
ADMIN edaman_us, edaman_jp;
MEMBER gwong, dfisk, gsingh;
GUEST sjones;
In sosd.cfg, you can override the default command privileges listed in the previous
table for the default roles. You can also define new roles and specify which
commands users in that role may run, as in this example:
ROLE VERIF_ENGR {
COMMAND definetag, tag, snapshot;
}
In this example, users with the role VERIF_ENGR can only run the three commands
specified; they cannot create or modify files.
To assign a user to a user-defined role, use this syntax:
ROLE_NAME user1, user2, ...;
For example:
VERIF_ENGR sally, phuong, ricardo;
Groups
You control the permissions on files that users create by assigning the users to
groups. Each group typically contains users who work on related parts of the design.
For example, you might define separate groups for design engineers and layout
engineers. Users may belong to one or more groups, and should be assigned to a
default group.
NOTE: Linux group permissions do not affect SOS access control. SOS user groups are
similar to Linux user permission groups, but you define the groups in the
configuration file.
The GROUP keyword begins a group definition. The syntax is:
GROUP groupname {
MEMBER user1, user2, ...;
USER_DEFINED_ROLE user3, user4, ...;
ACL {
READ owner | group | world;
Users can override the default access control values when they add files to revision
control, unless MODIFY_ACL for the group that the user selected (schematic in the
previous figure) is set to no. Likewise, users can modify file and directory access
controls with the Modify Attrs > Source File/Dir command in the SOS application
unless MODIFY_ACL for the selected group is set to no.
READ world;
WRITE group;
}
GROUP design {
MEMBER userl, user2;
}
GROUP layout {
MEMBER user2, user3, user4;
}
To ensure that files that these users create get assigned to the correct group, and
therefore have the correct permissions, you could use the create command in a
trigger to set the Group attribute.
Setting the Default Revision Search Order, Populate, Branch, and Work
Area UMASK Options
You can set group, project, and user-level defaults in the server configuration file
(sosd.cfg) for:
• The Revision Search Order (RSO)
• Which directories to populate in new work areas
• Which branch to use for checkouts
• The umask value for files and directories in user work areas
where nameN is a tag, snapshot, or branch name and MODIFY controls whether the
user may override the default revision search order in their own work area.
For example:
RSO {
DEFAULT "verified", "main";
MODIFY yes;
}
Directories to Populate
Use the POPULATE keyword to automatically populate specified directories when a
user creates a new work area and selects the Populate paths predefined in server
configuration option:
POPULATE "directory_name", "directory_name2", ...;
For example:
POPULATE "./cds", "./docs", "specs";
NOTE: The Populate paths predefined in server configuration option is selected by
default when you run the New Workarea command.
Typically you do want those changes to be visible on the main branch, so the default
and recommended value for DIRECTORY is no. Be aware that SOS does not have a
graphical utility for managing and representing merging of branched directories, to
handle situations in which changes have been made to a directory in both a branch
and the main branch.
1 From the SOSAdmin window, click Project Map. The Project -> Server Mapping
dialog box opens.
The example shows two reference projects, both hosted on a server named
REFERENCE.
2 Do one of the following:
• To add a single project to the reference map, click Add and choose the server
and project from the Add Project Map dialog box.
• To add all projects to the reference map, click Automatic. You can later delete
individual projects with the Delete command.
Repeat this step at all sites that will use the reference project. Updates will fail at
sites that skip this step.
3 For each project that will make use of data in a reference project, edit the project
server configuration (sosd.cfg) file and add REFERENCE_PROJECT blocks for each
project that will be referenced. See “Syntax of the REFERENCE_PROJECT
Block”, next.
4 For each project with an updated configuration file, highlight the server in
SOSAdmin and click Reread Config.
Adding References
1 Launch the SOS application and connect to the project work area.
2 In the Hierarchy tree, highlight the directory where you want to create a reference
to a file or folder in the external project.
4 Choose the reference project from the Project list and click Browse to choose a
file or directory in the reference project.
5 Optionally, click Browse opposite Use Object RSO and select one or more tags,
branches, or snapshots to identify the desired revision of the referenced file or
directory. Otherwise, leave Use default project RSO selected, and SOS will use
your current RSO to select a revision of the reference file or directory. To update
the reference-specific RSO later, use the Tree > Set Node RSO command. See
the next section for details.
6 Optionally, specify an Alias to use within the current project for the referenced
directory or file. Click Ok.
Repeat the Add Reference command for each reference directory or file.
RSO {
DEFAULT "list_of_labels";
MODIFY yes | no;
}
MODIFY yes | no | attr;
BRANCH {
DEFAULT BRANCH_NAME;
DIRECTORY yes | no;
MODIFY yes | no;
}
}
where:
• sos_project_name is the name of the reference project.
• For RSO:
• DEFAULT list_of_labels is a comma-separated list of tags, branches, and
snapshots to define the revision search order.
• MODIFY controls whether users may change this default RSO.
• MODIFY at the top-level of the block controls whether users can check objects in
and out of the project, or whether they can only change attributes like tags and
snapshots. This is useful when a user might be a member of both the design
project and the reference project, to prevent the user from accidentally modifying a
reference object while working on the primary project.
• For BRANCH:
• branch_name is a branch name from the reference project, into which
checked-out items will be placed.
• DIRECTORY controls whether to branch checked-out directories.
• MODIFY controls whether users can change the branch name.
You can omit any of the three sections to accept the default settings.
This example defines a read-only reference project:
REFERENCE_PROJECT reference_IP_libs {
MODIFY no;
RSO {
DEFAULT "Release_A1";
MODIFY no;
}
}
The next example defines an editable reference project:
REFERENCE_PROJECT reference_IP_libs {
MODIFY yes;
RSO {
DEFAULT "low_power", "Release_A1";
MODIFY yes;
}
BRANCH {
DEFAULT "low_power";
DIRECTORY yes;
MODIFY no;
}
}
Declaring Attributes
You declare attributes in the project configuration file,
project_directory/setup/sos.cfg. The syntax for declaring an attribute is:
attribute attribute_name {
type type_name;
label label_name;
mode attribute_category;
display {yes | no};
export {yes | no};
prompt {yes | no};
value shell_command
required {yes | no};
}
NOTE: By convention, names for predefined attributes begin with an uppercase letter.
User-defined attributes (including attributes that ClioSoft has defined in the global
sos.cfg file) should begin with a lowercase letter.
You can also declare enumerated types for attributes. The syntax is:
enum type_name {
value1,
[value2],
....
}
Each enumerated value must be a string without any embedded spaces or special
characters.
For example, you could define an attribute called fix_for to track which customer
needs a particular fix. Here is how you would define the type and the attribute itself:
-- List of customers
enum customers {
All,
Larry,
Moe,
Curly
}
-- Fix for a specific customer
attribute fix_for {
type customers;
label "Fix for Customer";
mode set;
value echo "All"
display yes;
export yes;
prompt yes;
}
Both enum and list attributes let the user pick a value from a limited set of choices.
An enum is a predefined list of items whose values cannot contain spaces. A list is
dynamically generated when, for example, a program or script opens the Check In
dialog box, and the values may contain spaces. Here is an example for a list
attribute:
list issue_type {
value $CLIOSOFT_DIR/scripts/cr_list_my_issues.tcl
}
attribute issue_id {
type issue_type;
label "IssueID";
mode set;
export yes;
display yes;
prompt yes;
}
The default client configuration file $CLIOSOFT_DIR/data/sos.cfg contains
examples of enumerated attribute types.
Here is an example of an attribute with a required value:
-- Trac Issue ID attribute
attribute issue_id {
type issue_type;
label "Trac Issue ID";
mode set;
export yes;
display yes;
prompt yes;
required yes;
}
Predefined Attributes
The attributes listed in the table are predefined for all objects. Attributes beginning
with upper-case letters and using medial capitals (for example, CheckInTime) are
predefined in the SOS software. By convention, attributes that begin with lower-case
letters are defined in the default client configuration file,
$CLIOSOFT_DIR/data/sos.cfg.
Table 13 Predefined Attributes
Attribute Value and Description
change_summary A one-line summary of the changes made to a revision of the file.
SOS uses the first line of the Log attribute as the value.
CheckedInBy The login id of the user who checked in this revision. Nobody can
change this value.
CheckedOutBy The login ID of the person who has this revision of the file checked
out. If the file is not checked out, this attribute has no value.
CheckInTime The time when the selected revision was last checked in.
CheckInTime The time when this revision of the file was checked in.
CheckOutTime The time when the file was checked out. If the file is not checked out,
this attribute has no value.
Checksum Checksum of the object. For packages, the value is the checksum of
all of the package components.
chkout_path The pathname to the location where a file was checked out. By
default, this attribute is automatically recorded when a user checks
out a file.
Description The description of the file that was entered when the file was first
created. This is a text type attribute, so it cannot be displayed in
the SOS user interface.
Group The SOS group to which the file belongs.
Log The log file comment entered for the current or selected version of
the file. You enter this comment when you check in a file. This is a
text type attribute, so it cannot be displayed in the SOS user
interface.
Using Triggers
Triggers let you extend the functionality of most SOS operations, such as checking
files in or out. Triggers let you associate pre- and post-command actions with SOS
commands. You can assign triggers to files, directories, and other objects. Triggers
specify one or more of the following instructions:
• The commands or scripts to execute before an action (such as checking out the
file).
• The commands or scripts to execute after the action.
• The attributes to record, for check in and check out actions only. (Setting attributes
on check out actions is not common.)
If you specify an attribute when you check in a file, the attribute value gets
associated with the revision of the file that you check in. If you specify an attribute
when you check out a file, that attribute value is associated with the temporary,
checked-out revision of the file.
On Linux clients, commands for triggers run in a Bourne shell. On Windows, they run
as Windows commands.
For example, triggers can:
• Send email notifications when someone checks in a critical file.
• Set access controls for operations.
• Automatically run lint or other commands before checking in a file.
• Record the number of changes made in each revision.
• Record the number_of_nets attribute when a Verilog file is checked in.
NOTE: You can execute shell commands in triggers. You cannot execute SOS command-
line commands in triggers, unless you run them in the background. For that reason,
SOS command-line commands are typically only used in post-operation actions.
Most but not all commands can be extended through a trigger. See “Commands that
Accept Actions”.
command Modify Attrs > Source File/Dir. In the next example, the netif.v file has
the trigger demo_file_trigger.
Default Triggers
SOS defines default triggers for each type of object. If you do not explicitly set a
trigger when you create a new object, SOS applies the appropriate default trigger
whenever you perform an operation on the object (check in, check out, and so forth).
For example, all of the default triggers set the chkout_path attribute when you
check out an object. Table 14 lists the default triggers.
Table 14 Default Triggers for Objects
Object Type Default Trigger Description
Files dflt_file_trigger This trigger applies to all managed
files.
Directories dflt_dir_trigger This trigger applies to all managed
directories.
Packages dflt_package_trigger This trigger applies to all managed
composite objects (packages of related
files).
Symbolic Links dflt_symlink_trigger This trigger applies to all managed
symbolic links.
These triggers have basic definitions in the default sos.cfg file. You can override
those definitions in your site or project configuration files.
Defining a Trigger
Trigger definitions are a list of SOS commands together with the shell commands to
run before and afterwards, and the attributes to compute or set when the command
is executed. The syntax for triggers in sos.cfg is:
trigger trigger_name {
sos_command_1 {
exec_before [server] shell_command_1
[exec_before [server] shell_command_2...]
exec_after [server] shell_command_3 [...]
[exec_after [server] shell_command_4...]
attribute attribute_name_1 ;
[attribute attribute_name_2 ; ... ]
}
sos_command_2 { ...
}
...
}
where shell_command is usually a script and attribute_name is an SOS
attribute. Do not quote shell_command, except in the unusual situation that the
command name itself contains spaces.
NOTE: Client systems need to be able to resolve the path to the shell_command. Keep
this requirement in mind when you have project users located at multiple sites.
This example uses the default directory trigger to restrict who can use the delete
command. The trigger specifies that only the project lead can delete a directory.
trigger dflt_dir_trigger {
delete {
-- Allow only the project lead to delete directories
exec_before /projects/my_project/setup/scripts/ac_lead_only }
} -- trigger dflt_dir_trigger
This trigger calls the script ac_lead_only, shown below, to enforce the restriction on
the delete command:
#!/bin/csh -fe
set UID = $SOS_LOGIN_NAME
set LEADID = toolman
if ($UID != $LEADID) then
echo "** Only the project administrator may perform this operation."
exit 1
endif
exit 0
For more examples, see $CLIOSOFT_DIR/data/sos.cfg.
The following sections describe the keywords in trigger definitions.
exec_before
The text between the exec_before action and the end of the line (which you can
extend with a backslash character \), is submitted to a Bourne shell /bin/sh before
the SOS command is executed. You can specify multiple exec_before commands
for each SOS command. If the shell does not exit with normal status, the SOS
command does not run.
The exec_before action is useful for operations like these:
• Process controls, such as running a Lint check before checking in Verilog files
• Access controls, such as preventing check-ins during a scheduled backup window
exec_after
The text between the exec_after action and the end of the line (which you can
extend with a backslash character \), is submitted to a Bourne shell /bin/sh after
the SOS command is executed. You can specify multiple exec_after commands for
each SOS command. SOS ignores the exit status of the exec_after action.
The exec_after action is useful for operations like these:
• Generating email notifications
• Cleaning up temporary files that editors create
attribute
The specified attribute is recorded in the SOS database when this action is
executed. The attribute keyword is allowed only for the co, ci, and create
commands. You can specify multiple attributes for each SOS command.
You must declare attributes before you reference them, earlier in the configuration
file (or in another configuration file that was read earlier).
With the create command, you can only use the attribute keyword to assign a
value to a predefined file attribute, not to a revision attribute.
server
By default, SOS executes trigger actions on the client system. Use the server
keyword after exec_before or exec_after to execute the trigger action on the
server system. Use this keyword with caution, because a script running on the server
might slow down SOS operations for all project users or crash the server.
For security, you cannot run arbitrary commands on the server. The script or
program that you execute must be located in the project_repository/setup
directory. For example, consider this trigger:
exec_after server my_script arg1 arg2 …
SOS runs the following command on the server:
project_repository/setup/my_script arg1 arg2 …
For more information about the SOS commands in Table 15, type soscmd help at
your Linux prompt.
For the most current information about the commands that do accept actions, see
the system default client configuration file, $CLIOSOFT_DIR/data/sos.cfg.
SKILL Triggers
You can set up SKILL triggers to be executed when you use the Virtuoso user
interface to check in, check out, or tag an object. For example, a pre-event trigger
can run a Check and Save operation before a schematic is checked in. These
triggers are specific to SOS, and are different from the Cadence-supplied generic
DM triggers. For instructions on setting up and using SKILL triggers, see this file:
$CLIOSOFT_DIR/scripts/cds_sosviadfII_vars.il
filename=$(basename "$SOS_OBJ_PATH")
extension="${filename##*.}"
if [ $extension = v ];
then
echo "verilog_file_trigger"
else
echo ""
fi
attribute Log {
required yes;
}
attribute line_count {
value .SOS/SCRIPTS/tb_line_count
}
}
}
co {
attribute chkout_path;
}
ci {
-- Pre-event action
exec_before /projects/common/scripts/lintchk
}
}
The drawback to defining the lint check action in this way is that you need to
somehow determine which files should have this trigger associated with them. It
would be easier to run the lint check by modifying the dflt_file_trigger to run a
script that checks whether the file is a Verilog file, and if it is, runs the lintchk script.
However, this approach means that the script gets invoked for all files, even though
the lint check only runs on the Verilog files; this is inefficient.
A second approach would be to change the Trigger attribute during the create
operation by modifying the dflt_file_trigger:
trigger dflt_file_trigger {
create {
attribute Trigger {
value script_to_determine_what_trigger_value_to_set
}
}
}
// A directory must contain sub directories labeled "sch", "sym" and "wir".
libid matchall
“*/sch”,
“*/sym”,
“*/wir”;
// The composite object must contain files below the sub directories matching
// package name. Also extensions on the file can be any nonnegative integer.
include globplus
“sch/$1.[0-9]*”,
“sym/$1.[0-9]*”,
“wir/$1.[0-9]*”;
}
The next figure shows the result of applying this rule to newly-created DxDesigner
cellviews.
Figure 8: UDMA Rules Applied for Mentor DxDesigner
Applying these rules does not move files into new folders on the file system. In this
example, the files for each sheet remain in their original parent folders. Only the
representation within SOS changes. This is why the sch, sym, and wir folders
appear as unmanaged files with lavender-colored icons in Figure 8 (right). Hiding
unmanaged files from view in SOS simplifies the tree view and excludes files (such
as lock files) that the EDA tool manages automatically.
Using X Resources
You can customize the SOS application graphical user interface by setting X
resource values. You can set values globally, for a project, or for an individual user.
Using X resources you can:
• Set colors and fonts. For example, to change the main window background color,
modify this X resource:
Sos.workAreaDisplay.windowBackgroundColor: white
• Define which attributes to display.
• Add user-defined commands as buttons in the user interface.
• Set the default revision search order.
Priority of X Resources
SOS reads the X resources in the following order:
Follow the next steps to perform these tasks with X resource files:
• Retrieve a copy of the current global or project X resources file for editing.
• Create or update a file from a template.
• Install a new or updated file in the correct location.
1 Highlight the primary server in the SOSAdmin window and click Projects. The
Projects window for the server opens.
2 Highlight the project in the Projects window and click Customize.
Displaying Attributes
The main SOS window shows attribute values to the right of the Hierarchy tree. By
default, four attributes appear: the CheckedOutBy attribute (labeled Locked), the
CheckedInBy attribute, the CheckInTime attribute, and the change_summary
attribute. If the file is checked out, the Locked column shows the login ID of the user
who checked out the file. If the file is not checked out, this column is empty. The
Change Summary column shows your check out comment if you have the file
checked out in this work area; otherwise, this column shows the check in comment
associated with the file revision that you have in your work area (which is not
necessarily the latest revision).
By updating the related X resources, you can change and rearrange which attributes
are displayed. You can display all types of attributes except text attributes (because
they are multi-line attributes). The Sos.attributes.list resource defines which
attributes get displayed and the order of the columns:
Sos.attributes.list: attribute1 [attribute2 ...]
For each attribute, three resources define how the attribute gets displayed:
Sos.attributes.attribute_name.display: {yes | no}
Sos.attributes.attribute_name.label: "label"
Sos.attributes.attribute_name.width: integer
For example, if you have a user-defined attribute issue_id which contains a bug
tracking number, you would modify Sos.attributes.list to include issue_id and
define three new resources:
Sos.attributes.list: CheckedOutBy issue_id change_summary
Sos.attributes.issue_id.display: yes
Sos.attributes.issue_id.label: "Bug #"
Sos.attributes.issue_id.width: 5
You can also change how the default attributes are displayed:
• To make the change_summary column 60 characters wide:
Sos.attributes.change_summary.width: 60
To move the change_summary column to the left of the CheckedOutBy column:
Sos.attributes.list: change_summary CheckedOutBy
Adding Buttons
You can use X resources to define buttons that appear on the right side of the SOS
window. The list of buttons and their order is defined by the resource
Sos.buttons.list. To modify an existing button, copy the relevant resources from
$CLIOSOFT_DIR/data/Sos.ad into the .Xdefaults file in your home directory, and
make the necessary changes.
User-defined buttons can execute Linux commands, Linux shell scripts, SOS Tcl
commands, or Tcl scripts. If no objects are selected, the script or command runs
once. If multiple objects are selected, the script or command runs once for each
selected object.
Follow these steps to add a user-defined button:
1 In your personal ~/.Xdefaults or the project Sos.ad resources file, define the
label for the button:
Sos.buttons.NAME.label: LABEL
The LABEL string may contain spaces and does not need to be quoted.
2 Define the command for the button
Sos.buttons.NAME.command: [shell | source] path_to_script_or_cmd
where path_to_script_or_cmd is a Linux command, Linux Bourne shell
script, SOS Tcl command, or Tcl script. The path must be accessible to all clients,
so use environment variables or common mount paths as needed. See “Making
Scripts Accessible at All Project Sites”.
Anything after the shell command is submitted to the shell. The shell script can
accept arguments. This example runs tclsh and passes in a file name as an
argument:
Sos.buttons.ipcompare.command: shell $CLIOSOFT_DIR/bin/sostclsh
.SOS/SCRIPTS/ip_compare.tcl
Only one argument may follow the source command: the name of the Tcl file to
source into the SOS Tcl interpreter. Use this option carefully, because syntax
errors or other mistakes might cause the SOS process to hang or crash. This file
cannot be a Tcl command, and the file does not take any arguments.
If you omit both source and shell commands, SOS treats the argument as a
built-in SOS Tcl procedure. For example, the Check In button in the GUI is defined
as:
Sos.buttons.ci.command: gui_check_in
The gui_check_in procedure is a built-in SOS Tcl procedure.
3 Copy the Sos.buttons.list resource from the site or project Sos.ad file to a
personal or project X resources file.
4 Add your button to the list in any position:
Sos.buttons.list: create co ci ... NAME ...
where NAME is the same name you used in the label and command resources.