git: d02f3365ccaf - main - audio/waves: Add new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 16 Feb 2026 13:32:00 UTC
The branch main has been updated by nivit:
URL: https://cgit.FreeBSD.org/ports/commit/?id=d02f3365ccaf637ab44085bbd2d16fe06e904eca
commit d02f3365ccaf637ab44085bbd2d16fe06e904eca
Author: Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2026-02-16 13:28:28 +0000
Commit: Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2026-02-16 13:28:28 +0000
audio/waves: Add new port
Waves is a keyboard-driven terminal music player with Soulseek downloads,
MusicBrainz tagging, Last.fm scrobbling, and radio mode.
Features:
- Browser: Browse music by Artist > Album > Track hierarchy
- File Browser: Navigate filesystem with file/folder deletion
- Playlists: Create, organize, and manage playlists with folder hierarchy
- Favorites: Quick-access playlist with heart icon display
- Playing Queue: Persistent queue with multi-selection, reordering, and
undo/redo
- Audio Playback: MP3, FLAC, OPUS/OGG, and M4A/AAC support with seeking
- Album Art: Display album art in expanded player bar, auto-fetch during
import
- Full-Text Search: SQLite FTS5 search across library, files, and playlists
- Download Manager: Search and download from Soulseek via slskd integration
- Import System: MusicBrainz tagging, file renaming, and library integration
- Last.fm Scrobbling: Track your listening history with offline queue support
- Radio Mode: Endless playback with Last.fm similar artists and intelligent
track selection
- And more...
https://github.com/llehouerou/waves
---
audio/Makefile | 1 +
audio/waves/Makefile | 39 +++++++++++++++++++++++++
audio/waves/distinfo | 5 ++++
audio/waves/files/patch-internal_lastfm_auth.go | 11 +++++++
audio/waves/files/pkg-message.in | 12 ++++++++
audio/waves/pkg-descr | 21 +++++++++++++
6 files changed, 89 insertions(+)
diff --git a/audio/Makefile b/audio/Makefile
index 18650d1d0376..3935624289b3 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -847,6 +847,7 @@
SUBDIR += waon
SUBDIR += wasabi
SUBDIR += wavbreaker
+ SUBDIR += waves
SUBDIR += wavegain
SUBDIR += wavetral
SUBDIR += wavpack
diff --git a/audio/waves/Makefile b/audio/waves/Makefile
new file mode 100644
index 000000000000..f230b5992d26
--- /dev/null
+++ b/audio/waves/Makefile
@@ -0,0 +1,39 @@
+PORTNAME= waves
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.1.41
+CATEGORIES= audio
+
+MAINTAINER= nivit@FreeBSD.org
+COMMENT= Terminal music player with MusicBrainz tagging, and Last.fm scrobbling
+WWW= https://github.com/llehouerou/waves
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libasound.so:audio/alsa-lib
+RUN_DEPENDS= ffmpeg:multimedia/ffmpeg \
+ xdg-open:devel/xdg-utils
+
+USES= go:modules pkgconfig
+
+GO_MODULE= github.com/llehouerou/waves
+
+SUB_FILES= pkg-message
+
+PLIST_FILES= bin/waves \
+ share/waves/config.example.toml
+
+PORTDOCS= README.md
+
+OPTIONS_DEFINE= DOCS
+
+post-install:
+ ${MKDIR} ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/config.example.toml \
+ ${STAGEDIR}${DATADIR}
+
+post-install-DOCS-on:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/audio/waves/distinfo b/audio/waves/distinfo
new file mode 100644
index 000000000000..c8a6188cbcb3
--- /dev/null
+++ b/audio/waves/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1771234448
+SHA256 (go/audio_waves/waves-v0.1.41/v0.1.41.mod) = e201530a8efe1f32a067ec0e0a72695a36daf67e2b4ca5de414a30ccb373a2a2
+SIZE (go/audio_waves/waves-v0.1.41/v0.1.41.mod) = 3458
+SHA256 (go/audio_waves/waves-v0.1.41/v0.1.41.zip) = 01a4da8847604fdbcfe2ec6b6e1cd35204b8acd630795f60e766356d4a47226f
+SIZE (go/audio_waves/waves-v0.1.41/v0.1.41.zip) = 1810584
diff --git a/audio/waves/files/patch-internal_lastfm_auth.go b/audio/waves/files/patch-internal_lastfm_auth.go
new file mode 100644
index 000000000000..4e6fd7937cc8
--- /dev/null
+++ b/audio/waves/files/patch-internal_lastfm_auth.go
@@ -0,0 +1,11 @@
+--- internal/lastfm/auth.go.orig 1979-11-29 23:00:00 UTC
++++ internal/lastfm/auth.go
+@@ -108,6 +108,8 @@ func OpenBrowser(url string) error {
+ switch runtime.GOOS {
+ case "darwin":
+ cmd = exec.Command("open", url)
++ case "freebsd":
++ cmd = exec.Command("xdg-open", url)
+ case "linux":
+ cmd = exec.Command("xdg-open", url)
+ case "windows":
diff --git a/audio/waves/files/pkg-message.in b/audio/waves/files/pkg-message.in
new file mode 100644
index 000000000000..79d5d5f8761a
--- /dev/null
+++ b/audio/waves/files/pkg-message.in
@@ -0,0 +1,12 @@
+[
+{
+ type: install
+ message: <<EOM
+Before starting waves for the first time, run the following commands:
+
+ mkdir ~/.config/waves
+ cp %%DATADIR%%/config.example.toml ~/.config/waves/config.toml
+
+Then customize that config file.
+}
+]
diff --git a/audio/waves/pkg-descr b/audio/waves/pkg-descr
new file mode 100644
index 000000000000..2f8395146429
--- /dev/null
+++ b/audio/waves/pkg-descr
@@ -0,0 +1,21 @@
+Waves is a keyboard-driven terminal music player with Soulseek downloads,
+MusicBrainz tagging, Last.fm scrobbling, and radio mode.
+
+Features:
+
+ - Browser: Browse music by Artist > Album > Track hierarchy
+ - File Browser: Navigate filesystem with file/folder deletion
+ - Playlists: Create, organize, and manage playlists with folder hierarchy
+ - Favorites: Quick-access playlist with heart icon display
+ - Playing Queue: Persistent queue with multi-selection, reordering, and
+ undo/redo
+ - Audio Playback: MP3, FLAC, OPUS/OGG, and M4A/AAC support with seeking
+ - Album Art: Display album art in expanded player bar, auto-fetch during
+ import
+ - Full-Text Search: SQLite FTS5 search across library, files, and playlists
+ - Download Manager: Search and download from Soulseek via slskd integration
+ - Import System: MusicBrainz tagging, file renaming, and library integration
+ - Last.fm Scrobbling: Track your listening history with offline queue support
+ - Radio Mode: Endless playback with Last.fm similar artists and intelligent
+ track selection
+ - And more...