Publishing conventions for custom publisher

(recipe provided by Alberto Di Meglio)

In order to publish packages using the ETICS Publisher the following conventions have to be followed by the Packager (the ETICS Packager follows these conventions, which means you get them for free when using it):

Location

The build scripts must put the tarballs in a directory called tgz in the root of the module and the (S)RPMS in a directory called RPMS in the root of the module. The internal structure of the tgz and RPMS directories is not important since tarballs and rpms are searched within the tree starting from those directories.

It is also possible to redirect the location where ETICS looks for packages by definining the following properties

  • package.tgzLocation (for tarballs)
  • package.RPMSLocation (for binary RPMS)
  • package.SRPMSLocation (for source RPMS)

Version and build architecture

When the packages are published by ETICS, they are put in the path:

${workspaceDir}/dist/${projectName}/${moduleName}/${version}/${platform}

The version string is taken from the metadata of the configuration object, which must therefore match the package version. If the packages are created by ETICS this is guaranteed by definition, otherwise you have to make sure that your packaging script use the correct version information.

The platform string is taken from the detected platform information for platform-dependent packages and from the ${buildarch} property in other cases. If your packages are not platform-dependent, make sure you attach to the configuration the property:

buildarch = noarch

Following these simple rules, the ETICS packager will harvest your packages and publish them automatically, as part of the publish target. Remember that the prepublish / postpublish targets are also available should you require any adjustements before and/or after publishing.

-- MebSter - 11 Dec 2006

RPM Packaging Attributes

  • package.userspec=(path to the RPM spec file relative to the module directory)
  • package.customtag
  • package.group = (refers to RPM's Group: tag)
  • package.packager = (refers to RPM's Packager: tag)
  • package.prefix = (/opt/glite by default in the org.glite project)
  • package.buildarch = ('noarch' for example for script components)
  • package.requires = (refers to RPM's Requires: tag)
  • package.provides = (refers to RPM's Provides: tag)
  • package.obsoletes = (refers to RPM's Obsoletes: tag)
  • package.Conflicts = (refers to RPM's Conflicts: tag)
  • package.autoreqprov = (refers to RPM's AutoReqProv: tag, should be 'no', when any of the above ones used)
  • package.configure
  • package.clean
  • package.compile
  • package.doc
  • package.install
  • package.preserve.libtool

Unclear of the exact name: preun, postun, post

RPM Documentation Attributes

There are two ways of setting the RPM 'Summary' and 'Description' fields:

  • description = becomes the RPM 'Summary' value
  • moduleDescription = the long description of the component goes to 'Description'

or directly via

  • package.summary = RPM's Summary
  • package.descriptio = RPM's Description

Unclear of the exact name: changelog

-- AkosFrohner - 15 Mar 2007

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2007-10-02 - MebSter
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    ETICS All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 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