Skip to content

Instantly share code, notes, and snippets.

@bonelifer
Created April 1, 2024 16:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bonelifer/fe3ecaeb95f36d7a52b364d9a5190a58 to your computer and use it in GitHub Desktop.
Save bonelifer/fe3ecaeb95f36d7a52b364d9a5190a58 to your computer and use it in GitHub Desktop.
compile-mpd.sh
#!/bin/bash
#===============================================================================
#
# FILE: install_mpd.sh
# USAGE: ./install_mpd.sh
# DESCRIPTION: This script installs MPD (Music Player Daemon) and its
# dependencies. It detects the distribution (Debian or Ubuntu)
# and installs the appropriate packages accordingly.
#
# OPTIONS: None
# REQUIREMENTS: Git, Ninja, Meson
# NOTES: Make sure to run this script with sudo or as root.
#
#===============================================================================
# Function to detect distribution
get_distribution() {
if [ -r /etc/os-release ]; then
. /etc/os-release
if [ "$ID" = debian ]; then
echo "debian"
elif [ "$ID" = ubuntu ]; then
echo "ubuntu"
fi
fi
}
# Install dependencies based on distribution
install_dependencies() {
local distribution=$(get_distribution)
if [ "$distribution" = "debian" ]; then
sudo apt-get update
sudo apt-get install -y build-essential libasound2-dev libavahi-client-dev libavcodec-dev \
libavformat-dev libavutil-dev libcurl4-gnutls-dev libexpat1-dev libglib2.0-dev libicu-dev \
libmad0-dev libmpdclient-dev libncursesw5-dev libogg-dev libopus-dev libpcre3-dev libsidplay2-dev \
libsqlite3-dev libsystemd-dev libwavpack-dev libwebp-dev libwrap0-dev yasm ninja-build meson libmp3lame-dev \
liburing-dev libchromaprint-dev libnfs-dev libyajl-dev libsamplerate0-dev libsoxr-dev libcdio-dev libmms-dev \
libzzip-dev libjack-jackd2-dev libopenal-dev libshout3-dev libadplug-dev libfluidsynth-dev libaudiofile-dev \
libgme-dev libmikmod-dev libopenmpt-dev libmpcdec-dev libmpg123-dev libsndfile1-dev libwildmidi-dev \
libsidplayfp-dev libtwolame-dev
elif [ "$distribution" = "ubuntu" ]; then
sudo apt-get update
sudo apt-get install -y build-essential libasound2-dev libavahi-client-dev libavcodec-dev \
libavformat-dev libavutil-dev libcurl4-gnutls-dev libexpat1-dev libglib2.0-dev libicu-dev \
libmad0-dev libmpdclient-dev libncursesw5-dev libogg-dev libopus-dev libpcre3-dev libsidplay2-dev \
libsqlite3-dev libsystemd-dev libwavpack-dev libwebp-dev libwrap0-dev yasm ninja-build meson libmp3lame-dev \
liburing-dev libchromaprint-dev libnfs-dev libyajl-dev libsamplerate0-dev libsoxr-dev libcdio-dev libmms-dev \
libzzip-dev libjack-jackd2-dev libopenal-dev libshout3-dev libadplug-dev libfluidsynth-dev libaudiofile-dev \
libgme-dev libmikmod-dev libopenmpt-dev libmpcdec-dev libmpg123-dev libsndfile1-dev libwildmidi-dev \
libsidplayfp-dev libtwolame-dev
else
echo "Unsupported distribution"
exit 1
fi
}
# Clone the MPD repository
git clone https://github.com/MusicPlayerDaemon/MPD.git
cd MPD
git checkout v0.23.x
# Build and install
meson build
cd build
ninja
sudo ninja install
# Clean up
cd ../..
rm -rf MPD
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment