mirror of
https://git.yoctoproject.org/poky
synced 2026-04-24 03:32:13 +02:00
Beside upreving RPM, add necessary integration patches to libzypp. Also change the configuration of RPM to support PACKAGECONFIG flags. RPM is highly configurable, the default configuration is good for minimal OE-Core use. (From OE-Core rev: bf94103d4c532ffdfdcdcc6d27c9f65f7824f8f8) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
154 lines
4.8 KiB
BlitzBasic
154 lines
4.8 KiB
BlitzBasic
HOMEPAGE = "http://en.opensuse.org/Portal:Libzypp"
|
|
DESCRIPTION = "The ZYpp Linux Software management framework"
|
|
|
|
LICENSE = "GPLv2+"
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=11fccc94d26293d78cb4996cb17e5fa7"
|
|
|
|
inherit cmake gettext
|
|
|
|
DEPENDS = "rpm boost curl libxml2 zlib sat-solver expat openssl udev libproxy"
|
|
|
|
S = "${WORKDIR}/git"
|
|
SRCREV = "15b6c52260bbc52b3d8e585e271b67e10cc7c433"
|
|
PV = "0.0-git${SRCPV}"
|
|
PR = "r21"
|
|
|
|
SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \
|
|
file://no-doc.patch \
|
|
file://rpm5.patch \
|
|
file://rpm5-no-rpmdbinit.patch \
|
|
file://config-release.patch \
|
|
file://libzypp-oearch.patch \
|
|
file://libzypp-compatargs.patch \
|
|
file://fix_for_compile_wth_gcc-4.6.0.patch \
|
|
file://hardcode-lib-fix.patch \
|
|
file://close.patch \
|
|
file://libzypp-rpm549.patch \
|
|
"
|
|
|
|
SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
|
|
|
|
# ARM specific global constructor workaround
|
|
SRC_URI_append_arm = " file://arm-workaround-global-constructor.patch"
|
|
|
|
# rpmdb2solv from sat-solver is run from libzypp
|
|
RDEPENDS_${PN} = "sat-solver rpm-libs gzip gnupg"
|
|
|
|
PACKAGES =+ "${PN}-pkgmgt"
|
|
|
|
FILES_${PN} += "${libdir}/zypp ${datadir}/zypp ${datadir}/icons"
|
|
FILES_${PN}-dev += "${datadir}/cmake"
|
|
|
|
FILES_${PN}-pkgmgt = "${bindir}/package-manager \
|
|
${bindir}/package-manager-su \
|
|
${datadir}/applications/package-manager.desktop \
|
|
"
|
|
|
|
EXTRA_OECMAKE += " -DLIB=${@os.path.basename('${libdir}')}"
|
|
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
|
AVOID_CONSTRUCTOR = ""
|
|
|
|
# Due to an ARM specific compiler issue
|
|
AVOID_CONSTRUCTOR_arm = "true"
|
|
|
|
# Due to a potential conflict with '_mips' being a define
|
|
AVOID_CONSTRUCTOR_mips = "true"
|
|
|
|
do_archgen () {
|
|
# We need to dynamically generate our arch file based on the machine
|
|
# configuration
|
|
echo "/* Automatically generated by the libzypp recipes */" > zypp/oe-arch.h
|
|
echo "/* Avoid Constructor: ${AVOID_CONSTRUCTOR} */" >> zypp/oe-arch.h
|
|
echo "" >> zypp/oe-arch.h
|
|
echo "#ifndef OE_ARCH_H" >> zypp/oe-arch.h
|
|
echo "#define OE_ARCH_H 1" >> zypp/oe-arch.h
|
|
echo "#define Arch_machine Arch_${MACHINE_ARCH}" | tr - _ >> zypp/oe-arch.h
|
|
echo "#endif /* OE_ARCH_H */" >> zypp/oe-arch.h
|
|
echo "" >> zypp/oe-arch.h
|
|
if [ "${AVOID_CONSTRUCTOR}" != "true" ]; then
|
|
echo "#ifdef DEF_BUILTIN" >> zypp/oe-arch.h
|
|
echo "/* Specify builtin types */" >> zypp/oe-arch.h
|
|
for each_arch in ${PACKAGE_ARCHS} ; do
|
|
case "$each_arch" in
|
|
all | any | noarch)
|
|
continue;;
|
|
esac
|
|
echo " DEF_BUILTIN( ${each_arch} );" | tr - _ >> zypp/oe-arch.h
|
|
done
|
|
echo "#endif /* DEF_BUILTIN */" >> zypp/oe-arch.h
|
|
echo "" >> zypp/oe-arch.h
|
|
fi
|
|
echo "#ifdef OE_EXTERN_PROTO" >> zypp/oe-arch.h
|
|
echo "/* Specify extern prototypes */" >> zypp/oe-arch.h
|
|
for each_arch in ${PACKAGE_ARCHS} ; do
|
|
case "$each_arch" in
|
|
all | any | noarch)
|
|
continue;;
|
|
esac
|
|
echo " extern const Arch Arch_${each_arch};" | tr - _ >> zypp/oe-arch.h
|
|
done
|
|
echo "#endif /* OE_EXTERN_PROTO */" >> zypp/oe-arch.h
|
|
echo "" >> zypp/oe-arch.h
|
|
echo "#ifdef OE_PROTO" >> zypp/oe-arch.h
|
|
echo "/* Specify prototypes */" >> zypp/oe-arch.h
|
|
for each_arch in ${PACKAGE_ARCHS} ; do
|
|
case "$each_arch" in
|
|
all | any | noarch)
|
|
continue;;
|
|
esac
|
|
if [ "${AVOID_CONSTRUCTOR}" != "true" ]; then
|
|
echo -n " const Arch Arch_${each_arch} " | tr - _ >> zypp/oe-arch.h
|
|
echo "(_${each_arch});" | tr - _ >> zypp/oe-arch.h
|
|
else
|
|
echo -n " const Arch Arch_${each_arch} " | tr - _ >> zypp/oe-arch.h
|
|
echo "( IdString ( \"${each_arch}\" ) );" | tr - _ >> zypp/oe-arch.h
|
|
fi
|
|
done
|
|
echo "#endif /* OE_PROTO */" >> zypp/oe-arch.h
|
|
echo "" >> zypp/oe-arch.h
|
|
echo "#ifdef OE_DEF_COMPAT" >> zypp/oe-arch.h
|
|
echo "/* Specify compatibility information */" >> zypp/oe-arch.h
|
|
INSTALL_PLATFORM_ARCHS=""
|
|
for each_arch in ${PACKAGE_ARCHS} ; do
|
|
INSTALL_PLATFORM_ARCHS="$each_arch $INSTALL_PLATFORM_ARCHS"
|
|
done
|
|
|
|
COMPAT_WITH=""
|
|
set -- ${INSTALL_PLATFORM_ARCHS}
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
all | any | noarch)
|
|
shift ; continue;;
|
|
esac
|
|
if [ "${AVOID_CONSTRUCTOR}" != "true" ]; then
|
|
CARCH="_$1"
|
|
else
|
|
CARCH="IdString(\"$1\")"
|
|
fi
|
|
shift
|
|
COMPAT=""
|
|
for each_arch in "$@"; do
|
|
if [ -z "${AVOID_CONSTRUCTOR}" ]; then
|
|
arch_val="_${each_arch}"
|
|
else
|
|
arch_val="IdString(\"${each_arch}\")"
|
|
fi
|
|
if [ -z "$COMPAT" ]; then
|
|
COMPAT=${arch_val}
|
|
else
|
|
COMPAT="${arch_val},$COMPAT"
|
|
fi
|
|
done
|
|
COMPAT_WITH="${CARCH},${COMPAT} $COMPAT_WITH"
|
|
done
|
|
for each_compat in ${COMPAT_WITH} ; do
|
|
echo " defCompatibleWith( ${each_compat} );" | tr - _ >> zypp/oe-arch.h
|
|
done
|
|
echo "#endif /* DEF_COMPAT */" >> zypp/oe-arch.h
|
|
echo "" >> zypp/oe-arch.h
|
|
}
|
|
|
|
addtask archgen before do_configure after do_patch
|