diff options
-rw-r--r-- | meta/recipes-devtools/rpm/rpm_5.4.14.bb | 81 |
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 | ||
120 | acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java" | 120 | acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java" |
121 | 121 | ||
122 | # The local distribution macro directory | ||
123 | distromacrodir = "${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 |
123 | rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros" | 126 | rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros" |
124 | rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros" | 127 | rpm_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 | " |
342 | RDEPENDS_${PN} = "base-files run-postinsts" | 346 | RDEPENDS_${PN} = "base-files run-postinsts" |
343 | RDEPENDS_${PN}_class-native = "" | 347 | RDEPENDS_${PN}_class-native = "" |
@@ -481,6 +485,83 @@ do_install_append() { | |||
481 | 485 | ||
482 | } | 486 | } |
483 | 487 | ||
488 | do_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 | ||
511 | EOF | ||
512 | |||
513 | # Create and install multilib specific macros | ||
514 | ${@multilib_rpmmacros(d)} | ||
515 | } | ||
516 | |||
517 | def 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 | |||
539 | def 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 | |||
484 | add_native_wrapper() { | 565 | add_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 \ |