{ pkgs ? import <nixpkgs> { } }:
pkgs.mkShell {
  nativeBuildInputs = with pkgs; [
    meson
    ninja
    pkg-config

    # For documentation
    doxygen
    python3Packages.sphinx
    python3Packages.sphinx-rtd-theme
  ];

  buildInputs = with pkgs; [
    glib
    systemd
    boost
    fmt

    # Inputs
    curl
    libmms
    libnfs
    liburing
    samba

    # Archive support
    bzip2
    zziplib

    # Codecs
    audiofile
    faad2
    ffmpeg
    flac
    fluidsynth
    game-music-emu
    libmad
    libmikmod
    mpg123
    libopus
    libvorbis
    lame

    # Filters
    libsamplerate
    soxr

    # Outputs
    alsa-lib
    libjack2
    libpulseaudio
    libshout
    pipewire

    # Misc
    icu
    sqlite
    avahi
    dbus
    pcre2
    libgcrypt
    expat

    # Services
    # yajl # This is broken, maybe because of the fork used in nixpkgs?

    # Client support
    libmpdclient

    # Tag support
    libid3tag

    # For tests
    gtest
    zip
  ];

  hardeningDisable = [ "fortify" ];
}