1 / 14

Disk Layout/Productization Proposal

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

lirit
Télécharger la présentation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage

  2. 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

  3. “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

  4. 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

  5. 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 Software Productization

  6. /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

  7. Controls System Components Software Productization

  8. Software Productization

  9. /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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

More Related