mirror of
https://git.yoctoproject.org/poky
synced 2026-02-05 16:28:43 +01:00
Sadly, smart is not deterministic so the same build can go down multiple different pathways. We'd expect to see the same warnings however depending on the pathway taken, it may or may not warn, particularly with Recommends since they're optional. For example, where a Recommended package is available but has Conflicts, we'd expect to see an warning that we couldn't install it. Some code paths silently hide this (its a LOCKED_CONFLICT). We add printing of warnings for this case. Also, if there are two compatible feeds available (e.g. i586 and core2_32), this changes the code path from direct _install() to _pending() since there are multiple providers. This patch adds warning handling to _pending() so we don't hit hard failures there. This is as seen with the mysterious libspeexdsp failures for x86-lsb on the autobuilder. (From OE-Core rev: ab1eb2432b9a9823335450fd12476e910a95a2aa) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
139 lines
5.1 KiB
BlitzBasic
139 lines
5.1 KiB
BlitzBasic
SUMMARY = "The Smart Package Manager"
|
|
DESCRIPTION = "The Smart Package Manager project has the ambitious objective of creating \
|
|
smart and portable algorithms for solving adequately the problem of managing software \
|
|
upgrades and installation."
|
|
|
|
HOMEPAGE = "http://labix.org/smart/"
|
|
SECTION = "devel/python"
|
|
LICENSE = "GPLv2"
|
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
|
|
|
|
DEPENDS = "python rpm gettext-native python-rpm"
|
|
SRCNAME = "smart"
|
|
|
|
SRC_URI = "\
|
|
git://github.com/smartpm/smart.git \
|
|
file://smartpm-rpm5-nodig.patch \
|
|
file://smart-recommends.patch \
|
|
file://smart-improve-error-reporting.patch \
|
|
file://smart-channelsdir.patch \
|
|
file://smart-attempt.patch \
|
|
file://smart-attempt-fix.patch \
|
|
file://smart-rpm4-fixes.patch \
|
|
file://smart-add-for-rpm-ignoresize-check.patch \
|
|
file://smart-already-installed-message.patch \
|
|
"
|
|
|
|
SRCREV = "407a7eca766431257dcd1da15175cc36a1bb22d0"
|
|
PV = "1.5+git${SRCPV}"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
# Options - rpm, qt4, gtk
|
|
PACKAGECONFIG ??= "rpm"
|
|
|
|
RPM_RDEP = "${PN}-backend-rpm"
|
|
QT_RDEP = "${PN}-interface-qt4"
|
|
GTK_RDEP = "${PN}-interface-gtk"
|
|
|
|
RPM_RDEP_class-native = ""
|
|
QT_RDEP_class-native = ""
|
|
GTK_RDEP_class-native = ""
|
|
|
|
RPM_RDEP_class-nativesdk = ""
|
|
QT_RDEP_class-nativesdk = ""
|
|
GTK_RDEP_class-nativesdk = ""
|
|
|
|
PACKAGECONFIG[rpm] = ",,rpm,${RPM_RDEP}"
|
|
PACKAGECONFIG[qt4] = ",,qt4-x11,${QT_RDEP}"
|
|
PACKAGECONFIG[gtk] = ",,gtk+,${GTK_RDEP}"
|
|
|
|
inherit distutils
|
|
|
|
do_install_append() {
|
|
# We don't support the following items
|
|
rm -rf ${D}${libdir}/python*/site-packages/smart/backends/slack
|
|
rm -rf ${D}${libdir}/python*/site-packages/smart/backends/arch
|
|
rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt
|
|
|
|
# Temporary, debian support in OE is missing the python module
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/aptchannelsync.py*
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/debdir.py*
|
|
rm -rf ${D}${libdir}/python*/site-packages/smart/backends/deb
|
|
|
|
# Disable automatic channel detection
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/detectsys.py*
|
|
|
|
# Disable landscape support
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/landscape.py*
|
|
|
|
# Disable urpmi channel support
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/urpmichannelsync.py*
|
|
|
|
# Disable yum channel support
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/yumchannelsync.py*
|
|
|
|
# Disable zypper channel support
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/zyppchannelsync.py*
|
|
|
|
if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'rpm', 'rpm', '', d)}" ]; then
|
|
rm -f ${D}${libdir}/python*/site-packages/smart/plugins/rpmdir.py*
|
|
rm -rf ${D}${libdir}/python*/site-packages/smart/backends/rpm
|
|
fi
|
|
|
|
if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'qt4', 'qt4', '', d)}" ]; then
|
|
rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt4
|
|
fi
|
|
|
|
if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'gtk', '', d)}" ]; then
|
|
rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/gtk
|
|
fi
|
|
}
|
|
|
|
add_native_wrapper() {
|
|
create_wrapper ${D}/${bindir}/smart \
|
|
RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \
|
|
RPM_ETCRPM='$'{RPM_ETCRPM-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir', True), d.getVar('bindir', True))}/rpm} \
|
|
RPM_LOCALEDIRRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir', True), d.getVar('bindir', True))}/locale
|
|
}
|
|
|
|
do_install_append_class-native() {
|
|
sed -i -e 's|^#!.*/usr/bin/env python|#! /usr/bin/env nativepython|' ${D}${bindir}/smart
|
|
add_native_wrapper
|
|
}
|
|
|
|
do_install_append_class-nativesdk() {
|
|
add_native_wrapper
|
|
}
|
|
|
|
PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc smartpm \
|
|
${@bb.utils.contains('PACKAGECONFIG', 'rpm', '${PN}-backend-rpm', '', d)} \
|
|
${@bb.utils.contains('PACKAGECONFIG', 'qt4', '${PN}-interface-qt4', '', d)} \
|
|
${@bb.utils.contains('PACKAGECONFIG', 'gtk', '${PN}-interface-gtk', '', d)} \
|
|
${PN}-interface-images ${PN}"
|
|
|
|
RDEPENDS_smartpm = "${PN}"
|
|
|
|
RDEPENDS_${PN} += "${PN}-backend-rpm python-codecs python-textutils python-xml python-fcntl \
|
|
python-pickle python-crypt python-compression python-shell \
|
|
python-resource python-netclient python-threading python-unixadmin python-pprint"
|
|
RDEPENDS_${PN}_class-native = ""
|
|
|
|
RDEPENDS_${PN}-backend-rpm = "python-rpm"
|
|
|
|
RDEPENDS_${PN}-interface-qt4 = "qt4-x11 ${PN}-interface-images"
|
|
RDEPENDS_${PN}-interface-gtk = "gtk+ ${PN}-interface-images"
|
|
|
|
FILES_smartpm = "${bindir}/smart"
|
|
|
|
FILES_${PN}-dbg += "${libdir}/python*/site-packages/smart/backends/rpm/.debug"
|
|
|
|
FILES_${PN}-backend-rpm = "${libdir}/python*/site-packages/smart/backends/rpm"
|
|
|
|
FILES_${PN}-interface-qt4 = "${libdir}/python*/site-packages/smart/interfaces/qt4"
|
|
FILES_${PN}-interface-gtk = "${libdir}/python*/site-packages/smart/interfaces/gtk"
|
|
FILES_${PN}-interface-images = "${datadir}/${baselib}/python*/site-packages/smart/interfaces/images"
|
|
|
|
BBCLASSEXTEND = "native nativesdk"
|
|
|