1 This directory contains the 4.2 release of `OpenSAF'.
3 `OpenSAF' is an open source project designed to implement a complete highly
4 available operating environment based on Service Availability Forum (SA Forum)
5 standards. The objective of the `OpenSAF' project is to accelerate broad adoption
6 of a SA Forum compliant operating environment. OpenSAF also offers
7 complementary services which are required in a complete high-availability
10 `OpenSAF' has been originally contributed by Motorola ECC, by open sourcing
11 its HA middleware suite Netplane Core Services (NCS).
13 `OpenSAF' has a web site at http://www.opensaf.org/
15 See file `COPYING.LIB' for copying conditions.
16 See file `INSTALL' for compilation and installation instructions.
17 See file `NEWS' for a list of major changes in the current release.
18 See file `ChangeLog' for a list of detailed changes.
19 See file `AUTHORS' for the names of maintainers.
20 See file `THANKS' for a list of contributors.
22 Please check the `Linux' distribution-specific notes below for any caveats
23 related to your operating system.
26 `OpenSAF' Architecture Overview
27 ===============================
29 `OpenSAF' software is distributed in nature. There is a Controller node, which is
30 the central entity in the cluster which will control all the other Payload nodes
31 in the HA cluster. In the HA cluster there are two System Controllers running in
34 The `OpenSAF' software is divided in to following classes of Modules:
37 The Service directors run on the Controller node. They interact with
38 Node Directors running on the Payload nodes and provide service specific
42 Node directors distribute the service responsibilities with directors.
43 Node directors interact with Agents to provide service functionality to
44 the user applications. Node directors run both on System Controller node
48 Servers run on the System Controller and they talk to Agents to provide
49 service functionality to the users. If the service is having servers then
50 it doesn't have directors, node director pieces. If the service doesn't
51 have node local functionality then "Server - Agent" architectural approach
54 * Agents: Agents are the service libraries which are linked with user
55 applications and provide service to the user applications by interacting
56 with other service parts.
58 User applications can run on either System Controller node or Payload node. But
59 it is advisable to run the user applications on the Payload nodes, so your
60 applications are not impacted when System Controller failover happens due to
61 any failures in `OpenSAF' Modules.
63 The OpenSAF infrastructure is made highly available by modeling the individual
64 services as AMF components. All the Node Directors use no redundancy model and
65 are restart capable with component capability 1_ACTIVE. All the Directors and
66 Servers use 2N redundancy model with "1_ACTIVE_OR_1_STANDBY".
68 By default (in 4.2) OpenSAF processes will run as the UNIX system user "opensaf"
69 which is a member of the "opensaf" UNIX group. Only two processes are running
70 as root, amfnd and smfnd. Reason is that amfnd need todo that for backwards
71 compatible reasons and the programs it starts might be designed to require root
72 access. The reason for smfnd for running as root is that it typically installs
73 rpms which requires root access. The rpms built by opensaf will create these users
76 When using a "make install" system, either manually do the same as the rpm post
77 install scriptlet (create group and user, configure sudo etc) or configure
78 opensaf to run as root.
80 See the build section how to revert to old all root behaviour.
86 `OpenSAF' release archives can be obtained from here:
88 http://devel.opensaf.org/wiki/downloads/
94 `OpenSAF' implements various `SAF AIS' services. The Service Availability
95 Forum Specifications can be downloaded from here:
97 http://www.saforum.org/specification/download/
99 The `OpenSAF' Programmer's Reference Manuals can be obtained from here:
101 http://devel.opensaf.org/wiki/downloads/
104 * OpenSAF Availability Service
105 * OpenSAF Cluster Membership Service
106 * OpenSAF Checkpoint Service
107 * OpenSAF Event Distribution Service
108 * OpenSAF Global Lock Service
109 * OpenSAF Information Model Management Service
110 * OpenSAF LOG Service
111 * OpenSAF Message Queue Service
112 * OpenSAF Notification Service
113 * OpenSAF Platform Management Service
114 * OpenSAF Software Management Framework Service
119 `OpenSAF' development is managed using `Trac', the main project portal can
122 http://devel.opensaf.org/
124 You can find most information concerning the development of `OpenSAF' at
127 `OpenSAF' is using `Mercurial' (hg) as its Source Control Management system
128 tool, the repositories index can be found here:
130 http://devel.opensaf.org/hg/
132 `Mercurial' is a fast, lightweight Source Control Management system designed
133 for efficient handling of very large distributed projects and can be obtained
136 http://www.selenic.com/mercurial/wiki/
139 Building from `Mercurial'
140 =========================
142 If you don't want to use one of the `OpenSAF' release archive, you can get a
143 clone and bootstrap it by doing the following steps:
145 % hg clone http://devel.opensaf.org/hg/<repo>/
149 Where <repo> is one of the tree from the repositories index listed here:
151 http://devel.opensaf.org/hg/
153 After bootstraping follow the standard build instructions.
160 subscribe to the development mailing list from here:
162 http://list.opensaf.org/maillist/listinfo/devel/
165 subscribe to the user mailing list from here:
167 http://list.opensaf.org/maillist/listinfo/users/
169 You can also use the online bug tracking system in the `Trac' `OpenSAF'
170 project to submit new problem reports or search for existing ones:
172 * Create New Ticket: http://devel.opensaf.org/newticket/
173 * Available Reports: http://devel.opensaf.org/report/
175 When reporting bug, make sure you provide various useful informations about
176 your Linux environment:
178 * Distribution used (e.g. Fedora, Ubuntu, SUSE, PNE-LE etc.)
179 * The revision of your Linux distribution
180 * Package revisions of the prerequisites (e.g. net-snmp, tipc etc.)
181 * If using the package prerequisites from the Linux distribution?
182 * Build tool revisions (e.g. gcc, automake, autoconf, libtool)
183 * If using cross-compiling + target information
186 Source Tree Structure
187 =====================
190 | | +-plmc/ (The PLM coordinator implementation)
191 +-java/ (Java AIS API mapping Implementation for AMF,CLM)
194 | |+-ais_api_impl_native/
196 +-m4/ (Extra M4 macros for the build)
197 +-osaf/ (OpenSAF Sources)
198 | +-libs/ (Sources of OpenSAF Libraries)
199 | | |+-agents/ (sources for OpenSAF agents)
200 | | | |+-infrastructure/ (Agents of Infrastructure services)
202 | | | |+-saf/ (Agents of SAF services)
213 | | |+-common/ (Common sources for OpenSAF services)
214 | | |+-core/ (OpenSAF core library)
220 | | |+-saf/ (SAF Libraries)
231 | |+-services/ (Sources, Config files for Directors/ND/Servers of OpenSAF services)
232 | | |+-infrastructure/ (Infrastructure services)
237 | | |+-saf/ (SAF services)
250 | |+-safimm (IMM commandline utilities and IMM XML merge tool)
251 | |+-saflog (SAFLOG command line utility)
252 | |+-safntf (SAFNTF command line utility)
253 |+-pkgconfig/ (OpenSAF Pkgconfig file)
254 |+-samples/ (OpenSAF sample applications for SAF services)
255 |+-scripts/ (OpenSAF scripts)
256 |+-tests/ (OpenSAF Test suites)
257 |+-tools (OpenSAF developer tools and UML devel environment)
262 The following software is required to build OpenSAF:
264 * The Linux Kernel with TIPC development support (This is not required when the opensaf is
265 build with option --disable-tipc). OpenSAF works with TIPC version 1.5 onwards. But it
266 is strongly adviced to use TIPC 1.6.2 and above, to get the TIPC service unsubscribe
267 feature(Cancellation to a Subscription).
268 * libxml2-dev (Development files for the GNOME XML library)
271 * autoconf (2.61 or later)
278 * When PLM is enabled, an HPI implementation (e.g. OpenHPI)
279 * When IMM PBE feature is enabled, sqlite3
281 If enabling optional Java support:
282 - A Java 1.5+ capable JDK (e.g. OpenJDK 1.6)
285 If a specific prerequisite package revision isn't working for you, please
286 let us know about it following the instructions from the Bug Reporting section.
292 Some features needs to be configured at build time but don't have configure
293 support, these are explained here.
295 1) Configure a non flat MDS addressing scheme (optional)
297 In the default (from 4.3) addressing scheme, TIPC node addresses looks like
300 To re-enable the old (pre 4.3) non flat addressing, configure the constant
301 MDS_USE_SUBSLOT_ID=1 at configure time as in:
303 % ./configure CFLAGS="-DMDS_USE_SUBSLOT_ID=1 ..."
305 In the non flat scheme, the slot ID is shifted up 4 bits and subslot ID is
306 added in the 4 LSB. The consequence of this is reduced number of
307 addressable TIPC nodes in the cluster. This scheme is more likely to be used
308 in xTCA type of systems and produces node addresses like 1.1.31, 1.1.47 etc.
310 More configuration is needed, see nid.conf in 00-README.conf
313 2) Run as root (optional)
315 If the old (<4.2) behaviour of running all processes as root is desired, use
316 the following configure command:
318 % ./configure CFLAGS=-DRUNASROOT
321 If you are using a released archive (dist tarball) follow the simple common
324 % ./configure && make
328 % ./configure && make rpm
330 Note: `OpenSAF' can safely be built with parallel jobs using -jX, where X
331 should be the number of CPU you want to dedicate + 1
333 If you are Building from `Mercurial', make sure you followed the required
334 steps before trying to `configure' (i.e. bootsrapping).
337 % ./configure && make
339 % ./configure && make rpm
341 By default, all 'OpenSAF' services are enabled to be built and
342 `OpenSAF' will assume the following `configure' options by default:
344 --disable-java --disable-imm-pbe --disable-tests
346 Some OpenSAF services/features can be disabled through configure options.
347 To alter the default configure options, the following configure options
348 are available w.r.t enabling/disabling the build for a particular OpenSAF service:
349 (The below options can also be known from the command % ./configure --help)
351 --disable-rpath Patches libtool to not use rpath in the libraries
353 --disable-rpm-target disable support for the "make rpm" target
355 --enable-python enable the Python AIS bindings [default=yes]
356 --enable-java enable the Java AIS interface mapping [default=no]
357 --enable-am4j enable the AM4J agent [default=no]
358 --disable-tipc disable building the TIPC [default=no]
359 --enable-tests enable building the OpenSAF testing programs
361 --enable-imm-pbe enable the IMM Persistent Backend Interface
363 --disable-tipc disable building the TIPC as the transport for MDS
365 --disable-ais-ckpt disable building the SAI-AIS-CKPT service
367 --disable-ais-evt disable building the SAI-AIS-EVT service
369 --disable-ais-lck disable building the SAI-AIS-LCK service
371 --disable-ais-msg disable building the SAI-AIS-MSG service
373 --disable-ais-smf disable building the SAI-AIS-SMF service
375 --disable-ais-plm disable building the SAI-AIS-PLM service
377 --disable-dependency-tracking speeds up one-time build
378 --enable-dependency-tracking do not reject slow dependency extractors
379 --enable-shared[=PKGS] build shared libraries [default=yes]
380 --enable-static[=PKGS] build static libraries [default=yes]
381 --enable-fast-install[=PKGS]
382 optimize for fast installation [default=yes]
383 --disable-libtool-lock avoid locking (might break parallel builds)
385 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
386 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
387 --with-rpm-release=[ARG]
388 set the RPM release value to be current timestamp
389 (ARG=timestamp); set the RPM release value to be the
390 global revision (ARG=global-rev); set the RPM
391 release value to be the local revision
392 (ARG=local-rev); set the RPM release value to be
393 <val> (ARG=<val>, [default=1])
394 --with-hpi-interface=[ARG]
395 autodetect the SAHPI_INTERFACE_VERSION (ARG=check
396 [default]); set the SAHPI_INTERFACE_VERSION to
397 A.01.01 (ARG=A01); set the SAHPI_INTERFACE_VERSION
398 to B.01.01 (ARG=B01); set the
399 SAHPI_INTERFACE_VERSION to B.02.01 (ARG=B02); set
400 the SAHPI_INTERFACE_VERSION to B.03.01 (ARG=B03)
401 --with-initscriptdir=[DIR]
402 use DIR as the directory containing the init.d
403 scripts. [default=/etc/init.d]
404 --with-pic try to use only PIC/non-PIC objects [default=use
406 --with-gnu-ld assume the C compiler uses GNU ld [default=no]
407 --with-jdk=DIR use JDK from DIR
408 --with-ant=DIR Use ant from DIR
410 Use one of the following forms to enable an option:
412 --with-<mumble> OR --enable-<mumble>
413 --with-<mumble>=yes OR --enable-<mumble>=yes
414 --without-<mumble>=no OR --disable-<mumble>=no
416 For eg:- To enable building the IMM PBE feature, use the following option:
418 % ./configure --enable-imm-pbe
420 Use one of the following forms to disable an option:
422 --without-<mumble> OR --disable-<mumble>
423 --without-<mumble>=yes OR --disable-<mumble>=yes
424 --with-<mumble>=no OR --enable-<mumble>=no
426 For eg:- To disable building the LOCK service, use the following option:
428 % ./configure --disable-ais-lck
430 The `--with-<mumble>' option forms are used for external package support and
431 the `--enable-<mumble>' option forms are used for internal component state.
433 Note: When PLM is enabled, `OpenSAF' relies on <SaHpi.h>, even if
434 the user thinks he's not using a specific HPI implementation. This is a build
435 dependency and the user still needs to tell the build system to be
436 using the proper CPPFLAGS/CFLAGS/CXXFLAGS where to find a dummy <SaHpi.h>
438 By using `./configure --enable-java', you are enabling the Java AIS mapping
439 support in the build system. Specials M4 macros will be used to autodetect
440 what `JDK' and `Ant' program you are using. By default this options is
443 By using `./configure --with-jdk=DIR', you can force the build system to use
444 a specific JDK installed in a non-standard location on your system.
446 By using `./configure --with-ant=DIR', you can force the build system to use
447 a specific Ant version installed in a non-standard location on your system.
449 By using `./configure --with-rpm-release', you can change the default release
450 token in the generated rpm filename. Predefined values exist like the build
451 timestamp, the Mercurial revision used to when building the code, and also you
452 can add your own free text token.
454 By using `./configure --with-hpi-interface', you can force the HPI interface
455 version used. By default it's autodetected by scanning the SaHpi.h header, but
456 when cross-compiling is used it's not possible to run the test code for that
459 By using `./configure --disable-rpm-target', you are masking out the `make rpm'
460 target, some build systems provide their own `make rpm` rule, it would then be
461 clashing with the OpenSAF rule.
463 By using `./configure --disable-tipc', you are building the MDS with the TCP as
464 the only transport of the OpenSAF(MDS transports supported are TCP and TIPC).
466 If user wants to use TCP as the transport of MDS, build the opensaf with `--disable-tipc` option,
467 and update the variable DTM_NODE_IP to self node IP address in the `/etc/opensaf/dtmd.conf`
468 before starting the opensaf.
470 If opensaf is built with default option, MDS is built to support both TIPC and TCP,
471 with TIPC selected as default transport.
472 If user wants to use TCP as the transport with default built image, user needs
473 to change the variables MDS_TRANSPORT to TCP and MDS_INTRANODE_TRANSPORT to UNIX in
474 the `/etc/opensaf/nid.conf` file and update the variable DTM_NODE_IP to self node
475 IP address in the `/etc/opensaf/dtmd.conf`.
476 For the applications of the opensaf, user needs to export the variables as said
477 below in there respective start up scripts as shown below,
478 export MDS_TRANSPORT=TCP
479 export MDS_INTRANODE_TRANSPORT=UNIX
482 Building `OpenSAF' RPMs
483 =======================
485 As shown in the Building `OpenSAF' section, generating RPMs can be done using:
487 % ./configure && make rpm
489 The special `make rpm' target will generate a dist archive, create the
490 `OpenSAF' SRPM using the opensaf.spec file, and finally launch the rpmbuild
491 process. You can find the generated RPMs under `./rpms/RPMS/<build_arch>/':
493 RPMs per OpenSAF Service are generated. For eg:-
495 * opensaf-<svcname-director>-<Release>.<build_arch>.rpm:
496 RPM containing the particular OpenSAF service director/server's binaries,
497 libraries, CLC scripts, and the immxml classes and objects owned/implemented by the service.
499 * opensaf-<svcname-nodedirector>-<Release>.<build_arch>.rpm:
500 RPM containing the particular OpenSAF service NodeDirector's binaries, CLC
503 * opensaf-<svcname-libs>-<version>.<Release>.<build_arch>.rpm:
504 RPM containing the particular OpenSAF service libraries to be linked by User
505 and any User Program (command line tool/utility) provided the service.
507 With the default configure options, the following RPMs are generated:
509 opensaf-<Release>.<arch>.rpm
510 opensaf-controller-<Release>.<arch>.rpm
511 opensaf-devel-<Release>.<arch>.rpm
512 opensaf-samples-<Release>.<arch>.rpm
513 opensaf-payload-<Release>.<arch>.rpm
514 opensaf-amf-libs-<Release>.<arch>.rpm
515 opensaf-clm-libs-<Release>.<arch>.rpm
516 opensaf-imm-director-<Release>.<arch>.rpm
517 opensaf-imm-libs-<Release>.<arch>.rpm
518 opensaf-imm-nodedirector-<Release>.<arch>.rpm
519 opensaf-libs-<Release>.<arch>.rpm
520 opensaf-log-libs-<Release>.<arch>.rpm
521 opensaf-log-server-<Release>.<arch>.rpm
522 opensaf-ntf-libs-<Release>.<arch>.rpm
523 opensaf-ntf-server-<Release>.<arch>.rpm
524 opensaf-plm-coordinator-<Release>.<arch>.rpm
525 opensaf-plm-hpi-<Release>.<arch>.rpm
526 opensaf-plm-libs-<Release>.<arch>.rpm
527 opensaf-plm-server-<Release>.<arch>
528 opensaf-smf-director-<Release>.<arch>.rpm
529 opensaf-smf-libs-<Release>.<arch>.rpm
530 opensaf-smf-nodedirector-<Release>.<arch>.rpm
531 opensaf-ckpt-director-<Release>.<arch>.rpm
532 opensaf-ckpt-libs-<Release>.<arch>.rpm
533 opensaf-ckpt-nodedirector-<Release>.<arch>.rpm
534 opensaf-evt-libs-<Release>.<arch>.rpm
535 opensaf-evt-server-<Release>.<arch>.rpm
536 opensaf-lck-director-<Release>.<arch>.rpm
537 opensaf-lck-libs-<Release>.<arch>.rpm
538 opensaf-lck-nodedirector-<Release>.<arch>.rpm
539 opensaf-msg-director-<Release>.<arch>.rpm
540 opensaf-msg-libs-<Release>.<arch>.rpm
541 opensaf-msg-nodedirector-<Release>.<arch>.rpm
544 opensaf-controller: (Meta Package)
545 Contains the controller specifc config, script files, the IMM classes
546 and objects for OpenSAF infrastructure services, And the
547 dependencies for installing the controller rpm.
549 opensaf-payload: (Meta Package)
550 Contains the payload specific config file And the dependencies for
551 installing the payload rpm.
553 opensaf-<Release>.<arch>.rpm
554 Contains configuration and script file that are common to both
555 a controller/payload node configuration.
557 opensaf-devel: (Optional)
558 Contains the development headers and static & shared libs for user
559 application development/linkage.
561 opensaf-java: (Optional)
562 Contains the Java AIS mapping jars and native libs.
564 opensaf-samples: (Optional)
565 Contains the sample applications source code.
571 `OpenSAF' can be installed in several ways. When doing development, a
572 user might prefer using the classic `make install' way to using RPMs.
573 It can be achieved like this:
579 % make install DESTDIR=<staged_install_directory>
581 After installing `OpenSAF' you will need to run `ldconfig' because `OpenSAF'
582 places internal libs in the `$pkglibdir' (e.g. /usr/lib/opensaf/). This ldconfig
583 operation is handled automatically by using rpm installation.
585 In production systems, RPMs should be preferred to classic `make install`.
587 To setup a development environment for a given OpenSAF service, install following RPMs:
588 % rpm -ivh opensaf-<svc_name>-libs-<Release>.<build_arch>.rpm
589 % rpm -ivh opensaf-devel-<Release>.<build_arch>.rpm
590 % rpm -ivh opensaf-samples-<Release>.<build_arch>.rpm
592 If Java AIS mapping was enabled, install the following RPM:
594 % rpm -ivh opensaf-java-<version>.<build_arch>.rpm
596 If you are installing `OpenSAF' from a supported `yum' server, it will resolve
597 the proper dependencies for you:
599 % yum install opensaf-controller
603 % yum install opensaf-payload
605 Here is where individual `OpenSAF' components get installed:
607 * Documentation: `$docdir' (e.g /usr/share/doc/packages/opensaf/)
608 * Samples, Templates: `$pkgdatadir'/samples (e.g. /usr/share/opensaf/samples)
609 * IMM XML Merge tool: `pkgimmxmldir' (e.g. /usr/share/opensaf/samples/immxml
610 * SAF libraries: `$libdir' (e.g. /usr/lib/)
611 * SAF headers: `$includedir' (e.g. /usr/include/)
612 * Configuration: `$pkgsysconfdir' (e.g. /etc/opensaf/)
613 * OpenSAF headers: `$pkgincludedir' (e.g. /usr/include/opensaf/)
614 * Runtime Misc.: `$pkglocalstate' (e.g. /var/lib/opensaf/)
615 * OpenSAF internals(binaries,clc-scripts): `$pkglibdir' (e.g. /usr/lib/opensaf/)
616 * User programs: `$bindir' (e.g. /usr/bin/)
617 * SysV scripts: `$sysconfdir/init.d/' (e.g. /etc/init.d/)
618 * Logs: `$localstatedir/log/opensaf' (e.g. /var/log/opensaf/)
619 * PID: `$localstatedir/run/opensaf/' (e.g. /var/run/opensaf/)
623 Linking with `OpenSAF' AIS Services
624 ===================================
626 `OpenSAF' provides `pkgconfig' files for each AIS services.
627 These files are installed with the other system `*.pc' files
628 in `$(libdir)/pkgconfig':
642 There are two easy ways to use `pkgconfig'. The first one is to call it directly
643 from a `Makefile' and assign its content to make variables e.g.:
645 AMF_LIBS=`pkg-config opensaf-amf --libs`
646 AMF_CFLAGS=`pkg-config opensaf-amf --cflags`
648 Or if your application is using the `GNU Build System' with `autotools', you can
649 use a special `autoconf' macro provided by `pkgconfig' e.g.:
651 -- in configure.ac --
652 PKG_CHECK_MODULES(AMF, opensaf-amf)
654 It will then provides two special variables available to `automake':
657 mumble_CFLAGS = @AMF_CFLAGS@
658 mumble_LDADD = @AMF_LIBS@
661 How to Configure `OpenSAF'
662 ==========================
664 See file `00-README.conf' for the configuration file syntax/format.
668 When PLM is enabled, The 'plmcd' SysV init script is installed in
669 `$sysconfdir/rc.d/init.d' (e.g. /etc/rc.d/init.d/) directory.
671 The `OpenSAF' SysV init script is installed in `$sysconfdir/rc.d/init.d'
672 (e.g. /etc/rc.d/init.d/)
674 Commands to Start OpenSAF When PLM is disabled:
675 ===============================================
676 After a minimum configuration of
677 - slot_id, nodeinit.conf, node_name, imm.xml(Generated) and nid_tipc(if needbe), for the controller
679 - slot_id, nodeinit.conf and node_name, for the payload.
681 the following command shall start the OpenSAF services:
683 % /etc/init.d/opensafd start [start|stop|status]
685 Commands to Start OpenSAF When PLM is enabled:
686 ==============================================
687 After a minimum configuration of
689 - slot_id, nodeinit.conf, node_name, imm.xml(Generated) and nid_tipc(if needbe) and the plmcd.conf,
692 - slot_id, nodeinit.conf, node_name and the plmcd.conf, for the payload
694 The following commands shall be executed:
696 % /etc/init.d/plmcd start
698 % /etc/init.d/opensafd start [start|stop|status]
700 Note: Its not necessary to start OpenSAF if an entry to start OpenSAF is
701 set/specified in the plmcd.conf file.
703 More TODO on status command.
705 Command To Trigger a Administrative Switchover of the Controller Nodes:
706 =======================================================================
707 amf-adm si-swap safSi=SC-2N,safApp=OpenSAF
709 Building `OpenSAF' Samples
710 ==========================
712 The sources of the `OpenSAF' sample applications will get installed in
713 `$pkgdatadir/samples' (e.g. /usr/share/opensaf/samples/).
715 The following steps shall be done to build the sample applications:
722 The `Makefile' looks for installed `SAF AIS' headers and `OpenSAF' libs in
723 standard system wide locations (e.g. /usr/include/ & /usr/lib/):
726 LDFLAGS = -lSaAmf -lsaf_common -lavsv_common
728 If you have `OpenSAF' development packages installed somewhere else, override
729 the default values e.g.:
731 % make INCLUDES="-I. -I/tmp/usr/local/include" \
732 LDFLAGS="-L/tmp/usr/local/lib -lSaAmf -lsaf_common -lavsv_common"
734 To run an application you will need a configured `OpenSAF' node running.
736 See file `00-README.samples' for more information on each of the application.
739 Using the Simulation Environment
740 ================================
742 See file `00-README.uml' for more information about User Mode Linux and `OpenSAF'
746 In OpenSAF 4.2, the non-standard DTSv (Distributed Tracing Service) has been retired/removed.
747 Fresh installations (new users) of 4.2 shall generate a new
748 imm.xml(see file 00-README.conf).
750 Users of OpenSAF 4.0.2 or OpenSAF 4.1.1 releases, who wish to perform an In-Service Upgrade
751 to OpenSAF 4.2 using SMF based upgrade campaigns should do the following:
753 1) Download OpenSAF 4.2 release source tar from http://devel.opensaf.org/downloads
754 2) Apply the patch 4.2_upgrade_dummydtsv.patch from http://devel.opensaf.org/downloads
755 <FIXME: Patch name, link>
756 3) Build OpenSAF 4.2 rpms
757 4) Execute your SMF upgrade campaigns.
759 The capability to modify the OpenSAF services' information model at run time
760 has been added now in OpenSAF 4.2 and also in maintenance changesets of
761 the 4.0.2 and 4.1.1 releases.
762 You should track this section for information on steps to be done to permenantly delete
763 the DTSv from the information model, in future releases.
765 Note: When an OpenSAF installation(< 4.2) running with 'root' privileges and that may have
766 configured IMM persistent storage and/or contains old/generated trace files,
767 is now being upgraded to OpenSAF 4.2 as the 'opensaf' user (i.e. non-root user),
768 Then it is the responsibility of the user/integrator to manage (through rpm scriptlets
769 or upgrade scripts) the permissions of the file/directory of the
770 immsv persistent store (see IMMSV_PBE_FILE in the $pkgsysconfdir/immnd.conf.
771 e.g. /etc/opensaf/immnd.conf file) and/or the permissions of any previous trace files
772 present under the $pkglogdir (e.g. /var/log/opensaf) directory, accordingly, if applicable.
775 Linux Distro-Specific Notes
776 ===========================
778 `OpenSAF' is known to run on the following Linux installations:
780 * Red Hat Enterprise Linux 4 (RHEL4)
781 * Red Hat Enterprise Linux 5.2 (RHEL5)
782 * Wind River Platform for Network Equipment, Linux Edition (PNE-LE)
783 * MontaVista Carrier Grade Edition 4.0
785 * SUSE Linux Enterprise 10 SP2
791 <RHEL firewall rules, SELinux, SUSE crashes with -02, missing decent tipc.h etc.>
793 -------------------------------------------------------------------------------
795 Copyright (C) 2011 The OpenSAF Foundation