package_rpm: correctly handle LICENSE_${PN}

RPM spec files don't distinguish between spec-level license and the primary
package license, so always output the License for every package (defaulting to
the recipe-wide license) and use LICENSE_${PN} if set for the primary package.

As the primary use of package_rpm is to generate built packages, this fixes the
license fields in the generated packages.

[ YOCTO #12057 ]

(From OE-Core rev: 8c333e592fa7a3a887c792ac14e5cde2141b5d35)

(From OE-Core rev: 42e0de37d18f072dc5dcf5dc45cb441e4c2110d8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2018-01-22 15:41:09 +00:00
committed by Richard Purdie
parent 683d44656e
commit c6459ca494

View File

@@ -382,6 +382,12 @@ python write_specfile () {
# Gather special src/first package data
if srcname == splitname:
archiving = d.getVarFlag('ARCHIVER_MODE', 'srpm') == '1' and \
bb.data.inherits_class('archiver', d)
if archiving and srclicense != splitlicense:
bb.warn("The SRPM produced may not have the correct overall source license in the License tag. This is due to the LICENSE for the primary package and SRPM conflicting.")
srclicense = splitlicense
srcrdepends = splitrdepends
srcrrecommends = splitrrecommends
srcrsuggests = splitrsuggests
@@ -421,8 +427,7 @@ python write_specfile () {
spec_preamble_bottom.append('Release: %s' % splitrelease)
if srcepoch != splitepoch:
spec_preamble_bottom.append('Epoch: %s' % splitepoch)
if srclicense != splitlicense:
spec_preamble_bottom.append('License: %s' % splitlicense)
spec_preamble_bottom.append('License: %s' % splitlicense)
spec_preamble_bottom.append('Group: %s' % splitsection)
if srccustomtagschunk != splitcustomtagschunk: