summaryrefslogtreecommitdiffstats
path: root/meta/classes-global/package_rpm.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes-global/package_rpm.bbclass')
-rw-r--r--meta/classes-global/package_rpm.bbclass31
1 files changed, 18 insertions, 13 deletions
diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass
index 790ccbfaf0..f383ed140e 100644
--- a/meta/classes-global/package_rpm.bbclass
+++ b/meta/classes-global/package_rpm.bbclass
@@ -10,7 +10,7 @@ IMAGE_PKGTYPE ?= "rpm"
10 10
11RPM = "rpm" 11RPM = "rpm"
12RPMBUILD = "rpmbuild" 12RPMBUILD = "rpmbuild"
13RPMBUILD_COMPMODE ?= "${@'w19T%d.zstdio' % int(d.getVar('ZSTD_THREADS'))}" 13RPMBUILD_COMPMODE ?= "${@'w%dT%d.zstdio' % (int(d.getVar('ZSTD_COMPRESSION_LEVEL')), int(d.getVar('ZSTD_THREADS')))}"
14 14
15PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms" 15PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms"
16 16
@@ -38,6 +38,7 @@ def filter_nativesdk_deps(srcname, var):
38 38
39# Construct per file dependencies file 39# Construct per file dependencies file
40def write_rpm_perfiledata(srcname, d): 40def write_rpm_perfiledata(srcname, d):
41 import oe.package
41 workdir = d.getVar('WORKDIR') 42 workdir = d.getVar('WORKDIR')
42 packages = d.getVar('PACKAGES') 43 packages = d.getVar('PACKAGES')
43 pkgd = d.getVar('PKGD') 44 pkgd = d.getVar('PKGD')
@@ -53,12 +54,7 @@ def write_rpm_perfiledata(srcname, d):
53 key = "FILE" + varname + ":" + dfile + ":" + pkg 54 key = "FILE" + varname + ":" + dfile + ":" + pkg
54 deps = filter_nativesdk_deps(srcname, d.getVar(key) or "") 55 deps = filter_nativesdk_deps(srcname, d.getVar(key) or "")
55 depends_dict = bb.utils.explode_dep_versions(deps) 56 depends_dict = bb.utils.explode_dep_versions(deps)
56 file = dfile.replace("@underscore@", "_") 57 file = oe.package.file_reverse_translate(dfile)
57 file = file.replace("@closebrace@", "]")
58 file = file.replace("@openbrace@", "[")
59 file = file.replace("@tab@", "\t")
60 file = file.replace("@space@", " ")
61 file = file.replace("@at@", "@")
62 outfile.write('"' + pkgd + file + '" : "') 58 outfile.write('"' + pkgd + file + '" : "')
63 for dep in depends_dict: 59 for dep in depends_dict:
64 ver = depends_dict[dep] 60 ver = depends_dict[dep]
@@ -108,7 +104,7 @@ python write_specfile () {
108 # append information for logs and patches to %prep 104 # append information for logs and patches to %prep
109 def add_prep(d, spec_files_bottom): 105 def add_prep(d, spec_files_bottom):
110 if d.getVarFlag('ARCHIVER_MODE', 'srpm') == '1' and bb.data.inherits_class('archiver', d): 106 if d.getVarFlag('ARCHIVER_MODE', 'srpm') == '1' and bb.data.inherits_class('archiver', d):
111 spec_files_bottom.append('%%prep -n %s' % d.getVar('PN')) 107 spec_files_bottom.append('%%prep')
112 spec_files_bottom.append('%s' % "echo \"include logs and patches, Please check them in SOURCES\"") 108 spec_files_bottom.append('%s' % "echo \"include logs and patches, Please check them in SOURCES\"")
113 spec_files_bottom.append('') 109 spec_files_bottom.append('')
114 110
@@ -205,14 +201,22 @@ python write_specfile () {
205 try: 201 try:
206 owner = pwd.getpwuid(stat_f.st_uid).pw_name 202 owner = pwd.getpwuid(stat_f.st_uid).pw_name
207 except Exception as e: 203 except Exception as e:
208 bb.error("Content of /etc/passwd in sysroot:\n{}".format( 204 filename = d.getVar('RECIPE_SYSROOT') + '/etc/passwd'
209 open(d.getVar("RECIPE_SYSROOT") +"/etc/passwd").read())) 205 if os.path.exists(filename):
206 bb.error("Content of /etc/passwd in sysroot:\n{}".format(
207 open(filename).read()))
208 else:
209 bb.error("File {} doesn't exist in sysroot!".format(filename))
210 raise e 210 raise e
211 try: 211 try:
212 group = grp.getgrgid(stat_f.st_gid).gr_name 212 group = grp.getgrgid(stat_f.st_gid).gr_name
213 except Exception as e: 213 except Exception as e:
214 bb.error("Content of /etc/group in sysroot:\n{}".format( 214 filename = d.getVar("RECIPE_SYSROOT") +"/etc/group"
215 open(d.getVar("RECIPE_SYSROOT") +"/etc/group").read())) 215 if os.path.exists(filename):
216 bb.error("Content of /etc/group in sysroot:\n{}".format(
217 open(filename).read()))
218 else:
219 bb.error("File {} doesn't exists in sysroot!".format(filename))
216 raise e 220 raise e
217 return "%attr({:o},{},{}) ".format(mode, owner, group) 221 return "%attr({:o},{},{}) ".format(mode, owner, group)
218 222
@@ -692,9 +696,10 @@ python do_package_rpm () {
692 cmd = cmd + " --define '_use_internal_dependency_generator 0'" 696 cmd = cmd + " --define '_use_internal_dependency_generator 0'"
693 cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'" 697 cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
694 cmd = cmd + " --define '_build_id_links none'" 698 cmd = cmd + " --define '_build_id_links none'"
699 cmd = cmd + " --define '_smp_ncpus_max 4'"
695 cmd = cmd + " --define '_source_payload %s'" % rpmbuild_compmode 700 cmd = cmd + " --define '_source_payload %s'" % rpmbuild_compmode
696 cmd = cmd + " --define '_binary_payload %s'" % rpmbuild_compmode 701 cmd = cmd + " --define '_binary_payload %s'" % rpmbuild_compmode
697 cmd = cmd + " --define 'clamp_mtime_to_source_date_epoch 1'" 702 cmd = cmd + " --define 'build_mtime_policy clamp_to_source_date_epoch'"
698 cmd = cmd + " --define 'use_source_date_epoch_as_buildtime 1'" 703 cmd = cmd + " --define 'use_source_date_epoch_as_buildtime 1'"
699 cmd = cmd + " --define '_buildhost reproducible'" 704 cmd = cmd + " --define '_buildhost reproducible'"
700 cmd = cmd + " --define '__font_provides %{nil}'" 705 cmd = cmd + " --define '__font_provides %{nil}'"