bluez or jack in the closure of python-ipython?

  • Open
  • quality assurance status badge
Details
2 participants
  • Csepp
  • Simon Tournier
Owner
unassigned
Submitted by
Simon Tournier
Severity
normal
S
S
Simon Tournier wrote on 13 Sep 2023 15:33
(address . bug-guix@gnu.org)
87r0n2dwq7.fsf@gmail.com
Hi,

IPython is a Python REPL and there is no direct dependencies on bluez or
jack. Why does it need unrelated tools as some Bluetooth or JACK audio?

Toggle snippet (5 lines)
$ guix size python-ipython | grep -E '(jack|bluez)'
/gnu/store/kbvyzkxrpf8w9v64jvjkr12hcailhflx-bluez-5.66 192.8 4.3 0.2%
/gnu/store/7bhggk7fzvgjvgi9ykphgg21gwlfgx4k-jack-0.125.0 90.8 1.3 0.1%

Well, any idea why bluez or jack are in the picture?

Toggle snippet (4 lines)
$ for p in $(guix show python-ipython | recsel -C -P dependencies); do guix size $p ;done | grep -E '(bluez|jack)'
… nothing!

Last, the chain of dependencies looks like:

Toggle snippet (20 lines)
$ guix graph --path python-ipython bluez
python-ipython@8.5.0
python-matplotlib@3.5.2
python-wxpython@4.2.0
wxwidgets@3.2.2.1
sdl2@2.26.2
pulseaudio@16.1
bluez@5.66

$ guix graph --path python-ipython jack
python-ipython@8.5.0
python-matplotlib@3.5.2
python-wxpython@4.2.0
wxwidgets@3.2.2.1
sdl2@2.26.2
pulseaudio@16.1
jack@0.125.0


Cheers,
simon

Toggle snippet (46 lines)
$ guix show python-ipython
name: python-ipython
version: 8.5.0
outputs:
+ out: everything
systems: x86_64-linux
dependencies: graphviz@7.0.1 pkg-config@0.29.2 python-backcall@0.2.0 python-decorator@5.0.9 python-jedi@0.18.2 python-jinja2@3.1.1 python-jsonschema@4.5.1
+ python-matplotlib-inline@0.1.3 python-matplotlib@3.5.2 python-mistune@0.8.4 python-nbformat@5.3.0 python-numpy@1.23.2 python-numpydoc@1.5.0
+ python-pexpect@4.8.0 python-pickleshare@0.7.5 python-prompt-toolkit@3.0.29 python-pygments@2.12.0 python-pytest@7.1.3 python-pyzmq@25.1.0
+ python-requests@2.28.1 python-simplegeneric@0.8.1 python-stack-data@0.2.0 python-terminado@0.10.0 python-testpath@0.5.0 python-traitlets@5.9.0
+ readline@8.1.2 which@2.21
location: gnu/packages/python-xyz.scm:10859:2
homepage: https://ipython.org
license: Modified BSD
synopsis: IPython is a tool for interactive computing in Python
description: IPython provides a rich architecture for interactive computing with: Powerful interactive shells, a browser-based notebook, support for
+ interactive data visualization, embeddable interpreters and tools for parallel computing.

$ guix show bluez
name: bluez
version: 5.66
outputs:
+ out: everything
systems: x86_64-linux
dependencies: dbus@1.14.0 eudev@3.2.11 gettext-minimal@0.21 glib@2.72.3 libical@3.0.16 pkg-config@0.29.2 python-docutils@0.19 readline@8.1.2
location: gnu/packages/linux.scm:5750:2
homepage: http://www.bluez.org/
license: GPL 2+
synopsis: Linux Bluetooth protocol stack
description: BlueZ provides support for the core Bluetooth layers and protocols. It is flexible, efficient and uses a modular implementation.

$ guix show jack
name: jack
version: 0.125.0
outputs:
+ out: everything
systems: x86_64-linux i686-linux
dependencies: alsa-lib@1.2.4 bdb@6.2.32 pkg-config@0.29.2 readline@8.1.2 util-linux@2.37.4
location: gnu/packages/audio.scm:2507:2
homepage: https://jackaudio.org/
license: GPL 2+, LGPL 2.1+
synopsis: JACK audio connection kit
description: JACK is a low-latency audio server. It can connect a number of different applications to an audio device, as well as allowing them to share
+ audio between themselves. JACK is different from other audio server efforts in that it has been designed from the ground up to be suitable for
+ professional audio work. This means that it focuses on two key areas: synchronous execution of all clients, and low latency operation.
C
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
cucmsxp9nov.fsf@riseup.net
Simon Tournier <zimon.toutoune@gmail.com> writes:

Toggle quote (18 lines)
> Hi,
>
> IPython is a Python REPL and there is no direct dependencies on bluez or
> jack. Why does it need unrelated tools as some Bluetooth or JACK audio?
>
> [...]
> Last, the chain of dependencies looks like:
>
> $ guix graph --path python-ipython bluez
> python-ipython@8.5.0
> python-matplotlib@3.5.2
> python-wxpython@4.2.0
> wxwidgets@3.2.2.1
> sdl2@2.26.2
> pulseaudio@16.1
> bluez@5.66
> [...]

Seem pretty self-explanatory:
matplotlib has a GUI frontend (or even multiple frontends), one of them
is based on WxWidgets, which pulls in SDL2, and Guix doesn't split SDL2
like some other distros do, so all its dependencies get pulled in.
In case you are not familiar with SDL(2), it's a portable "direct media
layer", a library used for portable multimedia applications.
S
S
Simon Tournier wrote on 14 Sep 2023 12:05
(name . Csepp)(address . raingloom@riseup.net)(address . 65925@debbugs.gnu.org)
87msxpdq8w.fsf@gmail.com
Hi,

On Thu, 14 Sep 2023 at 10:11, Csepp <raingloom@riseup.net> wrote:

Toggle quote (7 lines)
> Seem pretty self-explanatory:
> matplotlib has a GUI frontend (or even multiple frontends), one of them
> is based on WxWidgets, which pulls in SDL2, and Guix doesn't split SDL2
> like some other distros do, so all its dependencies get pulled in.
> In case you are not familiar with SDL(2), it's a portable "direct media
> layer", a library used for portable multimedia applications.

So could you explain why bluez is not in the closure python-matplotlib?

Toggle snippet (33 lines)
$ guix size python-matplotlib | grep '/gnu/store/' | cut -f1 -d' ' | cut -f2- -d'-' | sort
bash-minimal-5.1.16
bash-static-5.1.16
bzip2-1.0.8
bzip2-1.0.8
expat-2.5.0
fontconfig-minimal-2.14.0
font-dejavu-2.37
freetype-2.13.0
gcc-11.3.0-lib
gdbm-1.23
glibc-2.35
libffi-3.4.4
libpng-1.6.37
libx11-1.8.1
libxau-1.0.10
libxcb-1.15
libxdmcp-1.1.3
libxft-2.3.4
libxrender-0.9.10
ncurses-6.2.20210619
openssl-3.0.8
python-3.10.7
python-matplotlib-3.5.2
qhull-2020.2
readline-8.1.2
sqlite-3.39.3
tcl-8.6.12
tk-8.6.12
xz-5.2.8
zlib-1.2.13

And then why it is in the closure of python-ipython?

And as I pointed, bluez is not in the closure of any dependencies of
python-ipython.

Cheers,
simon
C
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
cuc4jjvagy9.fsf@riseup.net
Simon Tournier <zimon.toutoune@gmail.com> writes:

Toggle quote (59 lines)
> Hi,
>
> On Thu, 14 Sep 2023 at 10:11, Csepp <raingloom@riseup.net> wrote:
>
>> Seem pretty self-explanatory:
>> matplotlib has a GUI frontend (or even multiple frontends), one of
>> them
>> is based on WxWidgets, which pulls in SDL2, and Guix doesn't split
>> SDL2
>> like some other distros do, so all its dependencies get pulled in.
>> In case you are not familiar with SDL(2), it's a portable "direct
>> media
>> layer", a library used for portable multimedia applications.
>
> So could you explain why bluez is not in the closure
> python-matplotlib?
>
> --8<---------------cut here---------------start------------->8---
> $ guix size python-matplotlib | grep '/gnu/store/' | cut -f1 -d' ' | cut -f2- -d'-' | sort
> bash-minimal-5.1.16
> bash-static-5.1.16
> bzip2-1.0.8
> bzip2-1.0.8
> expat-2.5.0
> fontconfig-minimal-2.14.0
> font-dejavu-2.37
> freetype-2.13.0
> gcc-11.3.0-lib
> gdbm-1.23
> glibc-2.35
> libffi-3.4.4
> libpng-1.6.37
> libx11-1.8.1
> libxau-1.0.10
> libxcb-1.15
> libxdmcp-1.1.3
> libxft-2.3.4
> libxrender-0.9.10
> ncurses-6.2.20210619
> openssl-3.0.8
> python-3.10.7
> python-matplotlib-3.5.2
> qhull-2020.2
> readline-8.1.2
> sqlite-3.39.3
> tcl-8.6.12
> tk-8.6.12
> xz-5.2.8
> zlib-1.2.13
> --8<---------------cut here---------------end--------------->8---
>
> And then why it is in the closure of python-ipython?
>
> And as I pointed, bluez is not in the closure of any dependencies of
> python-ipython.
>
> Cheers,
> simon

Oh, bluez I have no idea about. :|
That is super weird.
?