+
# We need a simple way to remove the MLPREFIX from the package name,
# and dependency information...
def strip_multilib(name, d):
@@ -533,6 +547,13 @@ python write_specfile () {
srcmaintainer = d.getVar('MAINTAINER', True)
srchomepage = d.getVar('HOMEPAGE', True)
srcdescription = d.getVar('DESCRIPTION', True) or "."
+
+ bb.build.exec_func('not_srpm', d)
+ if not d.getVar('NOTSRPM', True) and d.getVar('ARCHIVE_TYPE', True)
== 'SRPM':
+ tpkg_name = d.getVar('PF',True)
+ srctargz = tpkg_name + ".tar.gz"
+ logtargz = "log.tar.gz"
+
srcdepends = strip_multilib(d.getVar('DEPENDS', True), d)
srcrdepends = []
@@ -557,6 +578,11 @@ python write_specfile () {
spec_files_top = []
spec_files_bottom = []
+ if not d.getVar('NOTSRPM', True) and d.getVar('ARCHIVE_TYPE', True)
== 'SRPM':
+ srcpatches = []
+ bb.build.exec_func('get_patches', d)
+ srcpatches = d.getVar('PLIST',True)
+
for pkg in packages.split():
localdata = bb.data.createCopy(d)
@@ -637,7 +663,7 @@ python write_specfile () {
else:
bb.note("Creating EMPTY RPM Package for %s" % splitname)
spec_files_top.append('')
-
+
bb.utils.unlockfile(lf)
continue
@@ -714,7 +740,7 @@ python write_specfile () {
spec_scriptlets_bottom.append('# %s - %s' % (splitname, script))
spec_scriptlets_bottom.append(scriptvar)
spec_scriptlets_bottom.append('')
-
+
# Now process files
file_list = []
walk_files(root, file_list, conffiles)
@@ -732,7 +758,8 @@ python write_specfile () {
del localdata
bb.utils.unlockfile(lf)
-
+
+ add_prep(spec_files_bottom)
spec_preamble_top.append('Summary: %s' % srcsummary)
spec_preamble_top.append('Name: %s' % srcname)
spec_preamble_top.append('Version: %s' % srcversion)
@@ -743,6 +770,11 @@ python write_specfile () {
spec_preamble_top.append('Group: %s' % srcsection)
spec_preamble_top.append('Packager: %s' % srcmaintainer)
spec_preamble_top.append('URL: %s' % srchomepage)
+
+ if not d.getVar('NOTSRPM', True) and d.getVar('ARCHIVE_TYPE', True)
== 'SRPM':
+ spec_preamble_top.append('Source: %s' % srctargz)
+ spec_preamble_top.append('Source1: %s' % logtargz)
+
# Replaces == Obsoletes&& Provides
if srcrreplaces and srcrreplaces.strip() != "":
@@ -764,6 +796,11 @@ python write_specfile () {
print_deps(srcrsuggests, "Recommends", spec_preamble_top, d)
print_deps(srcrprovides, "Provides", spec_preamble_top, d)
print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d)
+ if not d.getVar('NOTSRPM', True) and d.getVar('ARCHIVE_TYPE', True)
== 'SRPM':
+ numid = 1
+ for patch in srcpatches:
+ print_deps(patch, "Patch" + str(numid), spec_preamble_top, d)
+ numid += 1
# conflicts can not be in a provide! We will need to filter it.
if srcrconflicts:
@@ -817,12 +854,6 @@ python write_specfile () {
except OSError:
raise bb.build.FuncFailed("unable to open spec file for writing.")
- # RPMSPEC_PREAMBLE is a way to add arbitrary text to the top
- # of the generated spec file
- external_preamble = d.getVar("RPMSPEC_PREAMBLE", True)
- if external_preamble:
- specfile.write(external_preamble + "\n")
-
for line in spec_preamble_top:
specfile.write(line + "\n")
@@ -947,9 +978,14 @@ python do_package_rpm () {
d.setVar('PACKAGE_ARCH_EXTEND', package_arch)
pkgwritedir =
bb.data.expand('${PKGWRITEDIRRPM}/${PACKAGE_ARCH_EXTEND}', d)
pkgarch =
bb.data.expand('${PACKAGE_ARCH_EXTEND}${TARGET_VENDOR}-${TARGET_OS}', d)
- magicfile =
bb.data.expand('${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc',
d)
+ magicfile =
bb.data.expand('${STAGING_DIR_NATIVE}/usr/share/misc/magic.mgc', d)
bb.mkdirhier(pkgwritedir)
os.chmod(pkgwritedir, 0755)
+ if not d.getVar('NOTSRPM', True) and d.getVar('ARCHIVE_TYPE', True):
+ pkgwritesrpmdir =
bb.data.expand('${PKGWRITEDIRSRPM}/${PACKAGE_ARCH_EXTEND}', d)
+ bb.mkdirhier(pkgwritesrpmdir)
+ os.chmod(pkgwritesrpmdir, 0755)
+
cmd = rpmbuild
cmd = cmd + " --nodeps --short-circuit --target " + pkgarch + "
--buildroot " + pkgd
@@ -962,8 +998,17 @@ python do_package_rpm () {
cmd = cmd + " --define 'debug_package %{nil}'"
cmd = cmd + " --define '_rpmfc_magic_path " + magicfile + "'"
cmd = cmd + " --define '_tmppath " + workdir + "'"
+ if not d.getVar('NOTSRPM', True) and d.getVar('ARCHIVE_TYPE', True)
== 'SRPM':
+ cmdsrpm = cmd + " --define '_sourcedir " + workdir + "' --define
'_srcrpmdir " + pkgwritesrpmdir + "'"
+ cmdsrpm = cmdsrpm + " -bs " + outspecfile
cmd = cmd + " -bb " + outspecfile
+ # Build the source rpm package !
+ if not d.getVar('NOTSRPM', True) and d.getVar('ARCHIVE_TYPE', True)
== 'SRPM':
+ d.setVar('SBUILDSPEC', cmdsrpm + "\n")
+ d.setVarFlag('SBUILDSPEC', 'func', '1')
+ bb.build.exec_func('SBUILDSPEC', d)
+
# Build the rpm package!
d.setVar('BUILDSPEC', cmd + "\n")
d.setVarFlag('BUILDSPEC', 'func', '1')