vdr-epg-daemon fails to build with Python 3.8

  • Hallo,

    der Versuch vdr-epg-daemon-1.1.146 unter der zukünftigen Fedora 31 mit Python 3.8 zu kompilieren schlägt fehl.

    vdr-epg-daemon fails to build with Python 3.8.0b3.


    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function `_Py_DECREF':

    /usr/include/python3.8/object.h:478: undefined reference to `_Py_Dealloc'

    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function `Python::init(char

    const*)':

    /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:262: undefined

    reference to `PyErr_Occurred'

    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function

    `Python::execute(cDbTable*, int, char const*)':

    /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:301: undefined

    reference to `PyObject_CallObject'

    /usr/bin/ld: /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:314:

    undefined reference to `PyUnicode_AsEncodedString'

    /usr/bin/ld: /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:315:

    undefined reference to `PyBytes_AsString'

    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function `_Py_DECREF':

    /usr/include/python3.8/object.h:478: undefined reference to `_Py_Dealloc'

    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function

    `Python::episodeName(_object*, _object*)':

    /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:63: undefined

    reference to `Py_BuildValue'

    /usr/bin/ld: /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:61:

    undefined reference to `Py_BuildValue'

    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function

    `Python::episodePart(_object*, _object*)':

    /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:119: undefined

    reference to `Py_BuildValue'

    /usr/bin/ld: /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:117:

    undefined reference to `Py_BuildValue'

    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function

    `Python::episodeNumber(_object*, _object*)':

    /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:127: undefined

    reference to `Py_BuildValue'

    /usr/bin/ld:

    ./lib/libhorchi.a(python.o):/builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.c:125:

    more undefined references to `Py_BuildValue' follow

    /usr/bin/ld: ./lib/libhorchi.a(python.o): in function `Python::PyInitEvent()':

    /builddir/build/BUILD/vdr-epg-daemon-1.1.146/lib/python.h:72: undefined

    reference to `PyModule_Create2'


    The build no longer links to libpython, resulting in undefined references to

    Python API like _Py_Dealloc.

    Code that embeds Python (rather than building an extension module) needs to

    pass `--embed` to any `python3-config --libs` invocation to build with Python

    3.8.

    More information:

    https://docs.python.org/3.8/wh…same-abi-as-release-build


    For the build logs, see:

    https://copr-be.cloud.fedorapr…/00992313-vdr-epg-daemon/


    Vielleicht hat jemand eine Idee wie man das beheben kann ?

    Gruß MartinKG

    Fedora29 x86_64 Gnome Desktop vdr 2.4.0 mit vdr-softhddevice plugin.

    ViewSonic VX3276 HDMI-1 <------------> HDMI NVidia Geforce-gt-1030

    ViewSonic VX3276 HDMI-2 <------------> HDMI Technotrend S2-6400

  • habe ich in der Zwischenzeit beheben können.

    Code
    1. ## Add --embed flag for python 3.8 Support
    2. %if 0%{?fedora} >= 32
    3. sed -i -e 's:$(shell python-config --libs):$(shell python3-config --libs --embed):' Makefile
    4. %endif

    Gruß Marco


    HW: TeVii S471 S/S2, TT6400-S2
    SW: Fedora 30, kernel-5.2.11-200.fc30.x86_64, vdr-2.4.1-1.fc30.x86_64