MycroftAI / mycroft-core

Mycroft Core, the Mycroft Artificial Intelligence platform.
https://mycroft.ai
Apache License 2.0
6.48k stars 1.27k forks source link

Remove unused packages? #3120

Open maggie44 opened 2 years ago

maggie44 commented 2 years ago

Describe the solution you'd like The dev_setup.sh script installs a lot of packages for the build process: https://github.com/MycroftAI/mycroft-core/blob/1b67bf33e08541c34c331e7980ce0d6b4bc9c708/dev_setup.sh#L361-L366

Are they all required to run MyCroft, or are some just for installation? If things like build-essential and pkg-config could be removed at the end of the script it would make a big difference in installation size (particularly relevant for the Docker builds and PiCroft).

forslund commented 2 years ago

This is a tricky question I think. Some are definitely not needed anymore (screen for example).

Others (like libicu-dev) are only needed for the Mimic1 build during installation. Since mimic3 is out and very cool these might be phased out shortly.

Libjpeg-dev I think is only needed for the Mark-1 enclosure? so could technically be removed from the general package install.

libglib2.0-dev could also possibly be dropped. I think it was originally added for the default "desktop launch application" skill

Build-essential, automake, bison and some of the other I think is in a bit of a limbo state. They are needed for building mimic so when/if mimic3 lands as a default they're no longer needed. However they are useful for allowing pip to build C-libraries and such when doing installs on system where there exist no binary wheels.

And also remember, the dev_setup.sh is meant to be used for development setups and not really for distributions. Picroft uses it since it was meant as a development platform. A dockerfile could for example replace the dev_setup.sh for docker installing the required packages.