diff options
Diffstat (limited to 'meta/recipes-devtools/rpm/rpm_5.4+cvs.bb')
-rw-r--r-- | meta/recipes-devtools/rpm/rpm_5.4+cvs.bb | 225 |
1 files changed, 175 insertions, 50 deletions
diff --git a/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb b/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb index 660e9df272..62526fde5f 100644 --- a/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb +++ b/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb | |||
@@ -34,24 +34,22 @@ DESCRIPTION_perl-modules-rpm = "The perl-modules-rpm package contains a module t | |||
34 | written in the Perl programming language to use the interface \ | 34 | written in the Perl programming language to use the interface \ |
35 | supplied by the RPM Package Manager libraries." | 35 | supplied by the RPM Package Manager libraries." |
36 | 36 | ||
37 | SUMMARY_perl-module-rpm-dev = "Development components for perl bindings" | ||
38 | DESCRIPTION_perl-modules-rpm-dev = "Development items such as man pages for use with the Perl \ | ||
39 | language bindings." | ||
40 | |||
41 | HOMEPAGE = "http://rpm5.org/" | 37 | HOMEPAGE = "http://rpm5.org/" |
42 | LICENSE = "LGPLv2.1" | 38 | LICENSE = "LGPLv2.1 & Apache-2.0" |
43 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" | 39 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" |
40 | LIC_FILES_CHKSUM += "file://rpmio/mongo.c;begin=5;end=18;md5=d8327ba2c71664c059143e6d333b8901" | ||
44 | 41 | ||
45 | DEPENDS = "libpcre attr acl popt ossp-uuid file byacc-native" | 42 | # We must have gettext-native, we need gettextize, which may not be provided |
43 | DEPENDS = "libpcre attr acl ossp-uuid file byacc-native gettext-native" | ||
46 | DEPENDS_append_class-native = " file-replacement-native" | 44 | DEPENDS_append_class-native = " file-replacement-native" |
47 | 45 | ||
48 | S = "${WORKDIR}/rpm" | ||
49 | |||
50 | # Apply various fixups that are unique to the CVS environment | 46 | # Apply various fixups that are unique to the CVS environment |
51 | do_fixup_unpack () { | 47 | do_fixup_unpack () { |
52 | ln -sf ../syck ${S}/syck || : | 48 | # 'ln' isn't reliable, and 'mv' could break later builds |
53 | ln -sf ../lua ${S}/lua || : | 49 | rm -rf ${S}/syck ; cp -r ${WORKDIR}/syck ${S}/. |
54 | ln ${S}/rpmqv.c ${S}/rpmqv.cc || : | 50 | rm -rf ${S}/lua ; cp -r ${WORKDIR}/lua ${S}/. |
51 | rm -rf ${S}/popt ; cp -r ${WORKDIR}/popt ${S}/. | ||
52 | rm -rf ${S}/beecrypt ; cp -r ${WORKDIR}/beecrypt ${S}/. | ||
55 | } | 53 | } |
56 | 54 | ||
57 | addtask fixup_unpack after do_unpack before do_patch | 55 | addtask fixup_unpack after do_unpack before do_patch |
@@ -60,45 +58,34 @@ addtask fixup_unpack after do_unpack before do_patch | |||
60 | # community work in progress. | 58 | # community work in progress. |
61 | DEFAULT_PREFERENCE = "-1" | 59 | DEFAULT_PREFERENCE = "-1" |
62 | 60 | ||
61 | S = "${WORKDIR}/rpm" | ||
62 | |||
63 | # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed | 63 | # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed |
64 | # in order to extract the distribution SRPM into a format we can extract... | 64 | # in order to extract the distribution SRPM into a format we can extract... |
65 | SRC_URI = "cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=rpm \ | 65 | SRC_URI = "cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=rpm \ |
66 | cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=syck \ | 66 | cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=syck \ |
67 | cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=lua \ | 67 | cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=lua \ |
68 | file://rpm-log-auto-rm.patch \ | 68 | cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=popt \ |
69 | file://rpm-db-reduce.patch \ | 69 | cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=beecrypt \ |
70 | file://perfile_rpmdeps.sh \ | 70 | file://perfile_rpmdeps.sh \ |
71 | file://rpm-autogen.patch \ | 71 | file://pythondeps.sh \ |
72 | file://rpm-libsql-fix.patch \ | 72 | " |
73 | |||
74 | # Bug fixes | ||
75 | SRC_URI += " \ | ||
73 | file://header-include-fix.patch \ | 76 | file://header-include-fix.patch \ |
77 | file://rpm-libsql-fix.patch \ | ||
74 | file://rpm-platform.patch \ | 78 | file://rpm-platform.patch \ |
75 | file://rpm-showrc.patch \ | 79 | file://rpm-platform2.patch \ |
76 | file://rpm-tools-mtree-LDFLAGS.patch \ | 80 | file://rpm-tools-mtree-LDFLAGS.patch \ |
77 | file://rpm-fileclass.patch \ | ||
78 | file://rpm-canonarch.patch \ | 81 | file://rpm-canonarch.patch \ |
79 | file://rpm-no-loopmsg.patch \ | 82 | file://rpm-no-loopmsg.patch \ |
80 | file://rpm-scriptletexechelper.patch \ | ||
81 | file://pythondeps.sh \ | ||
82 | file://rpmdeps-oecore.patch \ | ||
83 | file://rpm-resolvedep.patch \ | 83 | file://rpm-resolvedep.patch \ |
84 | file://rpm-no-perl-urpm.patch \ | ||
85 | file://rpm-macros.patch \ | ||
86 | file://rpm-lua.patch \ | ||
87 | file://rpm-ossp-uuid.patch \ | ||
88 | file://rpm-packageorigin.patch \ | 84 | file://rpm-packageorigin.patch \ |
89 | file://rpm-pkgconfigdeps.patch \ | ||
90 | file://uclibc-support.patch \ | 85 | file://uclibc-support.patch \ |
91 | file://rpmatch.patch \ | 86 | file://rpmatch.patch \ |
92 | file://fstack-protector-configure-check.patch \ | ||
93 | file://dbconvert.patch \ | ||
94 | file://rpm-uuid-include.patch \ | ||
95 | file://makefile-am-exec-hook.patch \ | 87 | file://makefile-am-exec-hook.patch \ |
96 | file://rpm-db_buffer_small.patch \ | ||
97 | file://rpm-py-init.patch \ | ||
98 | file://python-rpm-rpmsense.patch \ | 88 | file://python-rpm-rpmsense.patch \ |
99 | file://rpm-reloc-macros.patch \ | ||
100 | file://rpm-platform2.patch \ | ||
101 | file://rpm-remove-sykcparse-decl.patch \ | ||
102 | file://debugedit-segv.patch \ | 89 | file://debugedit-segv.patch \ |
103 | file://debugedit-valid-file-to-fix-segment-fault.patch \ | 90 | file://debugedit-valid-file-to-fix-segment-fault.patch \ |
104 | file://rpm-platform-file-fix.patch \ | 91 | file://rpm-platform-file-fix.patch \ |
@@ -107,13 +94,61 @@ SRC_URI = "cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=rpm \ | |||
107 | file://rpm-hardlink-segfault-fix.patch \ | 94 | file://rpm-hardlink-segfault-fix.patch \ |
108 | file://rpm-payload-use-hashed-inode.patch \ | 95 | file://rpm-payload-use-hashed-inode.patch \ |
109 | file://rpm-fix-logio-cp.patch \ | 96 | file://rpm-fix-logio-cp.patch \ |
97 | file://0001-using-poptParseArgvString-to-parse-the-_gpg_check_pa.patch \ | ||
98 | file://rpm-opendb-before-verifyscript-to-avoid-null-point.patch \ | ||
99 | file://0001-define-EM_AARCH64.patch \ | ||
100 | file://rpm-rpmfc.c-fix-for-N32-MIPS64.patch \ | ||
101 | file://rpm-lib-transaction.c-fix-file-conflicts-for-mips64-N32.patch \ | ||
102 | file://rpm-mongodb-sasl.patch \ | ||
103 | file://rpm-fix-parseEmbedded.patch \ | ||
104 | file://rpm-rpmio-headers.patch \ | ||
105 | file://rpm-python-restore-origin.patch \ | ||
106 | file://rpm-keccak-sse-intrin.patch \ | ||
107 | file://rpm-atomic-ops.patch \ | ||
108 | file://rpm-gnu-atomic.patch \ | ||
109 | file://rpm-tagname-type.patch \ | ||
110 | file://rpm-python-tagname.patch \ | ||
111 | file://rpm-python-AddErase.patch \ | ||
112 | file://rpm-rpmpgp-popt.patch \ | ||
113 | " | ||
114 | |||
115 | # OE specific changes | ||
116 | SRC_URI += " \ | ||
117 | file://rpm-log-auto-rm.patch \ | ||
118 | file://rpm-db-reduce.patch \ | ||
119 | file://rpm-autogen.patch \ | ||
120 | file://rpm-showrc.patch \ | ||
121 | file://rpm-fileclass.patch \ | ||
122 | file://rpm-scriptletexechelper.patch \ | ||
123 | file://rpmdeps-oecore.patch \ | ||
124 | file://rpm-no-perl-urpm.patch \ | ||
125 | file://rpm-macros.patch \ | ||
126 | file://rpm-lua.patch \ | ||
127 | file://rpm-ossp-uuid.patch \ | ||
128 | file://rpm-uuid-include.patch \ | ||
129 | file://rpm-pkgconfigdeps.patch \ | ||
130 | file://no-ldflags-in-pkgconfig.patch \ | ||
131 | file://dbconvert.patch \ | ||
132 | file://rpm-db_buffer_small.patch \ | ||
133 | file://rpm-py-init.patch \ | ||
134 | file://rpm-reloc-macros.patch \ | ||
110 | file://rpm-db5-or-db6.patch \ | 135 | file://rpm-db5-or-db6.patch \ |
111 | file://rpm-rpmpgp-fix.patch \ | 136 | file://rpm-db60.patch \ |
112 | file://rpm-disable-Wno-override-init.patch \ | 137 | file://rpmqv_cc_b_gone.patch \ |
113 | file://rpm-realpath.patch \ | 138 | file://rpm-realpath.patch \ |
114 | file://rpm-rpmfc.c-fix-for-N32-MIPS64.patch \ | 139 | file://rpm-check-rootpath-reasonableness.patch \ |
115 | " | 140 | file://rpm-macros.in-disable-external-key-server.patch \ |
116 | 141 | file://configure.ac-check-for-both-gpg2-and-gpg.patch \ | |
142 | file://rpm-disable-auto-stack-protector.patch \ | ||
143 | file://popt-disable-auto-stack-protector.patch \ | ||
144 | file://rpm-syck-fix-gram.patch \ | ||
145 | file://rpm-rpmdb-grammar.patch \ | ||
146 | file://rpm-disable-blaketest.patch \ | ||
147 | " | ||
148 | |||
149 | SRC_URI_append_libc-musl = "\ | ||
150 | file://0001-rpm-Fix-build-on-musl.patch \ | ||
151 | " | ||
117 | # Uncomment the following line to enable platform score debugging | 152 | # Uncomment the following line to enable platform score debugging |
118 | # This is useful when identifying issues with Smart being unable | 153 | # This is useful when identifying issues with Smart being unable |
119 | # to process certain package feeds. | 154 | # to process certain package feeds. |
@@ -123,16 +158,25 @@ inherit autotools gettext | |||
123 | 158 | ||
124 | acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java" | 159 | acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java" |
125 | 160 | ||
161 | # The local distribution macro directory | ||
162 | distromacrodir = "${libdir}/rpm/poky" | ||
163 | |||
126 | # Specify the default rpm macros in terms of adjustable variables | 164 | # Specify the default rpm macros in terms of adjustable variables |
127 | rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros" | 165 | rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros" |
128 | rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:~/.oerpmmacros" | 166 | rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros" |
129 | rpm_macros_class-nativesdk = "%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:~/.oerpmmacros" | 167 | rpm_macros_class-nativesdk = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros" |
130 | 168 | ||
131 | # sqlite lua tcl augeas nss gcrypt neon xz xar keyutils perl selinux | 169 | # sqlite lua tcl augeas nss gcrypt neon xz xar keyutils perl selinux |
132 | 170 | ||
133 | # Note: perl and sqlite w/o db specified does not currently work. | 171 | # Note: perl and sqlite w/o db specified does not currently work. |
134 | # tcl, augeas, nss, gcrypt, xar and keyutils support is untested. | 172 | # tcl, augeas, nss, gcrypt, xar and keyutils support is untested. |
135 | PACKAGECONFIG ??= "db bzip2 zlib beecrypt openssl libelf python" | 173 | PACKAGECONFIG ??= "db bzip2 zlib popt openssl libelf python" |
174 | |||
175 | # Note: switching to internal popt may not work, as it will generate | ||
176 | # a shared library which will intentionally not be packaged. | ||
177 | # | ||
178 | # If you intend to use the internal version, additional work may be required. | ||
179 | PACKAGECONFIG[popt] = "--with-popt=external,--with-popt=internal,popt," | ||
136 | 180 | ||
137 | PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2," | 181 | PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2," |
138 | PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz," | 182 | PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz," |
@@ -193,7 +237,6 @@ EXTRA_OECONF += "--verbose \ | |||
193 | --with-uuid \ | 237 | --with-uuid \ |
194 | --with-attr \ | 238 | --with-attr \ |
195 | --with-acl \ | 239 | --with-acl \ |
196 | --with-popt=external \ | ||
197 | --with-pthreads \ | 240 | --with-pthreads \ |
198 | --without-cudf \ | 241 | --without-cudf \ |
199 | --without-ficl \ | 242 | --without-ficl \ |
@@ -205,6 +248,7 @@ EXTRA_OECONF += "--verbose \ | |||
205 | --without-gpsee \ | 248 | --without-gpsee \ |
206 | --without-ruby \ | 249 | --without-ruby \ |
207 | --without-squirrel \ | 250 | --without-squirrel \ |
251 | --without-sasl2 \ | ||
208 | --with-build-extlibdep \ | 252 | --with-build-extlibdep \ |
209 | --with-build-maxextlibdep \ | 253 | --with-build-maxextlibdep \ |
210 | --without-valgrind \ | 254 | --without-valgrind \ |
@@ -224,7 +268,7 @@ CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE" | |||
224 | 268 | ||
225 | LDFLAGS_append_libc-uclibc = "-lrt -lpthread" | 269 | LDFLAGS_append_libc-uclibc = "-lrt -lpthread" |
226 | 270 | ||
227 | PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-staticdev python-rpm-dev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale" | 271 | PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm perl-module-rpm ${PN}-locale" |
228 | 272 | ||
229 | SOLIBS = "5.4.so" | 273 | SOLIBS = "5.4.so" |
230 | 274 | ||
@@ -342,24 +386,21 @@ FILES_${PN}-build = "${prefix}/src/rpm \ | |||
342 | ${libdir}/rpm/vpkg-provides.sh \ | 386 | ${libdir}/rpm/vpkg-provides.sh \ |
343 | ${libdir}/rpm/vpkg-provides2.sh \ | 387 | ${libdir}/rpm/vpkg-provides2.sh \ |
344 | ${libdir}/rpm/perfile_rpmdeps.sh \ | 388 | ${libdir}/rpm/perfile_rpmdeps.sh \ |
389 | ${distromacrodir} \ | ||
345 | " | 390 | " |
346 | RDEPENDS_${PN} = "base-files run-postinsts" | 391 | RDEPENDS_${PN} = "base-files run-postinsts" |
347 | RDEPENDS_${PN}_class-native = "" | 392 | RDEPENDS_${PN}_class-native = "" |
348 | RDEPENDS_${PN}_class-nativesdk = "" | 393 | RDEPENDS_${PN}_class-nativesdk = "" |
349 | RDEPENDS_${PN}-build = "file bash perl" | 394 | RDEPENDS_${PN}-build = "file bash perl" |
350 | 395 | ||
351 | RDEPENDS_python-rpm = "${PN}" | 396 | RDEPENDS_python-rpm = "${PN} python" |
352 | 397 | ||
353 | FILES_python-rpm-dev = "${libdir}/python*/site-packages/rpm/*.la" | ||
354 | FILES_python-rpm-staticdev = "${libdir}/python*/site-packages/rpm/*.a" | ||
355 | FILES_python-rpm = "${libdir}/python*/site-packages/rpm" | 398 | FILES_python-rpm = "${libdir}/python*/site-packages/rpm" |
399 | PROVIDES += "python-rpm" | ||
356 | 400 | ||
357 | FILES_perl-module-rpm = "${libdir}/perl/*/* \ | 401 | FILES_perl-module-rpm = "${libdir}/perl/*/* \ |
358 | " | 402 | " |
359 | 403 | ||
360 | FILES_perl-module-rpm-dev = "${prefix}/share/man/man3/RPM* \ | ||
361 | " | ||
362 | |||
363 | RDEPENDS_${PN}-dev += "bash" | 404 | RDEPENDS_${PN}-dev += "bash" |
364 | 405 | ||
365 | FILES_${PN}-dev = "${includedir}/rpm \ | 406 | FILES_${PN}-dev = "${includedir}/rpm \ |
@@ -388,6 +429,7 @@ FILES_${PN}-staticdev = " \ | |||
388 | ${libdir}/librpmmisc.a \ | 429 | ${libdir}/librpmmisc.a \ |
389 | ${libdir}/librpmbuild.a \ | 430 | ${libdir}/librpmbuild.a \ |
390 | ${libdir}/rpm/lib/liblua.a \ | 431 | ${libdir}/rpm/lib/liblua.a \ |
432 | ${libdir}/python*/site-packages/rpm/*.a \ | ||
391 | " | 433 | " |
392 | 434 | ||
393 | do_configure() { | 435 | do_configure() { |
@@ -408,12 +450,18 @@ do_configure() { | |||
408 | } | 450 | } |
409 | 451 | ||
410 | do_install_append() { | 452 | do_install_append() { |
453 | # Preserve the previous default of DSA self-signed pkgs | ||
454 | sed -i -e 's,%_build_sign.*,%_build_sign DSA,' ${D}/${libdir}/rpm/macros.rpmbuild | ||
455 | |||
411 | sed -i -e 's,%__scriptlet_requires,#%%__scriptlet_requires,' ${D}/${libdir}/rpm/macros | 456 | sed -i -e 's,%__scriptlet_requires,#%%__scriptlet_requires,' ${D}/${libdir}/rpm/macros |
412 | sed -i -e 's,%__perl_provides,#%%__perl_provides,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/* | 457 | sed -i -e 's,%__perl_provides,#%%__perl_provides,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/* |
413 | sed -i -e 's,%__perl_requires,#%%__perl_requires,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/* | 458 | sed -i -e 's,%__perl_requires,#%%__perl_requires,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/* |
414 | sed -i -e 's,%_repackage_all_erasures[^_].*,%_repackage_all_erasures 0,' ${D}/${libdir}/rpm/macros | 459 | sed -i -e 's,%_repackage_all_erasures[^_].*,%_repackage_all_erasures 0,' ${D}/${libdir}/rpm/macros |
415 | sed -i -e 's,^#%_openall_before_chroot.*,%_openall_before_chroot\t1,' ${D}/${libdir}/rpm/macros | 460 | sed -i -e 's,^#%_openall_before_chroot.*,%_openall_before_chroot\t1,' ${D}/${libdir}/rpm/macros |
416 | 461 | ||
462 | # Enable MIPS64 N32 transactions. (This is a no-op on non-MIPS targets.) | ||
463 | sed -i -e 's,%_transaction_color[^_].*,%_transaction_color 7,' ${D}/${libdir}/rpm/macros | ||
464 | |||
417 | # Enable Debian style arbitrary tags... | 465 | # Enable Debian style arbitrary tags... |
418 | sed -i -e 's,%_arbitrary_tags[^_].*,%_arbitrary_tags %{_arbitrary_tags_debian},' ${D}/${libdir}/rpm/macros | 466 | sed -i -e 's,%_arbitrary_tags[^_].*,%_arbitrary_tags %{_arbitrary_tags_debian},' ${D}/${libdir}/rpm/macros |
419 | 467 | ||
@@ -485,6 +533,83 @@ do_install_append() { | |||
485 | 533 | ||
486 | } | 534 | } |
487 | 535 | ||
536 | do_install_append_class-target() { | ||
537 | # Create and install distribution specific macros | ||
538 | mkdir -p ${D}/${distromacrodir} | ||
539 | cat << EOF > ${D}/${distromacrodir}/macros | ||
540 | %_defaultdocdir ${docdir} | ||
541 | |||
542 | %_prefix ${prefix} | ||
543 | %_exec_prefix ${exec_prefix} | ||
544 | %_datarootdir ${datadir} | ||
545 | %_bindir ${bindir} | ||
546 | %_sbindir ${sbindir} | ||
547 | %_libexecdir %{_libdir}/%{name} | ||
548 | %_datadir ${datadir} | ||
549 | %_sysconfdir ${sysconfdir} | ||
550 | %_sharedstatedir ${sharedstatedir} | ||
551 | %_localstatedir ${localstatedir} | ||
552 | %_lib lib | ||
553 | %_libdir %{_exec_prefix}/%{_lib} | ||
554 | %_includedir ${includedir} | ||
555 | %_oldincludedir ${oldincludedir} | ||
556 | %_infodir ${infodir} | ||
557 | %_mandir ${mandir} | ||
558 | %_localedir %{_libdir}/locale | ||
559 | EOF | ||
560 | |||
561 | # Create and install multilib specific macros | ||
562 | ${@multilib_rpmmacros(d)} | ||
563 | } | ||
564 | |||
565 | def multilib_rpmmacros(d): | ||
566 | localdata = d.createCopy() | ||
567 | # We need to clear the TOOLCHAIN_OPTIONS (--sysroot) | ||
568 | localdata.delVar('TOOLCHAIN_OPTIONS') | ||
569 | |||
570 | # Set 'localdata' values to be consistent with 'd' values. | ||
571 | localdata.setVar('distromacrodir', d.getVar('distromacrodir', True)) | ||
572 | localdata.setVar('WORKDIR', d.getVar('WORKDIR', True)) | ||
573 | |||
574 | ret = gen_arch_macro(localdata) | ||
575 | |||
576 | variants = d.getVar("MULTILIB_VARIANTS", True) or "" | ||
577 | for item in variants.split(): | ||
578 | # Load overrides from 'd' to avoid having to reset the value... | ||
579 | localdata = d.createCopy() | ||
580 | overrides = d.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item | ||
581 | localdata.setVar("OVERRIDES", overrides) | ||
582 | localdata.setVar("MLPREFIX", item + "-") | ||
583 | bb.data.update_data(localdata) | ||
584 | ret += gen_arch_macro(localdata) | ||
585 | return ret | ||
586 | |||
587 | def gen_arch_macro(d): | ||
588 | # Generate shell script to produce the file as part of do_install | ||
589 | val = "mkdir -p ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}\n" | ||
590 | val += "cat << EOF > ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}/macros\n" | ||
591 | val += "%_lib ${baselib}\n" | ||
592 | val += "%_libdir ${libdir}\n" | ||
593 | val += "%_localedir ${localedir}\n" | ||
594 | val += "\n" | ||
595 | val += "# Toolchain configuration\n" | ||
596 | val += "%TOOLCHAIN_OPTIONS %{nil}\n" | ||
597 | val += "%__ar ${@d.getVar('AR', True).replace('$','%')}\n" | ||
598 | val += "%__as ${@d.getVar('AS', True).replace('$','%')}\n" | ||
599 | val += "%__cc ${@d.getVar('CC', True).replace('$','%')}\n" | ||
600 | val += "%__cpp ${@d.getVar('CPP', True).replace('$','%')}\n" | ||
601 | val += "%__cxx ${@d.getVar('CXX', True).replace('$','%')}\n" | ||
602 | val += "%__ld ${@d.getVar('LD', True).replace('$','%')}\n" | ||
603 | val += "%__nm ${@d.getVar('NM', True).replace('$','%')}\n" | ||
604 | val += "%__objcopy ${@d.getVar('OBJCOPY', True).replace('$','%')}\n" | ||
605 | val += "%__objdump ${@d.getVar('OBJDUMP', True).replace('$','%')}\n" | ||
606 | val += "%__ranlib ${@d.getVar('RANLIB', True).replace('$','%')}\n" | ||
607 | val += "%__strip ${@d.getVar('STRIP', True).replace('$','%')}\n" | ||
608 | val += "EOF\n" | ||
609 | val += "\n" | ||
610 | return d.expand(val) | ||
611 | |||
612 | |||
488 | add_native_wrapper() { | 613 | add_native_wrapper() { |
489 | create_wrapper ${D}/${bindir}/rpm \ | 614 | create_wrapper ${D}/${bindir}/rpm \ |
490 | RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \ | 615 | RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \ |