summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/rpm/rpm_5.4.14.bb81
1 files changed, 81 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.14.bb b/meta/recipes-devtools/rpm/rpm_5.4.14.bb
index f338fd6706..24aaf655df 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.14.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.14.bb
@@ -119,6 +119,9 @@ inherit autotools gettext
119 119
120acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java" 120acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java"
121 121
122# The local distribution macro directory
123distromacrodir = "${libdir}/rpm/poky"
124
122# Specify the default rpm macros in terms of adjustable variables 125# Specify the default rpm macros in terms of adjustable variables
123rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros" 126rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros"
124rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros" 127rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros"
@@ -338,6 +341,7 @@ FILES_${PN}-build = "${prefix}/src/rpm \
338 ${libdir}/rpm/vpkg-provides.sh \ 341 ${libdir}/rpm/vpkg-provides.sh \
339 ${libdir}/rpm/vpkg-provides2.sh \ 342 ${libdir}/rpm/vpkg-provides2.sh \
340 ${libdir}/rpm/perfile_rpmdeps.sh \ 343 ${libdir}/rpm/perfile_rpmdeps.sh \
344 ${distromacrodir} \
341 " 345 "
342RDEPENDS_${PN} = "base-files run-postinsts" 346RDEPENDS_${PN} = "base-files run-postinsts"
343RDEPENDS_${PN}_class-native = "" 347RDEPENDS_${PN}_class-native = ""
@@ -481,6 +485,83 @@ do_install_append() {
481 485
482} 486}
483 487
488do_install_append_class-target() {
489 # Create and install distribution specific macros
490 mkdir -p ${D}/${distromacrodir}
491 cat << EOF > ${D}/${distromacrodir}/macros
492%_defaultdocdir ${docdir}
493
494%_prefix ${prefix}
495%_exec_prefix ${exec_prefix}
496%_datarootdir ${datadir}
497%_bindir ${bindir}
498%_sbindir ${sbindir}
499%_libexecdir %{_libdir}/%{name}
500%_datadir ${datadir}
501%_sysconfdir ${sysconfdir}
502%_sharedstatedir ${sharedstatedir}
503%_localstatedir ${localstatedir}
504%_lib lib
505%_libdir %{_exec_prefix}/%{_lib}
506%_includedir ${includedir}
507%_oldincludedir ${oldincludedir}
508%_infodir ${infodir}
509%_mandir ${mandir}
510%_localedir %{_libdir}/locale
511EOF
512
513 # Create and install multilib specific macros
514 ${@multilib_rpmmacros(d)}
515}
516
517def multilib_rpmmacros(d):
518 localdata = d.createCopy()
519 # We need to clear the TOOLCHAIN_OPTIONS (--sysroot)
520 localdata.delVar('TOOLCHAIN_OPTIONS')
521
522 # Set 'localdata' values to be consistent with 'd' values.
523 localdata.setVar('distromacrodir', d.getVar('distromacrodir', True))
524 localdata.setVar('WORKDIR', d.getVar('WORKDIR', True))
525
526 ret = gen_arch_macro(localdata)
527
528 variants = d.getVar("MULTILIB_VARIANTS", True) or ""
529 for item in variants.split():
530 # Load overrides from 'd' to avoid having to reset the value...
531 localdata = d.createCopy()
532 overrides = d.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
533 localdata.setVar("OVERRIDES", overrides)
534 localdata.setVar("MLPREFIX", item + "-")
535 bb.data.update_data(localdata)
536 ret += gen_arch_macro(localdata)
537 return ret
538
539def gen_arch_macro(d):
540 # Generate shell script to produce the file as part of do_install
541 val = "mkdir -p ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}\n"
542 val += "cat << EOF > ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}/macros\n"
543 val += "%_lib ${baselib}\n"
544 val += "%_libdir ${libdir}\n"
545 val += "%_localedir ${localedir}\n"
546 val += "\n"
547 val += "# Toolchain configuration\n"
548 val += "%TOOLCHAIN_OPTIONS %{nil}\n"
549 val += "%__ar ${@d.getVar('AR', True).replace('$','%')}\n"
550 val += "%__as ${@d.getVar('AS', True).replace('$','%')}\n"
551 val += "%__cc ${@d.getVar('CC', True).replace('$','%')}\n"
552 val += "%__cpp ${@d.getVar('CPP', True).replace('$','%')}\n"
553 val += "%__cxx ${@d.getVar('CXX', True).replace('$','%')}\n"
554 val += "%__ld ${@d.getVar('LD', True).replace('$','%')}\n"
555 val += "%__nm ${@d.getVar('NM', True).replace('$','%')}\n"
556 val += "%__objcopy ${@d.getVar('OBJCOPY', True).replace('$','%')}\n"
557 val += "%__objdump ${@d.getVar('OBJDUMP', True).replace('$','%')}\n"
558 val += "%__ranlib ${@d.getVar('RANLIB', True).replace('$','%')}\n"
559 val += "%__strip ${@d.getVar('STRIP', True).replace('$','%')}\n"
560 val += "EOF\n"
561 val += "\n"
562 return d.expand(val)
563
564
484add_native_wrapper() { 565add_native_wrapper() {
485 create_wrapper ${D}/${bindir}/rpm \ 566 create_wrapper ${D}/${bindir}/rpm \
486 RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \ 567 RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \