diff --git a/etc/forked-daapd.conf b/etc/forked-daapd.conf
deleted file mode 100644
index 7d3532e..0000000
--- a/etc/forked-daapd.conf
+++ /dev/null
@@ -1,57 +0,0 @@
-
-general {
-	# Username
-	uid = "daapd"
-	logfile = "/var/log/forked-daapd.log"
-	# Database location
-#	db_path = "/var/cache/forked-daapd/songs3.db"
-	# Available levels: fatal, log, warning, info, debug, spam
-	loglevel = log
-	# Admin password for the non-existent web interface
-	admin_password = "excito"
-	# Enable/disable IPv6
-	ipv6 = no
-}
-
-# Library configuration
-library {
-	# Name of the library as displayed by the clients
-	# %h: hostname, %v: version
-	name = "My Music on %h"
-	# TCP port to listen on. Default port is 3689 (daap)
-	port = 3689
-	# Password for the library. Optional.
-#	password = ""
-
-	# Directories to index
-	directories = { "/home/storage/music" }
-	# Directories containing compilations
-	# Matches anywhere in the path (not a regexp, though)
-#	compilations = { "/compilations/" }
-
-	# Should iTunes metadata override ours?
-#	itunes_overrides = true
-
-	# Formats: mp4a, mp4v, mpeg, alac, flac, mpc, ogg, wma, wmal, wmav, aif, wav
-	# Formats that should never be transcoded
-#	no_transcode = { "alac", "mp4a" }
-	# Formats that should always be transcoded
-#	force_transcode = { "ogg", "flac" }
-}
-
-# Local audio output
-audio {
-	# AirTunes name - used in the speaker list in Remote
-	nickname = "Computer"
-	# Audio device name for local audio output
-#	card = "default"
-	# Mixer channel to use for volume control - ALSA/Linux only
-	# If not set, PCM will be used if available, otherwise Master.
-#	mixer = ""
-}
-
-# Airport Express device
-#apex "ApEx" {
-	# AirTunes password
-#	password = "s1kr3t"
-#}
diff --git a/etc/portage/env/single-thread.conf b/etc/portage/env/single-thread.conf
new file mode 100644
index 0000000..aa0b361
--- /dev/null
+++ b/etc/portage/env/single-thread.conf
@@ -0,0 +1,2 @@
+MAKEOPTS="-j1"
+
diff --git a/etc/portage/package.accept_keywords/gentoo-b3-repo b/etc/portage/package.accept_keywords/gentoo-b3-repo
deleted file mode 100644
index daf06ba..0000000
--- a/etc/portage/package.accept_keywords/gentoo-b3-repo
+++ /dev/null
@@ -1 +0,0 @@
-*/*::gentoo-b3 ~arm
diff --git a/etc/portage/package.accept_keywords/gentoo-sources b/etc/portage/package.accept_keywords/gentoo-sources
deleted file mode 100644
index 9a68ecd..0000000
--- a/etc/portage/package.accept_keywords/gentoo-sources
+++ /dev/null
@@ -1 +0,0 @@
-=sys-kernel/gentoo-sources-4.3.0 ~arm
diff --git a/etc/portage/package.accept_keywords/logitechmediaserver b/etc/portage/package.accept_keywords/logitechmediaserver
deleted file mode 100644
index 733f6d2..0000000
--- a/etc/portage/package.accept_keywords/logitechmediaserver
+++ /dev/null
@@ -1,85 +0,0 @@
-# Requirements for Logitech Media Server
-media-sound/logitechmediaserver ~arm
-dev-lang/nasm **
-dev-perl/Algorithm-C3 **
-dev-perl/AppConfig ~arm
-dev-perl/Audio-Scan **
-dev-perl/AutoXS-Header **
-dev-perl/B-Hooks-EndOfScope ~arm
-dev-perl/Cache-Cache ~arm
-dev-perl/Canary-Stability ~arm
-dev-perl/Carp-Assert **
-dev-perl/Class-Accessor ~arm
-dev-perl/Class-Accessor-Chained **
-dev-perl/Class-Accessor-Grouped **
-dev-perl/Class-C3 **
-dev-perl/Class-C3-Componentised **
-dev-perl/Class-C3-XS **
-dev-perl/Class-Data-Inheritable ~arm
-dev-perl/Class-ISA **
-dev-perl/Class-Method-Modifiers **
-dev-perl/Class-Virtual **
-dev-perl/Class-XSAccessor **
-dev-perl/Clone ~arm
-dev-perl/Config-Any ~arm
-dev-perl/Context-Preserve **
-dev-perl/DBIx-Class **
-dev-perl/Data-Compare **
-dev-perl/Data-Dump ~arm
-dev-perl/Data-Dumper-Concise ~arm
-dev-perl/Data-Page **
-dev-perl/Data-URIEncode **
-dev-perl/Data-UUID **
-dev-perl/Devel-GlobalDestruction ~arm
-dev-perl/EV **
-dev-perl/Encode-Detect ~arm
-dev-perl/File-Find-Rule ~arm
-dev-perl/File-Remove ~arm
-dev-perl/GD ~arm
-dev-perl/GD-Graph3d ~arm
-dev-perl/GDGraph ~arm
-dev-perl/GDTextUtil ~arm
-dev-perl/Hash-Merge **
-dev-perl/IO-AIO **
-dev-perl/IO-Interface **
-dev-perl/IPC-ShareLite ~arm
-dev-perl/Image-Scale **
-dev-perl/Import-Into **
-dev-perl/JSON-XS ~arm
-dev-perl/Linux-Inotify2 **
-dev-perl/Log-Log4perl ~arm
-dev-perl/MRO-Compat ~arm
-dev-perl/Math-Base36 **
-dev-perl/Module-Find **
-dev-perl/Module-Install ~arm
-dev-perl/Module-Runtime ~arm
-dev-perl/Module-ScanDeps ~arm
-dev-perl/Moo **
-dev-perl/Number-Compare ~arm
-dev-perl/PAR-Dist ~arm
-dev-perl/Path-Class ~arm
-dev-perl/Role-Tiny **
-dev-perl/SQL-Abstract **
-dev-perl/Scalar-Properties **
-dev-perl/Scope-Guard **
-dev-perl/Template-GD ~arm
-dev-perl/Template-Toolkit ~arm
-dev-perl/Text-Glob ~arm
-dev-perl/Tie-Cache-LRU **
-dev-perl/Types-Serialiser ~arm
-dev-perl/YAML-LibYAML **
-dev-perl/common-sense ~arm
-dev-perl/enum **
-dev-perl/namespace-clean ~arm
-dev-perl/strictures **
-dev-perl/Text-Autoformat ~arm
-dev-perl/Text-Reform ~arm
-perl-core/ExtUtils-CBuilder ~arm
-perl-core/ExtUtils-MakeMaker ~arm
-perl-core/ExtUtils-Manifest1 ~arm
-perl-core/IO **
-perl-core/IPC-Cmd ~arm
-perl-core/Module-CoreList ~arm
-perl-core/version ~arm
-virtual/perl-Module-CoreList ~arm
-
diff --git a/etc/portage/package.accept_keywords/lyrionmusicserver b/etc/portage/package.accept_keywords/lyrionmusicserver
new file mode 100644
index 0000000..497d163
--- /dev/null
+++ b/etc/portage/package.accept_keywords/lyrionmusicserver
@@ -0,0 +1,39 @@
+# Requirements for Lyrion Music Server
+media-sound/lyrionmusicserver ~arm
+dev-lang/nasm **
+dev-perl/Algorithm-C3 **
+dev-perl/Audio-Scan **
+dev-perl/AutoXS-Header **
+dev-perl/Carp-Assert **
+dev-perl/Class-Accessor-Chained **
+dev-perl/Class-Accessor-Grouped **
+dev-perl/Class-C3 **
+dev-perl/Class-C3-Componentised **
+dev-perl/Class-C3-XS **
+dev-perl/Class-ISA **
+dev-perl/Class-Virtual **
+dev-perl/Context-Preserve **
+dev-perl/DBIx-Class **
+dev-perl/Data-Dumper-Concise ~arm
+dev-perl/Data-Page **
+dev-perl/Data-URIEncode **
+dev-perl/EV ~arm
+dev-perl/GD-Graph3d ~arm
+dev-perl/GDGraph ~arm
+dev-perl/GDTextUtil ~arm
+dev-perl/Hash-Merge **
+dev-perl/IO-AIO **
+dev-perl/IO-Interface **
+dev-perl/Image-Scale **
+dev-perl/Import-Into ~arm
+dev-perl/Linux-Inotify2 **
+dev-perl/Math-Base36 **
+dev-perl/Module-Find ~arm
+dev-perl/SQL-Abstract **
+dev-perl/Template-GD ~arm
+dev-perl/Template-Toolkit ~arm
+dev-perl/Tie-Cache-LRU **
+dev-perl/enum **
+dev-perl/Text-Autoformat ~arm
+dev-perl/Text-Reform ~arm
+
diff --git a/etc/portage/package.accept_keywords/owntone b/etc/portage/package.accept_keywords/owntone
new file mode 100644
index 0000000..726af93
--- /dev/null
+++ b/etc/portage/package.accept_keywords/owntone
@@ -0,0 +1,2 @@
+media-sound/owntone	**
+app-pda/libplist	~arm
diff --git a/etc/portage/package.env/bison b/etc/portage/package.env/bison
new file mode 100644
index 0000000..cdc49b1
--- /dev/null
+++ b/etc/portage/package.env/bison
@@ -0,0 +1,2 @@
+sys-devel/bison	single-thread.conf
+
diff --git a/etc/portage/package.env/gcc b/etc/portage/package.env/gcc
new file mode 100644
index 0000000..09e179c
--- /dev/null
+++ b/etc/portage/package.env/gcc
@@ -0,0 +1,2 @@
+sys-devel/gcc	single-thread.conf
+
diff --git a/etc/portage/package.license/logitechmediaserver b/etc/portage/package.license/logitechmediaserver
deleted file mode 100644
index 480212d..0000000
--- a/etc/portage/package.license/logitechmediaserver
+++ /dev/null
@@ -1,2 +0,0 @@
-media-sound/logitechmediaserver       logitechmediaserver
-media-sound/logitechmediaserver-bin   logitechmediaserver
diff --git a/etc/portage/package.use/avahi b/etc/portage/package.use/avahi
index 4eb5738..55ad157 100644
--- a/etc/portage/package.use/avahi
+++ b/etc/portage/package.use/avahi
@@ -1,3 +1,3 @@
-# required by sys-devel/distcc
+# required dbus USE flag on avahi
 net-dns/avahi	dbus
 
diff --git a/etc/portage/package.use/distcc b/etc/portage/package.use/distcc
deleted file mode 100644
index 55ad157..0000000
--- a/etc/portage/package.use/distcc
+++ /dev/null
@@ -1,3 +0,0 @@
-# required dbus USE flag on avahi
-net-dns/avahi	dbus
-
diff --git a/etc/portage/package.use/logitechmediaserver b/etc/portage/package.use/lyrionmusicserver
similarity index 74%
rename from etc/portage/package.use/logitechmediaserver
rename to etc/portage/package.use/lyrionmusicserver
index 74cd6e4..b2c3299 100644
--- a/etc/portage/package.use/logitechmediaserver
+++ b/etc/portage/package.use/lyrionmusicserver
@@ -1,4 +1,4 @@
-# required for Logitech Media Server
+# required for Lyrion Music Server
 dev-lang/perl               ithreads
 dev-perl/Image-Scale        gif jpeg png
 dev-perl/Template-Toolkit   gd
diff --git a/etc/portage/package.use/owntone b/etc/portage/package.use/owntone
new file mode 100644
index 0000000..ebaaa34
--- /dev/null
+++ b/etc/portage/package.use/owntone
@@ -0,0 +1 @@
+media-video/ffmpeg	opus
diff --git a/etc/portage/patches/media-sound/forked-daapd-26.4/Fix.build.with.ffmpeg-4.patch b/etc/portage/patches/media-sound/forked-daapd-26.4/Fix.build.with.ffmpeg-4.patch
deleted file mode 100644
index 6d0618e..0000000
--- a/etc/portage/patches/media-sound/forked-daapd-26.4/Fix.build.with.ffmpeg-4.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 528a175d997cda5983add3b22f53d3a91b2b6453 Mon Sep 17 00:00:00 2001
-From: ejurgensen <espenjurgensen@gmail.com>
-Date: Wed, 3 Jul 2019 20:29:31 +0200
-Subject: [PATCH] [main] Conditionally disable functions deprecated by ffmpeg 4.0
-
---- a/src/main.c
-+++ b/src/main.c
-@@ -446,7 +446,7 @@
- }
- #endif
- 
--
-+#if (LIBAVCODEC_VERSION_MAJOR < 58) || ((LIBAVCODEC_VERSION_MAJOR == 58) && (LIBAVCODEC_VERSION_MINOR < 18))
- static int
- ffmpeg_lockmgr(void **pmutex, enum AVLockOp op)
- {
-@@ -477,6 +477,7 @@
- 
-   return 1;
- }
-+#endif
- 
- int
- main(int argc, char **argv)
-@@ -660,6 +661,8 @@
-   DPRINTF(E_INFO, L_MAIN, "Initialized with libav %s\n", av_version);
- #endif
- 
-+// The following was deprecated with ffmpeg 4.0 = avcodec 58.18, avformat 58.12, avfilter 7.16
-+#if (LIBAVCODEC_VERSION_MAJOR < 58) || ((LIBAVCODEC_VERSION_MAJOR == 58) && (LIBAVCODEC_VERSION_MINOR < 18))
-   ret = av_lockmgr_register(ffmpeg_lockmgr);
-   if (ret < 0)
-     {
-@@ -668,9 +671,14 @@
-       ret = EXIT_FAILURE;
-       goto ffmpeg_init_fail;
-     }
--
-+#endif
-+#if (LIBAVFORMAT_VERSION_MAJOR < 58) || ((LIBAVFORMAT_VERSION_MAJOR == 58) && (LIBAVFORMAT_VERSION_MINOR < 12))
-   av_register_all();
-+#endif
-+#if (LIBAVFILTER_VERSION_MAJOR < 7) || ((LIBAVFILTER_VERSION_MAJOR == 7) && (LIBAVFILTER_VERSION_MINOR < 16))
-   avfilter_register_all();
-+#endif
-+
- #if HAVE_DECL_AVFORMAT_NETWORK_INIT
-   avformat_network_init();
- #endif
-@@ -985,9 +993,12 @@
- #if HAVE_DECL_AVFORMAT_NETWORK_INIT
-   avformat_network_deinit();
- #endif
--  av_lockmgr_register(NULL);
- 
-+#if (LIBAVCODEC_VERSION_MAJOR < 58) || ((LIBAVCODEC_VERSION_MAJOR == 58) && (LIBAVCODEC_VERSION_MINOR < 18))
-+  av_lockmgr_register(NULL);
-  ffmpeg_init_fail:
-+#endif
-+
-   DPRINTF(E_LOG, L_MAIN, "Exiting.\n");
-   conffile_unload();
-   logger_deinit();
---- a/src/transcode.c
-+++ b/src/transcode.c
-@@ -731,7 +731,7 @@ open_decoder(unsigned int *stream_index, struct decode_ctx *ctx, enum AVMediaTyp
-   if ((*stream_index < 0) || (!decoder))
-     {
-       if (!ctx->settings.silent)
--	DPRINTF(E_LOG, L_XCODE, "No stream data or decoder for '%s'\n", ctx->ifmt_ctx->filename);
-+	DPRINTF(E_LOG, L_XCODE, "No stream data or decoder for stream #%d\n", *stream_index);
-       return NULL;
-     }
- 
-
diff --git a/etc/portage/patches/media-sound/forked-daapd-26.4/Fix.build.with.gcc-10.patch b/etc/portage/patches/media-sound/forked-daapd-26.4/Fix.build.with.gcc-10.patch
deleted file mode 100644
index 459ab1f..0000000
--- a/etc/portage/patches/media-sound/forked-daapd-26.4/Fix.build.with.gcc-10.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/src/input.h
-+++ b/src/input.h
-@@ -137,7 +137,7 @@
- /*
-  * Input modules should use this to test if playback should end
-  */
--int input_loop_break;
-+static int input_loop_break;
- 
- /*
-  * Transfer stream data to the player's input buffer. The input evbuf will be
-
diff --git a/etc/portage/patches/media-sound/owntone/default.music.index.to.home.storage.patch b/etc/portage/patches/media-sound/owntone/default.music.index.to.home.storage.patch
new file mode 100644
index 0000000..11ba666
--- /dev/null
+++ b/etc/portage/patches/media-sound/owntone/default.music.index.to.home.storage.patch
@@ -0,0 +1,13 @@
+diff '--color=auto' -u a/owntone.conf.in b/owntone.conf.in
+--- a/owntone.conf.in	2025-07-28 12:55:21.991939015 +0200
++++ b/owntone.conf.in	2025-07-28 14:05:14.511956347 +0200
+@@ -82,7 +82,7 @@
+ #	password = ""
+ 
+ 	# Directories to index
+-	directories = { "/srv/music" }
++	directories = { "/home/storage/music" }
+ 
+ 	# Follow symlinks. Default: true.
+ #	follow_symlinks = true
+
diff --git a/etc/portage/patches/media-sound/owntone/no.chgrp.of.logfile.to.root.patch b/etc/portage/patches/media-sound/owntone/no.chgrp.of.logfile.to.root.patch
new file mode 100644
index 0000000..1a4ffd0
--- /dev/null
+++ b/etc/portage/patches/media-sound/owntone/no.chgrp.of.logfile.to.root.patch
@@ -0,0 +1,13 @@
+diff '--color=auto' -u a/src/logger.c b/src/logger.c
+--- a/src/logger.c	2025-02-22 09:07:03.000000000 +0100
++++ b/src/logger.c	2025-07-28 14:00:58.821955290 +0200
+@@ -442,7 +442,7 @@
+       return -1;
+     }
+ 
+-  ret = fchown(fileno(logfile), runas_uid, 0);
++  ret = fchown(fileno(logfile), runas_uid, -1);
+   if (ret < 0)
+     fprintf(stderr, "Failed to set ownership on logfile: %s\n", strerror(errno));
+ 
+
