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 > "@last7"</filter> + </container> + <container location="/LastModified" title="Recently Modified" sort="-last_modified"> + <filter>upnp:class derivedfrom "object.item" and last_modified > "@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 > "@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 +}
