rpm:rpm

Full name:

de.dentrassi.maven:rpm:1.10.1:rpm

Description:

Build an RPM file

Attributes:

  • Requires a Maven project to be executed.
  • Binds by default to the lifecycle phase: package.

Optional Parameters

Name Type Since Description
<afterInstallation> Script - A script which is run after the installation took place

Also see scripts


<afterRemoval> Script - A script which is run after the removal took place

Also see scripts


<afterTransaction> Script - A script which is run after the entire transaction finishes

Also see scripts


<architecture> String - The architecture
Default value is: noarch.
User property is: rpm.architecture.
<attach> boolean - Whether to attach the output file
Default value is: true.
User property is: rpm.attach.
<beforeInstallation> Script - A script which is run before the installation takes place

Also see scripts


<beforeRemoval> Script - A script which is run before the removal takes place

Also see scripts


<beforeTransaction> Script - A script which is run before the entire transaction starts

Also see scripts


<classifier> String - The classifier of the attached rpm
Default value is: rpm.
User property is: rpm.classifier.
<conflicts> List - RPM package conflicts

Also see dependencies


<defaultRuleset> String - The default ruleset to use if no other is specified
<defaultScriptInterpreter> String - The default script interpreter which is used if neither the script has one set explicitly, nor one could be detected
Default value is: /bin/sh.
User property is: rpm.defaultScriptInterpreter.
<description> String - The "description" field of the RPM file

This defaults to the Maven project description


Default value is: ${project.description}.
User property is: rpm.description.
<distribution> String - The "distribution" field in the RPM file
User property is: rpm.distribution.
<enhances> List - Hint backward dependency.

Also see dependencies and Weak dependencies.


<entries> List - The actual payload/file entries

Also see entries

This is a list of <entry> elements with additional information:

<entries>
  <entry>
    <!-- target name -->
    <name>/etc/foo/bar.conf</name>

    <!-- either one of:
      <file>src/main/resources/bar.conf</file>
      <directory>true</directory>
      <collect>
        <from>src/main/resources/dir</from>
      </collect>
    -->

  </entry>
</entries>

<epoch> Integer - The RPM epoch, leave unset for default
User property is: rpm.epoch.
<evalHostname> boolean - Whether the plugin should try to evaluate to hostname

If set to false, then he build hostname localhost will be used instead of the actual hostname


Default value is: true.
User property is: rpm.evalHostname.
<fileDigestAlgorithm> String 1.10.0 Configure the digest algorithm for files.

This configures the algorithm which is used to calculate a digest for each file. This information is stored (per file) in the RPM header section.

The following variants are possible (from DigestAlgorithm, in no particular order):

  • MD2
  • MD5
  • SHA1
  • Double-SHA
  • SHA-224
  • SHA-256 (default)
  • SHA-384
  • SHA-512
  • RIPE-MD160
  • Tiger-192
  • Haval-5-160

NOTE: This relies on the JVM to provide a MessageDigest provider. If you choose a file digest algorithm for which the JVM doesn't provide an implementation, the build will fail. By default, JVMs (as of 1.8) should at least support MD5, SHA1, and SHA256. In practice SHA-224 to SHA-512 are supported by most JVMs.

NOTE: This used to be MD5 in releases before 1.10.0. Starting with 1.10.0 this defaults to SHA-256 and can be overridden using this setting.


Default value is: SHA-256.
User property is: rpm.fileDigestAlgorithm.
<forceRelease> boolean 0.6.0 Always use the "release" string

This parameter enforces the build to always use the RPM release information from the parameter "release", whether this is a snapshot build or not


Default value is: false.
User property is: rpm.forceRelease.
<generateDefaultSourcePackage> boolean 0.11.0 Whether to generate a default source package.

If the sourceProperty package is null or empty, this flag controls if a default value is generated for the source package or not.

The default name will consist of the package name and the version with the suffix .src.rpm. The output file name is not used as a basis for the default source package name. If you need more control over the source package name you need to use the sourcePackage property instead.

Before version 0.11.0 the source package was always empty. The new default behavior is to fill the source package with a package name derived from the package name. Setting this flag to false will revert to the old default behavior of leaving the source package header field unset.


Default value is: true.
User property is: rpm.generateDefaultSourcePackage.
<group> String - The RPM group

See also https://fedoraproject. org/wiki/RPMGroups


Default value is: Unspecified.
User property is: rpm.group.
<leadOverrideArchitecture> Architecture 0.10.2 Override the lead architecture value.

Also see Lead information.


User property is: rpm.leadOverride.architecture.
<leadOverrideOperatingSystem> OperatingSystem 0.10.2 Override the lead operating system value.

Also see Lead information.


User property is: rpm.leadOverride.operatingSystem.
<license> String - The license of the RPM file

This defaults to a comma separated list of all license names specified in the projects POM file.


User property is: rpm.license.
<maximumSupportedRpmVersion> RpmBuilder$Version 0.11.0 The highest supported RPM version this package must conform to.

This allows to set a maximum version of RPM this package must be compatible with. If unset, it will not check the required RPM version.


User property is: rpm.maximumSupportedRpmVersion.
<naming> Naming - Provide package naming options

Also see naming


User property is: rpm.naming.
<obsoletes> List - RPM obsoletes information

Also see dependencies


<operatingSystem> String 0.10.2 The "operatingSystem" field in the RPM file.
User property is: rpm.operatingSystem.
<outputFileName> String 0.10.1 The file name of the output file.

This defaults the to an internal builder which will use <packageName>-<version>-<release>.<arch>.rpm. Also see naming.

Using this override will completely disable the internal name builder and simply use the provided value.


User property is: rpm.outputFileName.
<outputFileNameProperty> String 1.9.1 Name of the property, which is set according to the final outputFileName
Default value is: project.build.rpm.outputFileName.
User property is: rpm.outputFileNameProperty.
<outputTimestamp> String XXX Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
Default value is: ${project.build.outputTimestamp}.
<packageName> String - The RPM package name
Default value is: ${project.artifactId}.
User property is: rpm.packageName.
<packager> String - The name of the packager in the RPM file

This defaults to ${project.organization.name} <${project.organization.url}> if both values are set.

See also http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html#S3-RPM-INSIDE-PACKAGER -TAG


User property is: rpm.packager.
<prefixes> List 1.1.0 Build relocatable packages.
      <prefixes>
          <prefix>/opt</prefix>
          <prefix>/var/log</prefix>
      </prefixes>

See also The prefix tag


User property is: rpm.prefixes.
<prerequisites> List - RPM package requirements needed before the installation starts

Also see dependencies


<provides> List - RPM provides information

Also see dependencies


<recommends> List - Weak forward dependency.

Also see dependencies and Weak dependencies.


<release> String - The release which will be used if this is not a snapshot build
Default value is: 1.
User property is: rpm.release.
<requires> List - RPM package requirements

Also see dependencies


<rulesets> List - Rulesets to configure the file information like "user", "modes", etc.

Also see rulesets.


<signature> Signature - An optional signature descriptor for GPG signing the final RPM

Also see signing


User property is: rpm.signature.
<signatureConfiguration> String 1.4.0 Specify the "hint" for a provider of a signature configuration.

By default, the RPM writer will calculate and add information like MD5, SHA1, SHA256, etc. to the signature header of the RPM file. However, some, especially older (really old) RPM versions, have issues when the encounter signature information they don't understand. This parameter allows you to configure this process.

What you configure here is the so-called "hint" (Plexus component name/hint) of the provider to use. This plexus component has to be found in the class path of the plugin, during runtime. There are two default providers available, one is default and the other is md5-only. The latter only adds MD5 checksum information.

The default is to add as much information as possible to the RPM. So normally you don't need this parameter.

Specifying a configuration provider which cannot be found during the build, will fail the build.


<skip> boolean 1.1.1 Disable the mojo altogether.
Default value is: false.
User property is: rpm.skip.
<skipSigning> boolean - Disable all package signing
Default value is: false.
User property is: rpm.skipSigning.
<snapshotBuildId> String 0.6.0 Set the build id which is used when a snapshot build is active.

If this parameter is left unset or empty then the current time (UTC) in the format yyyyMMddHHmm will be used.


User property is: rpm.snapshotBuildId.
<snapshotReleasePrefix> String - The prefix of the release if this is a snapshot build, will be suffixed with the snapshot build id

Also see: snapshotBuildId


Default value is: 0..
User property is: rpm.snapshotReleasePrefix.
<snapshotVersion> String - The version string to be processed in case of a SNAPSHOT build
User property is: rpm.snapshotVersion.
<sourcePackage> String 0.11.0 Set the name of the source package.
User property is: rpm.sourcePackage.
<suggests> List - Hint forward dependency.

Also see dependencies and Weak dependencies.


<summary> String - The "summary" field of the RPM file

This defaults to the project name


Default value is: ${project.name}.
User property is: rpm.summary.
<supplements> List - Weak backward dependency.

Also see dependencies and Weak dependencies.


<targetDir> File 0.10.1 The location to place the RPM file into.
Default value is: ${project.build.directory}.
User property is: rpm.targetDir.
<vendor> String - The vendor name of the RPM file

This defaults to the name of the organization in the POM file.


User property is: rpm.vendor.
<version> String - The version string to be processed in case of a release build
Default value is: ${project.version}.

Parameter Details

<afterInstallation>

A script which is run after the installation took place

Also see scripts

  • Type: de.dentrassi.rpm.builder.Script
  • Required: No

<afterRemoval>

A script which is run after the removal took place

Also see scripts

  • Type: de.dentrassi.rpm.builder.Script
  • Required: No

<afterTransaction>

A script which is run after the entire transaction finishes

Also see scripts

  • Type: de.dentrassi.rpm.builder.Script
  • Required: No

<architecture>

The architecture
  • Type: java.lang.String
  • Required: No
  • User Property: rpm.architecture
  • Default: noarch

<attach>

Whether to attach the output file
  • Type: boolean
  • Required: No
  • User Property: rpm.attach
  • Default: true

<beforeInstallation>

A script which is run before the installation takes place

Also see scripts

  • Type: de.dentrassi.rpm.builder.Script
  • Required: No

<beforeRemoval>

A script which is run before the removal takes place

Also see scripts

  • Type: de.dentrassi.rpm.builder.Script
  • Required: No

<beforeTransaction>

A script which is run before the entire transaction starts

Also see scripts

  • Type: de.dentrassi.rpm.builder.Script
  • Required: No

<classifier>

The classifier of the attached rpm
  • Type: java.lang.String
  • Required: No
  • User Property: rpm.classifier
  • Default: rpm

<conflicts>

RPM package conflicts

Also see dependencies

  • Type: java.util.List
  • Required: No

<defaultRuleset>

The default ruleset to use if no other is specified
  • Type: java.lang.String
  • Required: No

<defaultScriptInterpreter>

The default script interpreter which is used if neither the script has one set explicitly, nor one could be detected
  • Type: java.lang.String
  • Required: No
  • User Property: rpm.defaultScriptInterpreter
  • Default: /bin/sh

<description>

The "description" field of the RPM file

This defaults to the Maven project description

  • Type: java.lang.String
  • Required: No
  • User Property: rpm.description
  • Default: ${project.description}

<distribution>

The "distribution" field in the RPM file
  • Type: java.lang.String
  • Required: No
  • User Property: rpm.distribution

<enhances>

Hint backward dependency.

Also see dependencies and Weak dependencies.

  • Type: java.util.List
  • Required: No

<entries>

The actual payload/file entries

Also see entries

This is a list of <entry> elements with additional information:

<entries>
  <entry>
    <!-- target name -->
    <name>/etc/foo/bar.conf</name>

    <!-- either one of:
      <file>src/main/resources/bar.conf</file>
      <directory>true</directory>
      <collect>
        <from>src/main/resources/dir</from>
      </collect>
    -->

  </entry>
</entries>
  • Type: java.util.List
  • Required: No

<epoch>

The RPM epoch, leave unset for default
  • Type: java.lang.Integer
  • Required: No
  • User Property: rpm.epoch

<evalHostname>

Whether the plugin should try to evaluate to hostname

If set to false, then he build hostname localhost will be used instead of the actual hostname

  • Type: boolean
  • Required: No
  • User Property: rpm.evalHostname
  • Default: true

<fileDigestAlgorithm>

Configure the digest algorithm for files.

This configures the algorithm which is used to calculate a digest for each file. This information is stored (per file) in the RPM header section.

The following variants are possible (from DigestAlgorithm, in no particular order):

  • MD2
  • MD5
  • SHA1
  • Double-SHA
  • SHA-224
  • SHA-256 (default)
  • SHA-384
  • SHA-512
  • RIPE-MD160
  • Tiger-192
  • Haval-5-160

NOTE: This relies on the JVM to provide a MessageDigest provider. If you choose a file digest algorithm for which the JVM doesn't provide an implementation, the build will fail. By default, JVMs (as of 1.8) should at least support MD5, SHA1, and SHA256. In practice SHA-224 to SHA-512 are supported by most JVMs.

NOTE: This used to be MD5 in releases before 1.10.0. Starting with 1.10.0 this defaults to SHA-256 and can be overridden using this setting.

  • Type: java.lang.String
  • Since: 1.10.0
  • Required: No
  • User Property: rpm.fileDigestAlgorithm
  • Default: SHA-256

<forceRelease>

Always use the "release" string

This parameter enforces the build to always use the RPM release information from the parameter "release", whether this is a snapshot build or not

  • Type: boolean
  • Since: 0.6.0
  • Required: No
  • User Property: rpm.forceRelease
  • Default: false

<generateDefaultSourcePackage>

Whether to generate a default source package.

If the sourceProperty package is null or empty, this flag controls if a default value is generated for the source package or not.

The default name will consist of the package name and the version with the suffix .src.rpm. The output file name is not used as a basis for the default source package name. If you need more control over the source package name you need to use the sourcePackage property instead.

Before version 0.11.0 the source package was always empty. The new default behavior is to fill the source package with a package name derived from the package name. Setting this flag to false will revert to the old default behavior of leaving the source package header field unset.

  • Type: boolean
  • Since: 0.11.0
  • Required: No
  • User Property: rpm.generateDefaultSourcePackage
  • Default: true

<group>

  • Type: java.lang.String
  • Required: No
  • User Property: rpm.group
  • Default: Unspecified

<leadOverrideArchitecture>

Override the lead architecture value.

Also see Lead information.

  • Type: org.eclipse.packager.rpm.Architecture
  • Since: 0.10.2
  • Required: No
  • User Property: rpm.leadOverride.architecture

<leadOverrideOperatingSystem>

Override the lead operating system value.

Also see Lead information.

  • Type: org.eclipse.packager.rpm.OperatingSystem
  • Since: 0.10.2
  • Required: No
  • User Property: rpm.leadOverride.operatingSystem

<license>

The license of the RPM file

This defaults to a comma separated list of all license names specified in the projects POM file.

  • Type: java.lang.String
  • Required: No
  • User Property: rpm.license

<maximumSupportedRpmVersion>

The highest supported RPM version this package must conform to.

This allows to set a maximum version of RPM this package must be compatible with. If unset, it will not check the required RPM version.

  • Type: org.eclipse.packager.rpm.build.RpmBuilder$Version
  • Since: 0.11.0
  • Required: No
  • User Property: rpm.maximumSupportedRpmVersion

<naming>

Provide package naming options

Also see naming

  • Type: de.dentrassi.rpm.builder.Naming
  • Required: No
  • User Property: rpm.naming

<obsoletes>

RPM obsoletes information

Also see dependencies

  • Type: java.util.List
  • Required: No

<operatingSystem>

The "operatingSystem" field in the RPM file.
  • Type: java.lang.String
  • Since: 0.10.2
  • Required: No
  • User Property: rpm.operatingSystem

<outputFileName>

The file name of the output file.

This defaults the to an internal builder which will use <packageName>-<version>-<release>.<arch>.rpm. Also see naming.

Using this override will completely disable the internal name builder and simply use the provided value.

  • Type: java.lang.String
  • Since: 0.10.1
  • Required: No
  • User Property: rpm.outputFileName

<outputFileNameProperty>

Name of the property, which is set according to the final outputFileName
  • Type: java.lang.String
  • Since: 1.9.1
  • Required: No
  • User Property: rpm.outputFileNameProperty
  • Default: project.build.rpm.outputFileName

<outputTimestamp>

Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
  • Type: java.lang.String
  • Since: XXX
  • Required: No
  • Default: ${project.build.outputTimestamp}

<packageName>

The RPM package name
  • Type: java.lang.String
  • Required: No
  • User Property: rpm.packageName
  • Default: ${project.artifactId}

<packager>

The name of the packager in the RPM file

This defaults to ${project.organization.name} <${project.organization.url}> if both values are set.

See also http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html#S3-RPM-INSIDE-PACKAGER -TAG

  • Type: java.lang.String
  • Required: No
  • User Property: rpm.packager

<prefixes>

Build relocatable packages.
      <prefixes>
          <prefix>/opt</prefix>
          <prefix>/var/log</prefix>
      </prefixes>

See also The prefix tag

  • Type: java.util.List
  • Since: 1.1.0
  • Required: No
  • User Property: rpm.prefixes

<prerequisites>

RPM package requirements needed before the installation starts

Also see dependencies

  • Type: java.util.List
  • Required: No

<provides>

RPM provides information

Also see dependencies

  • Type: java.util.List
  • Required: No

<recommends>

Weak forward dependency.

Also see dependencies and Weak dependencies.

  • Type: java.util.List
  • Required: No

<release>

The release which will be used if this is not a snapshot build
  • Type: java.lang.String
  • Required: No
  • User Property: rpm.release
  • Default: 1

<requires>

RPM package requirements

Also see dependencies

  • Type: java.util.List
  • Required: No

<rulesets>

Rulesets to configure the file information like "user", "modes", etc.

Also see rulesets.

  • Type: java.util.List
  • Required: No

<signature>

An optional signature descriptor for GPG signing the final RPM

Also see signing

  • Type: de.dentrassi.rpm.builder.Signature
  • Required: No
  • User Property: rpm.signature

<signatureConfiguration>

Specify the "hint" for a provider of a signature configuration.

By default, the RPM writer will calculate and add information like MD5, SHA1, SHA256, etc. to the signature header of the RPM file. However, some, especially older (really old) RPM versions, have issues when the encounter signature information they don't understand. This parameter allows you to configure this process.

What you configure here is the so-called "hint" (Plexus component name/hint) of the provider to use. This plexus component has to be found in the class path of the plugin, during runtime. There are two default providers available, one is default and the other is md5-only. The latter only adds MD5 checksum information.

The default is to add as much information as possible to the RPM. So normally you don't need this parameter.

Specifying a configuration provider which cannot be found during the build, will fail the build.

  • Type: java.lang.String
  • Since: 1.4.0
  • Required: No

<skip>

Disable the mojo altogether.
  • Type: boolean
  • Since: 1.1.1
  • Required: No
  • User Property: rpm.skip
  • Default: false

<skipSigning>

Disable all package signing
  • Type: boolean
  • Required: No
  • User Property: rpm.skipSigning
  • Default: false

<snapshotBuildId>

Set the build id which is used when a snapshot build is active.

If this parameter is left unset or empty then the current time (UTC) in the format yyyyMMddHHmm will be used.

  • Type: java.lang.String
  • Since: 0.6.0
  • Required: No
  • User Property: rpm.snapshotBuildId

<snapshotReleasePrefix>

The prefix of the release if this is a snapshot build, will be suffixed with the snapshot build id

Also see: snapshotBuildId

  • Type: java.lang.String
  • Required: No
  • User Property: rpm.snapshotReleasePrefix
  • Default: 0.

<snapshotVersion>

The version string to be processed in case of a SNAPSHOT build
  • Type: java.lang.String
  • Required: No
  • User Property: rpm.snapshotVersion

<sourcePackage>

Set the name of the source package.
  • Type: java.lang.String
  • Since: 0.11.0
  • Required: No
  • User Property: rpm.sourcePackage

<suggests>

Hint forward dependency.

Also see dependencies and Weak dependencies.

  • Type: java.util.List
  • Required: No

<summary>

The "summary" field of the RPM file

This defaults to the project name

  • Type: java.lang.String
  • Required: No
  • User Property: rpm.summary
  • Default: ${project.name}

<supplements>

Weak backward dependency.

Also see dependencies and Weak dependencies.

  • Type: java.util.List
  • Required: No

<targetDir>

The location to place the RPM file into.
  • Type: java.io.File
  • Since: 0.10.1
  • Required: No
  • User Property: rpm.targetDir
  • Default: ${project.build.directory}

<vendor>

The vendor name of the RPM file

This defaults to the name of the organization in the POM file.

  • Type: java.lang.String
  • Required: No
  • User Property: rpm.vendor

<version>

The version string to be processed in case of a release build
  • Type: java.lang.String
  • Required: No
  • Default: ${project.version}