Build external dependencies from sources

Typically you would build external dependencies from sources if

  • there are no precompiled binaries for your platform,
  • or you want to upgrade an external package to a newer version.

If your operating system provides all external dependencies required by DIANE on all involved machines on the network which you want to use then you do not need to handle external dependencies yourself.

If you have to handle the external dependencies yourself then let yourself help by DIANE: there is a simple yet powerful system of resolving these dependencies automatically. All you need to do is to compile packages in a correct place and tell DIANE how to find them.

You may of course hack the external dependencies into your shell environment. But why to make your life a nightmare?

Using a DIANEPlatformDoctor script to compile external dependencies

Just do:

python platform-doctor.py --fix

Detailed instructions are on this page: DIANEPlatformDoctor.

This will try to compile external dependencies using a DUMMY_PLATFORM_STRING. The binaries are located in external/PKG/VERSION/DUMMY_PLATFROM_STRING, where PKG is omniORB.

Let us know about your platform and binaries!

Create distribution tarfiles with your new binaries: python ~/diane/diane-install --make-tarballs VER, where VER is the diane version you are using.

Email us the output of python platform-doctor.py --test script and make the your compiled tarfiles available so we may add them to the central repository!

Internal information

This part of the documentation is of interest mainly for the diane developers and release managers.

This may also be useful if you want to make the new platform available from a DIANE distribution cache maintained somewhere else then /afs/cern.ch/sw/arda/diane.

Introducing a new platform for binaries compiled by the platform doctor script

DIANE has a simple mechanism for automatic platform detection. External packages, versions and platform strings are defined in python/diane/PACKAGE.py file. Binary (compiled) packages are organized according to the operating system / processor architecture - this is so called platform string. This can be any string really, it's just important that it is allows to uniquely identify your operating system

DIANE will automatically try to guess your platform string. This is implemented by _detectPlatform() function in the python/diane/PACKAGE.py file. You should modify this function accordingly and define new platform string there. Try to follow the naming conventions. Use the output of the platform doctor to see how you can identify the user's platform if you don't have access to the same system.

Make sure that your changes are updated in /afs/cern.ch/sw/arda/diane/install/TRUNK (e.g through svn update and commit).

Get the tarfiles from the user and rename or symlink the DUMMY_PLATFORM_STRING directories in the external area (/afs/cern.ch/sw/arda/diane/external)

Repackage TRUNK snapshot forcing the new platform string (look at: /afs/cern.ch/sw/arda/diane/etc/repackage_trunk script).

Check if the system still works after these changes or ask a user to do so by getting the TRUNK release.

Finally, make sure the new public release contains your changes.

Note: upload of the packages to the central DIANE repository (this requires permissions and it's not available normally): scp $TOP/packages/omniORB-4.1.2-PLATF.tar.gz lxplus:/afs/cern.ch/sw/arda/diane/packages

Compiling omniorb

This is normally not needed as it should be handled automatically by the DIANEPlatformDoctor.

Run etc/omniorb-build.py script with --auto option. Use --help to learn more.

Version of omniorb and its dependencies are defined on top of the etc/omniorb-build.py file.

Create tarballs.

When the external dependencies are made you should create corresponding tarballs in the packages directory:

python etc/diane-install --make-tarballs VERSION

Tell us about your packages. If you do so then we may be able to provide them for other users.

For further information on the organization of the central packages repository look at /afs/cern.ch/sw/arda/diane/packages/README

-- JakubMoscicki - 13 Aug 2007

Edit | Attach | Watch | Print version | History: r16 < r15 < r14 < r13 < r12 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r16 - 2011-03-02 - JakubMoscicki
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    ArdaGrid All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback