Re: Many packages unnecessarily link to libpython

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, May 15, 2020 at 02:12:00PM -0400, Charalampos Stratakis wrote:
> Hello everyone,
> 
> As of Python 3.8, python C extensions modules should not link to libpython, unless they embed the interpreter in their code. Relevant upstream PR: https://github.com/python/cpython/pull/12946
> If your package links to libpython without requiring it, it won't be possible to use the python3-debug binary with your python C extension, unless you recompile the extension against it.
> 
> On Fedora Rawhide, there are at this point 144 packages linking to libpython, many of those possibly without any need for it.
> 
> If your package links to libpython but it does not embed the interpreter, I would like to ask you to unlink it. Usually the fix needs to be done at the package's build system.
> 
> If you are not sure if your package links to libpython, a way to figure this out  is to inspect the code for the Py_Initialize and the Py_Finalize calls [0]. If the code includes those calls, no action is required from your side. If it does not, linking to libpython is not required.
> 
> I might mass file bugzillas at a later date, but I wanted to provide you the heads up before that.
> 
> [0] https://docs.python.org/3/c-api/init.html#initializing-and-finalizing-the-interpreter
> 
> List of possibly affected packages, provided through $ repoquery --repo=rawhide --source --whatrequires 'libpython3.8.so.1.0()(64bit)'
> 
> Maintainers by package:
> 
> COPASI               sagitter
> HepMC3               ellert
> Io-language          limb
> OpenImageIO          hobbes1069
> PyQt4                rdieter than
> YafaRay              luya roma slaanesh
> apbs                 rathann sagitter
> babeltrace2          mjeanson
> blender              design-sw hobbes1069 ignatenkobrain kwizart luya roma s4504kr slaanesh
> boost                denisarnaud jwakely
> calamares            kkofler mattia
> calibre              chkr heliocastro kevin nushio zbyszek
> cantor               jreznik rdieter than
> ceph                 adeza branto dmick ke4qqq kkeithle ktdreyer steve stingray
> clingo               thofmann
> collectd             fab kevin mhlavink ruben xaeth
> condor               bbockelm bcotton eerlands matt matyas stevetraylen tstclair ttheisen valtri
> createrepo_c         dmach jrohel mblaha pkratoch tmlcoch
> csound               pbrobinson sdz
> cvc4                 brouhaha jjames
> dionaea              rebus
> dmlite               adev andreamanzi gbitzes okeeble rocha
> fontforge            frixxon kevin pnemade
> freecad              hobbes1069 jkastner zultron
> gdb                  jankratochvil keiths kevinb sergiodj
> gdcm                 ankursinha ignatenkobrain mrceresa sebp
> gdl                  orion
> getdp                ignatenkobrain smani
> glade                kalev
> globus-net-manager   ellert
> glom                 hguemar
> gnucash              notting
> gnuradio             jskarvad mmahut
> gpaw                 marcindulak
> gplugin              ignatenkobrain
> gr-air-modes         jskarvad
> gr-fcdproplus        jskarvad
> gr-hpsdr             jskarvad
> gr-iqbal             jskarvad
> gr-osmosdr           cottsay jskarvad
> gr-rds               jskarvad sharkcz
> hamlib               hobbes1069 jskarvad lucilanga
> hexchat              ohaessler tingping
> hokuyoaist           rmattes
> hugin                bpostle cicku denisarnaud
> insight              lkundrak monnerat
> kdevelop-python      dvratil jgrulich minh
> kernel-tools         jcline jforbes jwboyer labbott pbrobinson
> kicad                avigne coremodule lkundrak stevenfalco tnorth
> kig                  jreznik kkofler rdieter
> kitty                atim
> krita                heliocastro rdieter
> lammps               ellio167 junghans
> ldns                 pemensik pwouters thozza
> libCombine           sagitter
> libarcus             churchyard gferon
> libarcus-lulzbot     spot
> libbatch             smani
> libcec               pbrobinson
> libcomps             akozumpl dmach jluza jmracek mblaha pkratoch
> libdnf               dmach jmracek jrohel mblaha pkratoch
> libftdi              hobbes1069 lucilanga
> libkml               smani
> libkolabxml          tpokorra
> libldb               abbra asn gd iboukris jhrozek lslebodn sgallagh simo
> libnuml              sagitter
> libpeas              amigadave hadess nacho
> libplist             hadess pbrobinson
> libreoffice          caolanm dtardon erack sbergmann
> librepo              dmach pkratoch tmlcoch
> libsavitar           churchyard gferon
> libsbml              sagitter zbyszek
> libsedml             sagitter
> libsigrokdecode      mrnuke
> libtalloc            asn gd iboukris jhrozek lslebodn sgallagh simo
> libyang              tkorbar
> libyui-bindings      makowski ngompa tpokorra
> link-grammar         devos fabiand limb
> lldb                 airlied daveisfera jankratochvil sergesanspaille siddharths tstellar
> mapserver            devrim jujens oliver pali
> mathgl               deji krege mycae
> med                  smani
> mod_wsgi             jdornak jkaluza jorton lmacken mrunge
> mraa                 pbrobinson
> nautilus-python      dignan genodeftest kalev
> nbdkit               rjones
> nemo-extensions      jcpunk leigh123linux
> nest                 ankursinha
> netgen-mesher        hobbes1069 smani
> neuron               ankursinha
> nextpnr              lkundrak somlo
> nordugrid-arc        ellert jonkni
> nwchem               marcindulak
> openbabel            itamarjp jussilehtola rathann
> openscap             isimluk jcerny matyc mpreisle pvrabec wsato
> opentrep             denisarnaud
> openvdb              luya slaanesh
> orocos-kdl           thofmann
> pam_wrapper          asn jhrozek
> paraview             deji orion sagitter
> perl-Inline-Python   jonkni
> pidgin               jskarvad mcrha nosnilmot
> pitivi               company elad ignatenkobrain limb wtaymans
> plplot               orion
> postgresql           hhorak jstanek panovotn pkajaba pkubat praiskup tgl
> pynac                pcpa tomspur
> pyotherside          m4rtink
> pythia8              ellert
> python-caja          monnerat raveit65
> python-graph-tool    ankursinha
> python-gstreamer1    farnz wtaymans
> python-jep           raphgro
> python-qt5           rdieter than
> qgis                 bruno volter
> qpid-dispatch        irina tross
> qpid-proton          irina
> rdkit                giallu
> rdma-core            dledford honli jwilson
> renderdoc            gicmo
> rmol                 denisarnaud
> root                 ellert
> samba                abbra anoopcs asn gd iboukris jarrpa jlayton jstephen obnox simo
> scidavis             alexpl
> scribus              pwalter sharkcz tripledes
> sigil                sharkcz
> sourcextractor++     aalvarez
> swift-lang           tachoknight
> syslog-ng            czanik jpo mrunge
> texworks             cheeselee
> thunarx-python       balajig8 kevin nonamedotc
> trademgen            denisarnaud
> trellis              lkundrak somlo
> unbound              aegorenk akhaitov pavlix pemensik pwouters thozza
> upm                  pbrobinson
> uwsgi                kad

git grep on the source code does show usage of both Py_Initialize and
Finalize calls, it embeds the interpreter in the python plugin (of
course)

> vapoursynth          slaanesh
> vdr-epg-daemon       martinkg
> vigra                bpostle
> vim                  karsten zdohnal
> vrpn                 bizdelnick
> vtk                  jgu mrceresa orion
> weechat              asrob gchamoul hguemar niveusluna stingray
> znc                  elyscape nb
> 
> Packages by maintainer:
> aalvarez   sourcextractor++
> abbra      libldb samba
> adev       dmlite
> adeza      ceph
> aegorenk   unbound
> airlied    lldb
> akhaitov   unbound
> akozumpl   libcomps
> alexpl     scidavis
> amigadave  libpeas
> andreamanzi dmlite
> ankursinha gdcm nest neuron python-graph-tool
> anoopcs    samba
> asn        libldb libtalloc pam_wrapper samba
> asrob      weechat
> atim       kitty
> avigne     kicad
> balajig8   thunarx-python
> bbockelm   condor
> bcotton    condor
> bizdelnick vrpn
> bpostle    hugin vigra
> branto     ceph
> brouhaha   cvc4
> bruno      qgis
> caolanm    libreoffice
> cheeselee  texworks
> chkr       calibre
> churchyard libarcus libsavitar
> cicku      hugin
> company    pitivi
> coremodule kicad
> cottsay    gr-osmosdr
> czanik     syslog-ng
> daveisfera lldb
> deji       mathgl paraview
> denisarnaud boost hugin opentrep rmol trademgen
> design-sw  blender
> devos      link-grammar
> devrim     mapserver
> dignan     nautilus-python
> dledford   rdma-core
> dmach      createrepo_c libcomps libdnf librepo
> dmick      ceph
> dtardon    libreoffice
> dvratil    kdevelop-python
> eerlands   condor
> elad       pitivi
> ellert     HepMC3 globus-net-manager nordugrid-arc pythia8 root
> ellio167   lammps
> elyscape   znc
> erack      libreoffice
> fab        collectd
> fabiand    link-grammar
> farnz      python-gstreamer1
> frixxon    fontforge
> gbitzes    dmlite
> gchamoul   weechat
> gd         libldb libtalloc samba
> genodeftest nautilus-python
> gferon     libarcus libsavitar
> giallu     rdkit
> gicmo      renderdoc
> hadess     libpeas libplist
> heliocastro calibre krita
> hguemar    glom weechat
> hhorak     postgresql
> hobbes1069 OpenImageIO blender freecad hamlib libftdi netgen-mesher
> honli      rdma-core
> iboukris   libldb libtalloc samba
> ignatenkobrain blender gdcm getdp gplugin pitivi
> irina      qpid-dispatch qpid-proton
> isimluk    openscap
> itamarjp   openbabel
> jankratochvil gdb lldb
> jarrpa     samba
> jcerny     openscap
> jcline     kernel-tools
> jcpunk     nemo-extensions
> jdornak    mod_wsgi
> jforbes    kernel-tools
> jgrulich   kdevelop-python
> jgu        vtk
> jhrozek    libldb libtalloc pam_wrapper
> jjames     cvc4
> jkaluza    mod_wsgi
> jkastner   freecad
> jlayton    samba
> jluza      libcomps
> jmracek    libcomps libdnf
> jonkni     nordugrid-arc perl-Inline-Python
> jorton     mod_wsgi
> jpo        syslog-ng
> jreznik    cantor kig
> jrohel     createrepo_c libdnf
> jskarvad   gnuradio gr-air-modes gr-fcdproplus gr-hpsdr gr-iqbal gr-osmosdr gr-rds hamlib pidgin
> jstanek    postgresql
> jstephen   samba
> jujens     mapserver
> junghans   lammps
> jussilehtola openbabel
> jwakely    boost
> jwboyer    kernel-tools
> jwilson    rdma-core
> kad        uwsgi
> kalev      glade nautilus-python
> karsten    vim
> ke4qqq     ceph
> keiths     gdb
> kevin      calibre collectd fontforge thunarx-python
> kevinb     gdb
> kkeithle   ceph
> kkofler    calamares kig
> krege      mathgl
> ktdreyer   ceph
> kwizart    blender
> labbott    kernel-tools
> leigh123linux nemo-extensions
> limb       Io-language link-grammar pitivi
> lkundrak   insight kicad nextpnr trellis
> lmacken    mod_wsgi
> lslebodn   libldb libtalloc
> lucilanga  hamlib libftdi
> luya       YafaRay blender openvdb
> m4rtink    pyotherside
> makowski   libyui-bindings
> marcindulak gpaw nwchem
> martinkg   vdr-epg-daemon
> matt       condor
> mattia     calamares
> matyas     condor
> matyc      openscap
> mblaha     createrepo_c libcomps libdnf
> mcrha      pidgin
> mhlavink   collectd
> minh       kdevelop-python
> mjeanson   babeltrace2
> mmahut     gnuradio
> monnerat   insight python-caja
> mpreisle   openscap
> mrceresa   gdcm vtk
> mrnuke     libsigrokdecode
> mrunge     mod_wsgi syslog-ng
> mycae      mathgl
> nacho      libpeas
> nb         znc
> ngompa     libyui-bindings
> niveusluna weechat
> nonamedotc thunarx-python
> nosnilmot  pidgin
> notting    gnucash
> nushio     calibre
> obnox      samba
> ohaessler  hexchat
> okeeble    dmlite
> oliver     mapserver
> orion      gdl paraview plplot vtk
> pali       mapserver
> panovotn   postgresql
> pavlix     unbound
> pbrobinson csound kernel-tools libcec libplist mraa upm
> pcpa       pynac
> pemensik   ldns unbound
> pkajaba    postgresql
> pkratoch   createrepo_c libcomps libdnf librepo
> pkubat     postgresql
> pnemade    fontforge
> praiskup   postgresql
> pvrabec    openscap
> pwalter    scribus
> pwouters   ldns unbound
> raphgro    python-jep
> rathann    apbs openbabel
> raveit65   python-caja
> rdieter    PyQt4 cantor kig krita python-qt5
> rebus      dionaea
> rjones     nbdkit
> rmattes    hokuyoaist
> rocha      dmlite
> roma       YafaRay blender
> ruben      collectd
> s4504kr    blender
> sagitter   COPASI apbs libCombine libnuml libsbml libsedml paraview
> sbergmann  libreoffice
> sdz        csound
> sebp       gdcm
> sergesanspaille lldb
> sergiodj   gdb
> sgallagh   libldb libtalloc
> sharkcz    gr-rds scribus sigil
> siddharths lldb
> simo       libldb libtalloc samba
> slaanesh   YafaRay blender openvdb vapoursynth
> smani      getdp libbatch libkml med netgen-mesher
> somlo      nextpnr trellis
> spot       libarcus-lulzbot
> steve      ceph
> stevenfalco kicad
> stevetraylen condor
> stingray   ceph weechat
> tachoknight swift-lang
> tgl        postgresql
> than       PyQt4 cantor python-qt5
> thofmann   clingo orocos-kdl
> thozza     ldns unbound
> tingping   hexchat
> tkorbar    libyang
> tmlcoch    createrepo_c librepo
> tnorth     kicad
> tomspur    pynac
> tpokorra   libkolabxml libyui-bindings
> tripledes  scribus
> tross      qpid-dispatch
> tstclair   condor
> tstellar   lldb
> ttheisen   condor
> valtri     condor
> volter     qgis
> wsato      openscap
> wtaymans   pitivi python-gstreamer1
> xaeth      collectd
> zbyszek    calibre libsbml
> zdohnal    vim
> zultron    freecad
> 
> -- 
> Regards,
> 
> Charalampos Stratakis
> Software Engineer
> Python Maintenance Team, Red Hat

-- 
Be braver -- you can't cross a chasm in two small jumps.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux