mirror of
git://git.yoctoproject.org/poky
synced 2026-04-02 02:49:11 +00:00
This version of createrepo-c does a wrong pointer assignment, and on GCC14[0]
hosts (e.g. Fedora 41), this fails to build with:
FAILED: src/python/CMakeFiles/_createrepo_c.dir/createrepo_cmodule.c.o
build/tmp-glibc/hosttools/gcc [...] python/createrepo_cmodule.c
python/createrepo_cmodule.c:82:41: error: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
82 | {"xml_parse_main_metadata_together",(PyCFunctionWithKeywords)py_xml_parse_main_metadata_together,
| ^
src/python/createrepo_cmodule.c:82:41: note: (near initialization for ‘createrepo_c_methods[15].ml_meth’)
Add a patch to fix the pointer assignment. The patched code has since
been removed by upstream.
[0]: https://gcc.gnu.org/gcc-14/porting_to.html#incompatible-pointer-types
(From OE-Core rev: 17b1a1cd097c2bd6d690a3cd44561c2d40844088)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
42 lines
1.7 KiB
BlitzBasic
42 lines
1.7 KiB
BlitzBasic
DESCRIPTION = "C implementation of createrepo."
|
|
HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki"
|
|
|
|
LICENSE = "GPL-2.0-only"
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
|
|
|
SRC_URI = "git://github.com/rpm-software-management/createrepo_c;branch=master;protocol=https \
|
|
file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
|
|
file://0001-Use-proper-cast-for-PyMethodDef.ml_meth.patch \
|
|
"
|
|
|
|
SRCREV = "a531ee881a8f1d9273b4383fb9fa604c56fff138"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm"
|
|
DEPENDS:append:class-native = " file-replacement-native"
|
|
|
|
inherit cmake pkgconfig bash-completion setuptools3-base
|
|
|
|
EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF -DWITH_LIBMODULEMD=OFF"
|
|
|
|
BBCLASSEXTEND = "native nativesdk"
|
|
|
|
# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in
|
|
do_install:append:class-native() {
|
|
create_wrapper ${D}/${bindir}/createrepo_c \
|
|
RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
|
|
MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc
|
|
create_wrapper ${D}/${bindir}/modifyrepo_c \
|
|
MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc
|
|
}
|
|
|
|
do_install:append:class-nativesdk() {
|
|
create_wrapper ${D}/${bindir}/createrepo_c \
|
|
RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \
|
|
MAGIC=${datadir}/misc/magic.mgc
|
|
create_wrapper ${D}/${bindir}/modifyrepo_c \
|
|
MAGIC=${datadir}/misc/magic.mgc
|
|
rm -rf ${D}/etc
|
|
}
|