brendaningram / linux-audio-setup-scripts

Scripts to get you running with a professional audio quality Linux system.
https://brendaningram.com
155 stars 25 forks source link

Scripts targeting Arch leave user systems in an unsupported state #2

Open dvzrv opened 2 years ago

dvzrv commented 2 years ago

Hi!

First off: I appreciate the effort put into attempting to achieve something cross-distribution here. However, this is not trivial and a lot of care has to be put into actually getting this right, as the alternative is having a bunch of annoyed or angry users on your hands for whom "it does not work" and with them not even understanding how they got there (and this is neither great for you, the distribution or the users).

Unfortunately, your scripts targeting Arch leave the user in an unsupported state (partial upgrades), which is rather problematic (and some things actually don't even exist on Arch). Have these scripts been tested on Arch?

If you need to use an AUR helper, make sure to build packages using devtools' extra-86_64-build (to build in a clean chroot) and use paru instead (which does that by default AFAIK). In general it is very advisable for users to not install things from the AUR blindly, especially if they do not know what that means or entails. It would be good to hide all installations from the AUR behind a (or one for all) user action with a message that advises them to read up on what the AUR is and that all of its PKGBUILDs are unsupported. https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-desktop.sh#L23-L27

Why install non-free binary blobs from the AUR, if the user may not even want them? https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-desktop.sh#L47

Exporting environment variables system-wide will have unforseeable side-effects for applications and for people wanting to default to an X11 based environment. https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-desktop.sh#L66

Why add opinionated gnome configuration, that the user may not even want? https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-desktop.sh#L113-L164

Packages can and should be installed alongside the upgrade process (pacman -Syu <package_1> <package_n>) instead of doing everything separately, which takes much longer. Also, there are package groups, that can be used, such as pro-audio, that contain all pro-audio related packages on Arch. https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-audio-jack.sh#L27

update-grub is not an upstream grub command and can not be used on Arch (it's probably something that Debian based distros ship). https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-audio-jack.sh#L37

It is problematic to allow the users in the audio group to use elevated rtprio, which is why we have the realtime-privileges package and the realtime group for that. https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-audio-jack.sh#L44-L46

The use of /etc/sysctl.conf is discouraged and drop-in files in /etc/sysctl.d/ should be used instead. Also note, that just placing the file there does not activate that kernel parameter now (see sysctl for that). https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-audio-jack.sh#L54

Why install reaper through an untrackable method, if you can just create a package using reaper-bin and install that? https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-audio-jack.sh#L75-L80

Downgrading packages creates a partial upgrade scenario. This is not supported. https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-audio-jack.sh#L97-L98

In theory the user only needs to log out and back in again (that's when the user groups will be applied properly): https://github.com/brendaningramaudio/install-scripts/blob/7a9ee2ee6ce3bdb34551b95ec8e7a1d3159b654c/arch/install-audio-jack.sh#L142

rolodoom commented 1 year ago

About rtprio in audio is something that has been used when configuring jack server for audio https://jackaudio.org/faq/linux_rt_config.html

Also it's like recommended when using yabridge to use windows VST plugins on Linux https://github.com/robbert-vdh/yabridge