commit:     850e0e1ea9bfbec9e9b31f5e3e3ec3cc7dc041d7
Author:     Christian Tietz <christian.tietz <AT> mailbox <DOT> org>
AuthorDate: Tue Aug 19 14:14:51 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep  6 15:21:49 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=850e0e1e

net-misc/gerbera: Bump to 2.6.1

Signed-off-by: Christian Tietz <christian.tietz <AT> mailbox.org>
Part-of: https://github.com/gentoo/gentoo/pull/43333
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-misc/gerbera/Manifest                   |   1 +
 net-misc/gerbera/files/gerbera-2.6.1.config | 233 ++++++++++++++++++++++++++++
 net-misc/gerbera/gerbera-2.6.1.ebuild       | 119 ++++++++++++++
 3 files changed, 353 insertions(+)

diff --git a/net-misc/gerbera/Manifest b/net-misc/gerbera/Manifest
index 37d9f17c1580..7407d1be50ae 100644
--- a/net-misc/gerbera/Manifest
+++ b/net-misc/gerbera/Manifest
@@ -1,2 +1,3 @@
 DIST gerbera-2.3.0.tar.gz 6255947 BLAKE2B 
bf1d418574fa315cbae91b4174940f78312c95ad91c30bc9b3714915a9204e7c5968b78de03fc63239d4b3f80a488633b737d3a9bfef86263b6c1a7564435ec0
 SHA512 
5326a22a244ef572a7a825193f0a8595fd4125295e4d9c7d329966e6d0b2995a48c48b75d1b02e809e2423839709d736e34be0329c5028f23c9af69906dcfae7
 DIST gerbera-2.5.0.tar.gz 9873077 BLAKE2B 
5bf64753b2aac48fbeef965d774b6c8ad5c04654d605c9e82498f3bda9fd3cc80663f2165af40b440af6db29205474442c97bb83890b92ed42962d00d7c9537a
 SHA512 
f8b172b2a55d38a4ac32de52f519be51876ed523bd7d45098c31b4eaa5f28bc8c542b2927b2e75dc7c508bd7e0232e90c69b8851f8fcfe48494c873ff3586e93
+DIST gerbera-2.6.1.tar.gz 9874477 BLAKE2B 
088796791798cbcc1f7bf328a24e2146df921af01489c7972295d56b4d48766a90343a632a8743310940f1ae2714b5c4da16ca4b3cd0557d2369e1fb63cbb52b
 SHA512 
30de613d4de07b68dedcd0048c94b0a630ab9c0d4a12f801373fb2de8a7d3d4f2076535edceb88cc5e2c082605ad015351ed8c16fee70870b791998412d24e7b

diff --git a/net-misc/gerbera/files/gerbera-2.6.1.config 
b/net-misc/gerbera/files/gerbera-2.6.1.config
new file mode 100644
index 000000000000..fada731c3b8b
--- /dev/null
+++ b/net-misc/gerbera/files/gerbera-2.6.1.config
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<config version="2" xmlns="http://mediatomb.cc/config/2"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://mediatomb.cc/config/2 
http://mediatomb.cc/config/2.xsd";>
+  <!--
+     See https://gerbera.io or read the docs for more
+     information on creating and using config.xml configuration files.
+     This file was generated by Gerbera 2.6.1
+  -->
+  <server>
+    <ui enabled="yes" show-tooltips="yes">
+      <accounts enabled="no" session-timeout="30">
+        <account user="gerbera" password="gerbera" />
+      </accounts>
+    </ui>
+    <name>Gerbera</name>
+    <udn>uuid:6f0b6939-9726-4ae7-8278-60d3397747c5</udn>
+    <home>/var/lib/gerbera</home>
+    <webroot>/usr/share/gerbera/web</webroot>
+    <!--
+        How frequently (in seconds) to send ssdp:alive advertisements.
+        Minimum alive value accepted is: 62
+
+        The advertisement will be sent every (A/2)-30 seconds,
+        and will have a cache-control max-age of A where A is
+        the value configured here. Ex: A value of 62 will result
+        in an SSDP advertisement being sent every second.
+    -->
+    <alive>180</alive>
+    <storage>
+      <sqlite3 enabled="yes">
+        <database-file>gerbera.db</database-file>
+        <backup enabled="yes" interval="600" />
+      </sqlite3>
+    </storage>
+    <containers enabled="yes">
+      <container location="/LastAdded" title="Recently Added" 
sort="-last_updated">
+        <filter>upnp:class derivedfrom "object.item" and last_updated &gt; 
"@last7"</filter>
+      </container>
+      <container location="/LastModified" title="Recently Modified" 
sort="-last_modified">
+        <filter>upnp:class derivedfrom "object.item" and last_modified &gt; 
"@last7"</filter>
+      </container>
+      <container location="/LastPlayed" title="Music Recently Played" 
sort="-upnp:lastPlaybackTime" upnp-shortcut="MUSIC_LAST_PLAYED">
+        <filter>upnp:class derivedfrom "object.item.audioItem" and 
upnp:lastPlaybackTime &gt; "@last7"</filter>
+      </container>
+    </containers>
+    <extended-runtime-options>
+      <mark-played-items enabled="no" suppress-cds-updates="yes">
+        <string mode="prepend">*</string>
+        <mark>
+          <content>video</content>
+        </mark>
+      </mark-played-items>
+    </extended-runtime-options>
+  </server>
+  <import hidden-files="no">
+    <magic-file></magic-file>
+    <scripting script-charset="UTF-8">
+      <script-folder>
+        <common>/usr/share/gerbera/js</common>
+      </script-folder>
+      <import-function>
+        <playlist>importPlaylist</playlist>
+        <meta-file>importMetadata</meta-file>
+        <audio-file>importAudio</audio-file>
+        <video-file>importVideo</video-file>
+        <image-file>importImage</image-file>
+      </import-function>
+      <virtual-layout type="js">
+        <boxlayout>
+          <box key="Root" title="Root" class="object.container" 
sort-key="00000" />
+          <box key="PCDirectory" title="PC Directory" class="object.container" 
sort-key="00000" />
+          <box key="Audio/allAlbums" title="Albums" class="object.container" 
upnp-shortcut="MUSIC_ALBUMS" />
+          <box key="Audio/allArtists" title="Artists" class="object.container" 
upnp-shortcut="MUSIC_ARTISTS" />
+          <box key="Audio/allAudio" title="All Audio" class="object.container" 
/>
+          <box key="Audio/allComposers" title="Composers" 
class="object.container" />
+          <box key="Audio/allDirectories" title="Directories" 
class="object.container" upnp-shortcut="MUSIC_FOLDER_STRUCTURE" />
+          <box key="Audio/allGenres" title="Genres" class="object.container" 
upnp-shortcut="MUSIC_GENRES" />
+          <box key="Audio/allSongs" title="All Songs" class="object.container" 
/>
+          <box key="Audio/allTracks" title="All - full name" 
class="object.container" upnp-shortcut="MUSIC_ALL" />
+          <box key="Audio/allYears" title="Year" class="object.container" />
+          <box key="Audio/audioRoot" title="Audio" class="object.container" />
+          <box key="Audio/artistChronology" title="Album Chronology" 
class="object.container" />
+          <box key="AudioInitial/abc" title="ABC" class="object.container" />
+          <box key="AudioInitial/allArtistTracks" title="000 All" 
class="object.container" />
+          <box key="AudioInitial/allBooks" title="Books" 
class="object.container" />
+          <box key="AudioInitial/audioBookRoot" title="AudioBooks" 
class="object.container" upnp-shortcut="MUSIC_AUDIOBOOKS" />
+          <box key="AudioStructured/allAlbums" title="-Album-" 
class="object.container" upnp-shortcut="MUSIC_ALBUMS" size="6" />
+          <box key="AudioStructured/allArtistTracks" title="all" 
class="object.container" />
+          <box key="AudioStructured/allArtists" title="-Artist-" 
class="object.container" upnp-shortcut="MUSIC_ARTISTS" size="9" />
+          <box key="AudioStructured/allGenres" title="-Genre-" 
class="object.container" upnp-shortcut="MUSIC_GENRES" size="6" />
+          <box key="AudioStructured/allTracks" title="-Track-" 
class="object.container" upnp-shortcut="MUSIC_ALL" size="6" />
+          <box key="AudioStructured/allYears" title="-Year-" 
class="object.container" />
+          <box key="Video/allDates" title="Date" class="object.container" 
upnp-shortcut="VIDEOS_YEARS_MONTH" />
+          <box key="Video/allDirectories" title="Directories" 
class="object.container" upnp-shortcut="VIDEOS_FOLDER_STRUCTURE" />
+          <box key="Video/allVideo" title="All Video" class="object.container" 
upnp-shortcut="VIDEOS_ALL" />
+          <box key="Video/allYears" title="Year" class="object.container" 
upnp-shortcut="VIDEOS_YEARS" />
+          <box key="Video/unknown" title="Unknown" class="object.container" />
+          <box key="Video/videoRoot" title="Video" class="object.container" 
upnp-shortcut="VIDEOS" />
+          <box key="Image/allDates" title="Date" class="object.container" 
upnp-shortcut="IMAGES_YEARS_MONTH" />
+          <box key="Image/allDirectories" title="Directories" 
class="object.container" upnp-shortcut="IMAGES_FOLDER_STRUCTURE" />
+          <box key="Image/allImages" title="All Photos" 
class="object.container" upnp-shortcut="IMAGES_ALL" />
+          <box key="Image/allYears" title="Year" class="object.container" 
upnp-shortcut="IMAGES_YEARS" />
+          <box key="Image/imageRoot" title="Photos" class="object.container" 
upnp-shortcut="IMAGES" />
+          <box key="Image/unknown" title="Unknown" class="object.container" />
+          <box key="Playlist/playlistRoot" title="Playlists" 
class="object.container" />
+          <box key="Playlist/allPlaylists" title="All Playlists" 
class="object.container" />
+          <box key="Playlist/allDirectories" title="Directories" 
class="object.container" upnp-shortcut="MUSIC_PLAYLISTS" />
+        </boxlayout>
+      </virtual-layout>
+    </scripting>
+    <mappings>
+      <extension-mimetype ignore-unknown="no">
+        <map from="asf" to="video/x-ms-asf" />
+        <map from="asx" to="video/x-ms-asx" />
+        <map from="dff" to="audio/x-dff" />
+        <map from="dsd" to="audio/x-dsd" />
+        <map from="dsf" to="audio/x-dsf" />
+        <map from="flv" to="video/x-flv" />
+        <map from="m2ts" to="video/mp2t" />
+        <map from="m3u" to="audio/x-mpegurl" />
+        <map from="m3u8" to="audio/x-mpegurl" />
+        <map from="m4a" to="audio/mp4" />
+        <map from="mka" to="audio/x-matroska" />
+        <map from="mkv" to="video/x-matroska" />
+        <map from="mp3" to="audio/mpeg" />
+        <map from="mts" to="video/mp2t" />
+        <map from="oga" to="audio/ogg" />
+        <map from="ogg" to="audio/ogg" />
+        <map from="ogm" to="video/ogg" />
+        <map from="ogv" to="video/ogg" />
+        <map from="ogx" to="application/ogg" />
+        <map from="pls" to="audio/x-scpls" />
+        <map from="srt" to="application/x-srt" />
+        <map from="ts" to="video/mp2t" />
+        <map from="tsa" to="audio/mp2t" />
+        <map from="tsv" to="video/mp2t" />
+        <map from="wax" to="audio/x-ms-wax" />
+        <map from="wm" to="video/x-ms-wm" />
+        <map from="wma" to="audio/x-ms-wma" />
+        <map from="wmv" to="video/x-ms-wmv" />
+        <map from="wmx" to="video/x-ms-wmx" />
+        <map from="wv" to="audio/x-wavpack" />
+        <map from="wvx" to="video/x-ms-wvx" />
+        <!-- Uncomment the line below for PS3 divx support -->
+        <!-- <map from="avi" to="video/divx" /> -->
+        <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
+        <!-- <map from="avi" to="video/avi" /> -->
+      </extension-mimetype>
+      <mimetype-upnpclass>
+        <map from="application/ogg" to="object.item.audioItem.musicTrack" />
+        <map from="audio/*" to="object.item.audioItem.musicTrack" />
+        <map from="image/*" to="object.item.imageItem" />
+        <map from="video/*" to="object.item.videoItem" />
+      </mimetype-upnpclass>
+      <mimetype-contenttype>
+        <treat mimetype="application/ogg" as="ogg" />
+        <treat mimetype="audio/L16" as="pcm" />
+        <treat mimetype="audio/flac" as="flac" />
+        <treat mimetype="audio/mp4" as="mp4" />
+        <treat mimetype="audio/mpeg" as="mp3" />
+        <treat mimetype="audio/ogg" as="ogg" />
+        <treat mimetype="audio/x-dsd" as="dsd" />
+        <treat mimetype="audio/x-flac" as="flac" />
+        <treat mimetype="audio/x-matroska" as="mka" />
+        <treat mimetype="audio/x-mpegurl" as="playlist" />
+        <treat mimetype="audio/x-ms-wma" as="wma" />
+        <treat mimetype="audio/x-scpls" as="playlist" />
+        <treat mimetype="audio/x-wav" as="pcm" />
+        <treat mimetype="audio/x-wavpack" as="wv" />
+        <treat mimetype="image/jpeg" as="jpg" />
+        <treat mimetype="image/png" as="png" />
+        <treat mimetype="video/mkv" as="mkv" />
+        <treat mimetype="video/mp4" as="mp4" />
+        <treat mimetype="video/mpeg" as="mpeg" />
+        <treat mimetype="video/x-matroska" as="mkv" />
+        <treat mimetype="video/x-mkv" as="mkv" />
+        <treat mimetype="video/x-ms-asf" as="asf" />
+        <treat mimetype="video/x-ms-asx" as="playlist" />
+        <treat mimetype="video/x-msvideo" as="avi" />
+      </mimetype-contenttype>
+      <mimetype-dlnatransfermode>
+        <map from="application/ogg" to="Streaming" />
+        <map from="application/x-srt" to="Background" />
+        <map from="audio/*" to="Streaming" />
+        <map from="image/*" to="Interactive" />
+        <map from="srt" to="Background" />
+        <map from="text/*" to="Background" />
+        <map from="video/*" to="Streaming" />
+      </mimetype-dlnatransfermode>
+      <contenttype-dlnaprofile>
+        <map from="asf" to="VC_ASF_AP_L2_WMA" />
+        <map from="avi" to="AVI" />
+        <map from="dsd" to="DSF" />
+        <map from="flac" to="FLAC" />
+        <map from="jpg" to="JPEG_LRG" />
+        <map from="mka" to="MKV" />
+        <map from="mkv" to="MKV" />
+        <map from="mp3" to="MP3" />
+        <map from="mp4" to="AVC_MP4_EU" />
+        <map from="mpeg" to="MPEG_PS_PAL" />
+        <map from="ogg" to="OGG" />
+        <map from="pcm" to="LPCM" />
+        <map from="png" to="PNG_LRG" />
+        <map from="wma" to="WMAFULL" />
+      </contenttype-dlnaprofile>
+    </mappings>
+  </import>
+  <transcoding enabled="no">
+    <mimetype-profile-mappings>
+      <transcode mimetype="application/ogg" using="vlcmpeg" />
+      <transcode mimetype="audio/ogg" using="ogg2mp3" />
+      <transcode mimetype="video/x-flv" using="vlcmpeg" />
+    </mimetype-profile-mappings>
+    <profiles>
+      <profile name="ogg2mp3" enabled="no" type="external">
+        <mimetype>audio/mpeg</mimetype>
+        <accept-url>no</accept-url>
+        <first-resource>yes</first-resource>
+        <accept-ogg-theora>no</accept-ogg-theora>
+        <agent command="ffmpeg" arguments="-y -i %in -f mp3 %out" />
+        <buffer size="1048576" chunk-size="131072" fill-size="262144" />
+      </profile>
+      <profile name="vlcmpeg" enabled="no" type="external">
+        <mimetype>video/mpeg</mimetype>
+        <accept-url>yes</accept-url>
+        <first-resource>yes</first-resource>
+        <accept-ogg-theora>yes</accept-ogg-theora>
+        <agent command="vlc" arguments="-I dummy %in --sout 
#transcode{venc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out}
 vlc://quit" />
+        <buffer size="14400000" chunk-size="512000" fill-size="120000" />
+      </profile>
+    </profiles>
+  </transcoding>
+</config>
+

diff --git a/net-misc/gerbera/gerbera-2.6.1.ebuild 
b/net-misc/gerbera/gerbera-2.6.1.ebuild
new file mode 100644
index 000000000000..ad2ddb5f577c
--- /dev/null
+++ b/net-misc/gerbera/gerbera-2.6.1.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOCS_BUILDER="sphinx"
+DOCS_DIR="doc"
+DOCS_AUTODOC=0
+
+PYTHON_COMPAT=( python3_{10..13} )
+
+# python-any-r1 is inherited first because docs.eclass sources it, and 
cmake.eclass exports phases.
+inherit python-any-r1 cmake docs flag-o-matic linux-info
+
+DESCRIPTION="UPnP Media Server"
+HOMEPAGE="https://gerbera.io";
+
+if [[ ${PV} == 9999 ]]; then
+       EGIT_REPO_URI="https://github.com/gerbera/${PN}.git";
+       inherit git-r3
+else
+       
SRC_URI="https://github.com/gerbera/${PN}/archive/refs/tags/v${PV}.tar.gz -> 
${P}.tar.gz"
+       S="${WORKDIR}/${P}"
+       KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="curl debug doc +exif exiv2 +ffmpeg ffmpegthumbnailer +javascript +magic 
+matroska mysql systemd +taglib test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       acct-group/gerbera
+       acct-user/gerbera
+       dev-db/sqlite
+       dev-libs/libebml:=
+       dev-libs/libfmt:=
+       dev-libs/pugixml
+       dev-libs/spdlog:=
+       net-libs/libupnp:=[ipv6(+),reuseaddr,-blocking-tcp]
+       sys-apps/util-linux
+       sys-libs/zlib
+       virtual/libiconv
+       curl? ( net-misc/curl )
+       exif? ( media-libs/libexif )
+       exiv2? ( media-gfx/exiv2:= )
+       ffmpeg? ( media-video/ffmpeg:= )
+       ffmpegthumbnailer? ( media-video/ffmpegthumbnailer[png] )
+       javascript? ( dev-lang/duktape:= )
+       magic? ( sys-apps/file )
+       matroska? ( media-libs/libmatroska:= )
+       mysql? ( dev-db/mysql-connector-c:= )
+       taglib? ( media-libs/taglib:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       doc? (
+               ${PYTHON_DEPS}
+               $(python_gen_any_dep '
+                       dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+               ')
+               media-gfx/graphviz
+       )
+       test? ( dev-cpp/gtest )
+"
+
+CONFIG_CHECK="~INOTIFY_USER"
+
+src_configure() {
+       # bug #941944
+       filter-lto
+
+       local mycmakeargs=(
+               -DBUILD_DOC=OFF
+               -DINSTALL_DOC=OFF
+               -DWITH_AVCODEC=$(usex ffmpeg)
+               -DWITH_CURL=$(usex curl)
+               -DWITH_DEBUG=$(usex debug)
+               -DWITH_EXIF=$(usex exif)
+               -DWITH_EXIV2=$(usex exiv2)
+               -DWITH_FFMPEGTHUMBNAILER=$(usex ffmpegthumbnailer)
+               -DWITH_INOTIFY=ON
+               -DWITH_JS=$(usex javascript)
+               -DWITH_LASTFM=OFF
+               -DWITH_MAGIC=$(usex magic)
+               -DWITH_MATROSKA=$(usex matroska)
+               -DWITH_MYSQL=$(usex mysql)
+               -DWITH_SYSTEMD=$(usex systemd)
+               -DWITH_TAGLIB=$(usex taglib)
+               -DWITH_TESTS=$(usex test)
+       )
+
+       cmake_src_configure
+}
+
+src_compile() {
+       cmake_src_compile
+       docs_compile
+}
+
+src_install() {
+       cmake_src_install
+
+       newinitd "${FILESDIR}"/${PN}-1.0.0.initd ${PN}
+       newconfd "${FILESDIR}"/${PN}-1.0.0.confd ${PN}
+
+       insinto /etc/${PN}
+       newins "${FILESDIR}"/${PN}-2.6.1.config config.xml
+       fperms 0640 /etc/${PN}/config.xml
+       fowners root:gerbera /etc/${PN}/config.xml
+}
+
+pkg_postinst() {
+       if use mysql; then
+               elog "Gerbera has been built with MySQL support and needs"
+               elog "to be configured before being started. By default"
+               elog "SQLite will be used."
+       fi
+}

Reply via email to