Presentation is loading. Please wait.

Presentation is loading. Please wait.

Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage.

Similar presentations


Presentation on theme: "Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage."— Presentation transcript:

1 Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage

2 9 Apr 2007Software Productization2 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

3 9 Apr 2007Software Productization3 “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.

4 9 Apr 2007Software Productization4 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

5 9 Apr 2007Software Productization5 UPS Unix Product Support http://www.fnal.gov/docs/products/ups/ [savage@smtfs2 savage]$ setup epics [savage@smtfs2 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

6 9 Apr 2007Software Productization6 …/base/configure /ups /extensions/configure /src/alh /edm /ups /support/genSub/configure /ups /sequencer/configure /ups Makefile …/vxWorksIoc/configure /ups /plcIoc/configure /ups Makefile /p/epics/v1 /p/epics/v2 /p/epics/v3 /p/epics_iocs/v1 /p/epics_iocs/v2 /p/epics_iocs/v3 In cvs epics/epics In cvs epics/epics_ioc

7 9 Apr 2007Software Productization7 Controls System Components EPICSDOOCS Contents base Serverlib, Clientlib, ENS Engine, Protocol supportSupport libs Sequencer, VME access, field bus, … iocServers Applications extensionsClients Display manager Configuration vxworks ConfigurationDifference: vxworks

8 9 Apr 2007Software Productization8 Doocs/Linux/SunOS_compat /build_tools /clients/cmdline /ddd /rpc_util /save_restore /doc /ens /iid /libs/ lib /clientlib /dddlib /fsmlib /serverlib /servers/bpm /ip177timer /multiknob /simcon Makefile /ups Doocs_ilcta/ddd_panels /eq_conf driver stuff vhdl interface fieldbus libraries Display Sequencer Displays server config

9 9 Apr 2007Software Productization9 …/base/configure /ups /extensions/configure /src/alh /edm /ups /support/genSub/configure /ups /sequencer/configure /ups Makefile …/iocs… /p/epics/v1 /p/epics/v2 /p/epics/v3 The RELEASE file in the configure directory specifies the locations of external software modules, an example is EPICS base. Each version is tagged in CVS. extensions = CA client applications ioc = user application, CA server support = libraries used in ioc base = engine, CA protocol

10 9 Apr 2007Software Productization10 Installations Installation CVS Module Development Directory Make installs libraries, executables, headers Tar -> Untar Production Directory Distribution Directory cvs export (no CVS directories) cvs checkout (CVS directories) Configuration CVS Module Configuration Directory ups table file specifies version to use cvs checkout Make Make?

11 9 Apr 2007Software Productization11 Development Installation CVS Module Development Directory Make installs libraries, executables, headers cvs checkout New Component Set an environment variable to point to the new location.

12 9 Apr 2007Software Productization12 Decisions and Discoveries Logging of build configurations –Makefile in ups directory (not tried yet) What scripts are necessary? –Epics_hard_coded_path.sh (not coded yet) –Ups_dir_init.sh (not coded yet) How many configuration CVS modules? –One for each area –Example: a0/server module What should our Makefiles do? –Make help –Make local_install –Make prod_install –Note: Config is separate

13 9 Apr 2007Software Productization13 Decisions and Discoveries How to install UPS directories? –Script needed Using CVS –Install starting version into cvs with import Cvs import –m’initial’ epics/ioc/plc INITIAL vX_Y other epics/epics/extensions/…. –Install new version with commit after installing on top of the previous version Cvs ci –m’comment’ –Cvs tag vs cvs rtag --- use cvs tag. 3rd party products –???

14 9 Apr 2007Software Productization14 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 3 rd 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

15 9 Apr 2007Software Productization15 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

16 9 Apr 2007Software Productization16 New Discoveries “setup” seems to be working Need system startup –Component startup Doocs watchdog server suggested Vxworks_boot as install area –Same as /p except under /home/vxworks_boot /home/vxworks/p/kekbpm


Download ppt "Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage."

Similar presentations


Ads by Google