# Strawberry (macOS-focused fork) This repository is a **macOS-focused fork** of the upstream Strawberry Music Player project originally created and maintained by **Jonas Kvinge** (itself originally forked from Clementine). The goal of this fork is to make Strawberry **build cleanly and repeatably on macOS**, with: - Homebrew dependency installation via `Brewfile` - local Homebrew formulas (tap) for missing dependencies - build / deploy / signing / notarization helper scripts under `build_tools/` - Sparkle feed configuration knobs so you can publish your own updates ## Upstream vs this fork (macOS distribution) Upstream Strawberry is free/open-source, but upstream’s **macOS binaries** may be distributed via a **paid-access channel** depending on the release period and policy. This fork is intended for people who want to: - **build from source on macOS** without guesswork - **produce signed + notarized binaries** themselves (and optionally distribute them) General safety note: whether you use upstream builds, your own builds, or someone else’s, only install software from sources you trust and prefer **signed + notarized** releases. ## Quick start (macOS) Install Homebrew dependencies: ```bash ./build_tools/macos/install_brew_deps.sh ``` Build: ```bash ./build_tools/macos/build_app.sh --release --clean open ./cmake-build-macos-release/strawberry.app ``` Build + deploy + sign + notarize (+ DMG): ```bash ./build_tools/macos/build_sign_notarize.sh --run --release --clean --deploy --dmg \ --identity "Developer ID Application: Your Name (TEAMID)" \ --notary-profile "" ``` ## Features - Play and organize your music collection - Supports formats: WAV, FLAC, WavPack, Ogg Vorbis, Opus, MPC, TrueAudio, AIFF, MP4, MP3, ASF, and Monkey’s Audio - Audio CD playback - Bit-perfect playback on Linux - Native desktop notifications - Advanced playlist management - Smart and dynamic playlists - Loudness analysis and EBU R128 normalization - Editing tags and fetching missing tags via [MusicBrainz](https://musicbrainz.org/) - Album art from: [Last.fm](https://www.last.fm/), [MusicBrainz](https://musicbrainz.org/), [Discogs](https://www.discogs.com/), [Musixmatch](https://www.musixmatch.com/), [Deezer](https://www.deezer.com/), [Tidal](https://www.tidal.com/), [Qobuz](https://www.qobuz.com/), [Spotify](https://www.spotify.com/) - Lyrics from: [Genius](https://genius.com/), [Musixmatch](https://www.musixmatch.com/), [ChartLyrics](http://www.chartlyrics.com/), [lyrics.ovh](https://lyrics.ovh/), [lololyrics](https://www.lololyrics.com/), [songlyrics](https://www.songlyrics.com/), [azlyrics](https://www.azlyrics.com/), [elyrics](https://www.elyrics.net/), [letras](https://www.letras.mus.br), [LyricFind](https://lyrics.lyricfind.com) and [lrclib.net](https://lrclib.net/) - Audio analyzer and equalizer - Transfer music to USB, MTP and iPod devices - Scrobbling to [Last.fm](https://www.last.fm/) and [ListenBrainz](https://listenbrainz.org/) - Streaming from Subsonic-compatible servers - Unofficial integrations: Tidal, Spotify, and Qobuz - Discord Rich Presence --- :white_check_mark: Tested on **Linux**, **OpenBSD**, **FreeBSD**, **macOS**, and **Windows**. ## :gear: Requirements To build Strawberry from source, you’ll need: **Dependencies:** - [CMake ≥= 3.13](https://cmake.org/) - C/C++ compiler ([GCC](https://gcc.gnu.org/), [Clang](https://clang.llvm.org/), or [MSVC](https://visualstudio.microsoft.com/vs/features/cplusplus/)) - [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/) or [pkgconf](https://github.com/pkgconf/pkgconf) - [Boost](https://www.boost.org/) - [GLib](https://developer.gnome.org/glib/) - [Qt ≥= 6.4](https://www.qt.io/) (Core, Concurrent, Gui, Widgets, Network, SQL, D-Bus) - [SQLite ≥= 3.9](https://www.sqlite.org) - [ALSA (Linux only)](https://www.alsa-project.org/) - [GStreamer](https://gstreamer.freedesktop.org/) - [TagLib ≥= 1.12](https://www.taglib.org/) - [ICU](https://unicode-org.github.io/icu/) - [KDSingleApplication ≥= 1.1.0](https://github.com/KDAB/KDSingleApplication) **Dependencies for optional features:** - Fingerprinting & tagging: [Chromaprint](https://acoustid.org/chromaprint) - Moodbar: [FFTW3](http://www.fftw.org/) - PulseAudio integration: [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/) - Audio CD support: [libcdio](https://www.gnu.org/software/libcdio/) - MTP devices: [libmtp](http://libmtp.sourceforge.net/) - iPod Classic: [libgpod](http://www.gtkpod.org/libgpod/) - EBU R128 normalization: [libebur128](https://github.com/jiixyj/libebur128) - Discord presence: [RapidJSON](https://rapidjson.org/) Also install GStreamer plugins **base**, **good**, and optionally **bad**, **ugly** and **libav** for full codec support. --- ## :wrench: Build from Source **Get the code:** git clone --recursive https://github.com/strawberrymusicplayer/strawberry **Build and install:** cd strawberry cmake -S . -B build cmake --build build --parallel $(nproc) sudo cmake --install build For building on Windows with Visual Studio 2022, see: :point_right: https://github.com/strawberrymusicplayer/strawberry-msvc --- ## :package: Packaging status [![Packaging status](https://repology.org/badge/vertical-allrepos/strawberry.svg?columns=3&header=Strawberry&exclude_unsupported=1)](https://repology.org/metapackage/strawberry/versions)