128 lines
5.3 KiB
Markdown
128 lines
5.3 KiB
Markdown
# Strawberry (macOS-focused fork)
|
||
|
||
This repository is a **macOS-focused fork** of upstream Strawberry.
|
||
|
||
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 where ongoing development happens:
|
||
|
||
- Upstream: `https://github.com/strawberrymusicplayer/strawberry`
|
||
|
||
This fork’s source (the code you are building here):
|
||
|
||
- Fork: `https://gitea.dryark.com/dryark/strawberry`
|
||
|
||
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 "<profile-name>"
|
||
```
|
||
|
||
## 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 (this fork):**
|
||
|
||
git clone --recursive https://gitea.dryark.com/dryark/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
|
||
|
||
[](https://repology.org/metapackage/strawberry/versions)
|