Disk layout productization proposal
This presentation is the property of its rightful owner.
Sponsored Links
1 / 14

Disk Layout/Productization Proposal PowerPoint PPT Presentation


  • 47 Views
  • Uploaded on
  • Presentation posted in: General

Disk Layout/Productization Proposal. Ron Rechenmacher and Geoff Savage. Goals. Flexibility - environment variables Organization – EPICS and DOOCS (and Everything) Development Production Distribution Configuration Complete example

Download Presentation

Disk Layout/Productization Proposal

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Disk layout productization proposal

Disk Layout/Productization Proposal

Ron Rechenmacher

and

Geoff Savage


Goals

Goals

  • Flexibility - environment variables

  • Organization – EPICS and DOOCS (and Everything)

    • Development

    • Production

    • Distribution

    • Configuration

    • Complete example

  • Methodology - a set or system of methods, principles, and rules for regulating a given discipline, as in the arts or sciences

    • CVS

    • UPS

    • Scripts

    • make

    • Native (EPICS and DOOCS) build systems

Software Productization


Disk layout productization proposal

“Epics will be built the Fermi way

- ie no hard coded paths.”

Use environment variables set via UPS in EPICS and DOOCS build systems to locate components.

Software Productization


Environment variables

Environment Variables

  • “A set of dynamic values that can affect the way running processes will behave on a computer” - Wikipedia

    • In our case we want to change locations of components

  • Example:

    • Change header in EPICS base for doocs2epics

    • Edit configure/RELEASE

    • What if change in EPICS base for all components?

    • How do we trigger the rebuild of all components?

  • Debated EPICS issue – disagreement

    • Some flexibility exists without Environment Variables (flexibility has value)

    • Many years CD/elsewhere experience

    • Basic UNIX (along with symlinks)

      • Similar to logicals from VMS; should not be too surprising

Software Productization


Disk layout productization proposal

UPS

  • Unix Product Support

  • http://www.fnal.gov/docs/products/ups/

[[email protected] savage]$ setup epics

[[email protected] savage]$ printenv | grep EPICS

EPICS_DIR=/p/epics/v3_14_8_f2

EPICS_LIB_DIR=/p/epics/v3_14_8_f2/lib/linux-x86

EPICS_HOST_ARCH=linux-x86

SETUP_EPICS=epics v3_14_8_f2 -f Linux -z /p

Software Productization


Disk layout productization proposal

/p/epics/v1

/p/epics/v2

/p/epics/v3

…/base/configure

/ups

/extensions/configure

/src/alh

/edm

/ups

/ioc/vxWorksIoc/configure

/ups

/plcIoc/configure

/ups

/support/genSub/configure

/ups

/sequencer/configure

/ups

/ups

Makefile

Software Productization


Controls system components

Controls System Components

Software Productization


Disk layout productization proposal

Software Productization


Disk layout productization proposal

/p/epics/v1

/p/epics/v2

/p/epics/v3

base = engine,

CA protocol

…/base/configure

/ups

/extensions/configure

/src/alh

/edm

/ups

/ioc/vxWorksIoc/configure

/ups

/plcIoc/configure

/ups

/support/genSub/configure

/ups

/sequencer/configure

/ups

/ups

Makefile

extensions =

CA client

applications

Each version is

tagged in CVS.

ioc =

user application,

CA server

support =

libraries used

in ioc

The RELEASE file in the configure directory specifies the locations

of external software modules, an example is EPICS base.

Software Productization


Installations

Installations

Development

Directory

Installation

CVS Module

cvs checkout

Make installs libraries,

executables, headers

cvs export

(no CVS directories)

Make?

Make

Production

Directory

Configuration

Directory

ups table file specifies version to use

Tar -> Untar

cvs checkout

(CVS directories)

Distribution

Directory

Configuration

CVS Module

Software Productization


Development

Development

Development

Directory

Installation

CVS Module

cvs checkout

Make installs libraries,

executables, headers

Set an environment variable to

point to the new location.

New

Component

Software Productization


Decisions and discoveries

Decisions and Discoveries

  • Logging of build configurations?

  • What scripts are necessary?

  • How many configuration CVS modules?

  • What should our Makefiles do?

  • How to install UPS directories?

  • Using CVS

    • Install starting version into cvs with import

    • Install new version with commit after installing on top of the previous version

  • 3rd party products

Software Productization


Other technical issues and non issues

Other Technical Issues(and non-issues)

  • Host architecture isn’t enough

    • Unless always build on “oldest” distribution

    • Compatibility libraries

  • Dependency conflicts

    • Each release version will not have all product versions

  • 3rd party libraries and products:

    • National Instruments (GPIB) (LD_LIBRARY_PATH *)

      • Note difference from labview product: non-licensed (free)

    • matlab interface - (MATLABPATH *)

    • labview interface (?)

      * Does not have to be installed into installation directory – non-issue

Software Productization


Time marches on

Time Marches On …

  • Develop and install

    • Documentation, makefiles, UPS files, Scripts

    • For EPICS: perl script

  • “Estimate of 80 hours of an FTE”

    • One meeting, 12 people * 0.25 hr = 3 hrs

    • Ron and Geoff meeting * 6 hrs = 12 hrs

      • And some coffee and doughnuts

    • Ron for 20 hrs

    • This talk - 6 hrs and counting

    • This meeting 10 people * 0.5 hr = 5 hr

Software Productization


  • Login