Merge pull request #11248 from ejurgensen/forked-daapd_update_271
authorRosen Penev <rosenp@gmail.com>
Tue, 4 Feb 2020 22:22:04 +0000 (14:22 -0800)
committerGitHub <noreply@github.com>
Tue, 4 Feb 2020 22:22:04 +0000 (14:22 -0800)
forked-daapd: update to 27.1

sound/forked-daapd/Makefile
sound/forked-daapd/files/forked-daapd.conf
sound/forked-daapd/patches/010-alsa.patch [deleted file]

index 76d21a59af6ce575e77f00f073df277b82c83b3f..9dc7aad302b7cb9d969401082afc06bd838a1b18 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=forked-daapd
-PKG_VERSION:=26.5
-PKG_RELEASE:=2
+PKG_VERSION:=27.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/ejurgensen/$(PKG_NAME)/releases/download/$(PKG_VERSION)/
-PKG_HASH:=6d12e5c1c078ff406413a08a65327c3b23d80605a997d3b219322a5c6a05923c
+PKG_HASH:=e11f86d7de5b7743e388d88f17adb8967d30c4c6c9b4bee2d85d3e7ee2d1849f
 
 PKG_FIXUP:=autoreconf
 PKG_USE_MIPS16:=0
index 0f756e0f8a8c22a822a7165a283f619a498cae41..6921e99158506c8e568ad8dee0f10d9a08c07592 100644 (file)
 general {
        # Username
        # Make sure the user has read access to the library directories you set
-       # below, and full access to the databases, log and local audio
+       # below, and full access to the databases, log and local audio
        uid = "daapd"
 
        # Database location
-       db_path = "/var/cache/forked-daapd/songs3.db"
+#      db_path = "/var/cache/forked-daapd/songs3.db"
 
        # Log file and level
        # Available levels: fatal, log, warning, info, debug, spam
        logfile = "/var/log/forked-daapd.log"
        loglevel = log
 
-       # Admin password for the non-existent web interface
-       admin_password = "unused"
+       # Admin password for the web interface
+       # Note that access to the web interface from computers in
+       # "trusted_network" (see below) does not require password
+#      admin_password = ""
+
+       # Websocket port for the web interface.
+#      websocket_port = 3688
+
+       # Sets who is allowed to connect without authorisation. This applies to
+       # client types like Remotes, DAAP clients (iTunes) and to the web
+       # interface. Options are "any", "localhost" or the prefix to one or
+       # more ipv4/6 networks. The default is { "localhost", "192.168", "fd" }
+#      trusted_networks = { "localhost", "192.168", "fd" }
 
        # Enable/disable IPv6
        ipv6 = no
 
        # Location of cache database
-       cache_path = "/var/cache/forked-daapd/cache.db"
+#      cache_path = "/var/cache/forked-daapd/cache.db"
 
        # DAAP requests that take longer than this threshold (in msec) get their
        # replies cached for next time. Set to 0 to disable caching.
 #      cache_daap_threshold = 1000
+
+       # When starting playback, autoselect speaker (if none of the previously
+       # selected speakers/outputs are available)
+#      speaker_autoselect = yes
+
+       # Most modern systems have a high-resolution clock, but if you are on an
+       # unusual platform and experience audio drop-outs, you can try changing
+       # this option
+#      high_resolution_clock = yes
 }
 
 # Library configuration
 library {
-       # Name of the library as displayed by the clients
-       # %h: hostname, %v: version
+       # Name of the library as displayed by the clients (%h: hostname). If you
+       # change the name after pairing with Remote you may have to re-pair.
        name = "My Music on %h"
 
        # TCP port to listen on. Default port is 3689 (daap)
@@ -50,9 +70,12 @@ library {
        # Directories to index
        directories = { "/srv/music" }
 
+       # Follow symlinks. Default: true.
+#      follow_symlinks = true
+
        # Directories containing podcasts
        # For each directory that is indexed the path is matched against these
-       # names. If there is a match all items in the directory are marked as 
+       # names. If there is a match all items in the directory are marked as
        # podcasts. Eg. if you index /srv/music, and your podcasts are in
        # /srv/music/Podcasts, you can set this to "/Podcasts".
        # (changing this setting only takes effect after rescan, see the README)
@@ -60,23 +83,31 @@ library {
 
        # Directories containing audiobooks
        # For each directory that is indexed the path is matched against these
-       # names. If there is a match all items in the directory are marked as 
+       # names. If there is a match all items in the directory are marked as
        # audiobooks.
        # (changing this setting only takes effect after rescan, see the README)
        audiobooks = { "/Audiobooks" }
 
        # Directories containing compilations (eg soundtracks)
        # For each directory that is indexed the path is matched against these
-       # names. If there is a match all items in the directory are marked as 
+       # names. If there is a match all items in the directory are marked as
        # compilations.
        # (changing this setting only takes effect after rescan, see the README)
        compilations = { "/Compilations" }
 
-       # Compilations usually have many artists, and if you don't want every
-       # artist to be listed when artist browsing in Remote, you can set
-       # a single name which will be used for all music in the compilation dir
+       # Compilations usually have many artists, and sometimes no album artist.
+       # If you don't want every artist to be listed in artist views, you can
+       # set a single name which will be used for all compilation tracks
+       # without an album artist, and for all tracks in the compilation
+       # directories.
        # (changing this setting only takes effect after rescan, see the README)
-       compilation_artist = "Various artists"
+       compilation_artist = "Various Artists"
+
+       # If your album and artist lists are cluttered, you can choose to hide
+       # albums and artists with only one track. The tracks will still be
+       # visible in other lists, e.g. songs and playlists. This setting
+       # currently only works in some remotes.
+#      hide_singles = false
 
        # Internet streams in your playlists will by default be shown in the
        # "Radio" library, like iTunes does. However, some clients (like
@@ -84,8 +115,8 @@ library {
        # to have them shown like normal playlists, you can enable this option.
 #      radio_playlists = false
 
-       # There are 5 default playlists: "Library", "Music", "Movies", "TV Shows"
-       # and "Podcasts". Here you can change the names of these playlists.
+       # These are the default playlists. If you want them to have other names,
+       # you can set it here.
 #      name_library    = "Library"
 #      name_music      = "Music"
 #      name_movies     = "Movies"
@@ -106,8 +137,9 @@ library {
        # File types the scanner should ignore
        # Non-audio files will never be added to the database, but here you
        # can prevent the scanner from even probing them. This might improve
-       # scan time. By default .db, .ini, .db-journal and .pdf are ignored.
-#      filetypes_ignore = { ".db", ".ini", ".db-journal", ".pdf" }
+       # scan time. By default .db, .ini, .db-journal, .pdf and .metadata are
+       # ignored.
+#      filetypes_ignore = { ".db", ".ini", ".db-journal", ".pdf", ".metadata" }
 
        # File paths the scanner should ignore
        # If you want to exclude files on a more advanced basis you can enter
@@ -128,26 +160,118 @@ library {
        # Should iTunes metadata override ours?
 #      itunes_overrides = false
 
+       # Should we import the content of iTunes smart playlists?
+#      itunes_smartpl = false
+
+       # Decoding options for DAAP clients
+       # Since iTunes has native support for mpeg, mp4a, mp4v, alac and wav,
+       # such files will be sent as they are. Any other formats will be decoded
+       # to raw wav. If forked-daapd detects a non-iTunes DAAP client, it is
+       # assumed to only support mpeg and wav, other formats will be decoded.
+       # Here you can change when to decode. Note that these settings have no
+       # effect on AirPlay.
        # 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" }
+       # Formats that should never be decoded
+#      no_decode = { "format", "format" }
+       # Formats that should always be decoded
+#      force_decode = { "format", "format" }
+
+       # Watch named pipes in the library for data and autostart playback when
+       # there is data to be read. To exclude specific pipes from watching,
+       # consider using the above _ignore options.
+#      pipe_autostart = true
+
+       # Enable automatic rating updates
+       # If enabled, rating is automatically updated after a song has either been
+       # played or skipped (only skipping to the next song is taken into account).
+       # The calculation is taken from the beets plugin "mpdstats" (see
+       # https://beets.readthedocs.io/en/latest/plugins/mpdstats.html).
+       # It consist of calculating a stable rating based only on the play- and
+       # skipcount and a rolling rating based on the current rating and the action
+       # (played or skipped). Both results are combined with a mix-factor of 0.75:
+       # new rating = 0.75 * stable rating + 0.25 * rolling rating)
+#      rating_updates = false
+
+       # Allows creating, deleting and modifying m3u playlists in the library directories.
+       # Only supported by the player web interface and some mpd clients
+       # Defaults to being disabled.
+#      allow_modifying_stored_playlists = false
+
+       # A directory in one of the library directories that will be used as the default
+       # playlist directory. forked-dapd creates new playlists in this directory if only
+       # a playlist name is provided (requires "allow_modify_stored_playlists" set to true).
+#      default_playlist_directory = ""
 }
 
 # Local audio output
 audio {
        # Name - used in the speaker list in Remote
-       nickname = "OpenWrt"
+       nickname = "Computer"
+
+       # Type of the output (alsa, pulseaudio, dummy or disabled)
+#      type = "alsa"
+
+       # For pulseaudio output, an optional server hostname or IP can be
+       # specified (e.g. "localhost"). If not set, connection is made via local
+       # socket.
+#      server = ""
 
-       # Audio device name for local audio output
+       # Audio PCM device name for local audio output - ALSA only
 #      card = "default"
 
-       # Mixer channel to use for volume control - ALSA/Linux only
+       # Mixer channel to use for volume control - ALSA only
        # If not set, PCM will be used if available, otherwise Master.
 #      mixer = ""
+
+       # Mixer device to use for volume control - ALSA only
+       # If not set, the value for "card" will be used.
+#      mixer_device = ""
+
+       # Enable or disable audio resampling to keep local audio in sync with
+       # e.g. Airplay. This feature relies on accurate ALSA measurements of
+       # delay, and some devices don't provide that. If that is the case you
+       # are better off disabling the feature.
+#      sync_disable = false
+
+       # Here you can adjust when local audio is started relative to other
+       # speakers, e.g. Airplay. Negative values correspond to moving local
+       # audio ahead, positive correspond to delaying it. The unit is
+       # milliseconds. The offset must be between -1000 and 1000 (+/- 1 sec).
+#      offset_ms = 0
+
+       # To calculate what and if resampling is required, local audio delay is
+       # measured each second. After a period the collected measurements are
+       # used to estimate drift and latency, which determines if corrections
+       # are required. This setting sets the length of that period in seconds.
+#      adjust_period_seconds = 100
 }
 
+# ALSA device settings
+# If you have multiple ALSA devices you can configure them individually via
+# sections like the below. Make sure to set the "card name" correctly. See the
+# README about ALSA for details. Note that these settings will override the ALSA
+# settings in the "audio" section above.
+#alsa "card name" {
+       # Name - used in the speaker list in Remote
+       # If not set, the card name will be used
+#      nickname = "Computer"
+
+       # Mixer channel to use for volume control
+       # If not set, PCM will be used if available, otherwise Master
+#      mixer = ""
+
+       # Mixer device to use for volume control
+       # If not set, the card name will be used
+#      mixer_device = ""
+#}
+
+# Pipe output
+# Allows forked-daapd to output audio data to a named pipe
+#fifo {
+#      nickname = "fifo"
+#      path = "/path/to/fifo"
+#}
+
 # AirPlay/Airport Express device settings
 # (make sure you get the capitalization of the device name right)
 #airplay "My AirPlay device" {
@@ -155,33 +279,119 @@ audio {
        # you can set a lower value here
 #      max_volume = 11
 
+       # Enable this option to exclude a particular AirPlay device from the
+       # speaker list
+#      exclude = false
+
+       # Enable this option to keep a particular AirPlay device in the speaker
+       # list and thus ignore mdns notifications about it no longer being
+       # present. The speaker will remain until restart of forked-daapd.
+#      permanent = false
+
        # AirPlay password
 #      password = "s1kr3t"
 #}
 
+# Chromecast settings
+# (make sure you get the capitalization of the device name right)
+#chromecast "My Chromecast device" {
+       # Enable this option to exclude a particular device from the speaker
+       # list
+#      exclude = false
+#}
+
+# Spotify settings (only have effect if Spotify enabled - see README/INSTALL)
+spotify {
+       # Directory where user settings should be stored (credentials)
+#      settings_dir = "/var/cache/forked-daapd/libspotify"
+
+       # Cache directory
+#      cache_dir = "/tmp"
+
+       # Set preferred bitrate for music streaming
+       # 0: No preference (default), 1: 96kbps, 2: 160kbps, 3: 320kbps
+#      bitrate = 0
+
+       # Your Spotify playlists will by default be put in a "Spotify" playlist
+       # folder. If you would rather have them together with your other
+       # playlists you can set this option to true.
+#      base_playlist_disable = false
+
+       # Spotify playlists usually have many artist, and if you don't want
+       # every artist to be listed when artist browsing in Remote, you can set
+       # the artist_override flag to true. This will use the compilation_artist
+       # as album artist for Spotify items.
+#      artist_override = false
+
+       # Similar to the different artists in Spotify playlists, the playlist
+       # items belong to different albums, and if you do not want every album
+       # to be listed when browsing in Remote, you can set the album_override
+       # flag to true. This will use the playlist name as album name for
+       # Spotify items. Notice that if an item is in more than one playlist,
+       # it will only appear in one album when browsing (in which album is
+       # random).
+#      album_override = false
+}
+
+# MPD configuration (only have effect if MPD enabled - see README/INSTALL)
+mpd {
+       # TCP port to listen on for MPD client requests.
+       # Default port is 6600, set to 0 to disable MPD support.
+#      port = 6600
+
+       # HTTP port to listen for artwork requests (only supported by some MPD
+       # clients and will need additional configuration in the MPD client to
+       # work). Set to 0 to disable serving artwork over http.
+#      http_port = 0
+
+       # By default forked-daapd will - like iTunes - clear the playqueue if
+       # playback stops. Setting clear_queue_on_stop_disable to true will keep
+       # the playlist like MPD does. Note that some dacp clients do not show
+       # the playqueue if playback is stopped.
+#      clear_queue_on_stop_disable = false
+}
+
 # SQLite configuration (allows to modify the operation of the SQLite databases)
-# Make sure to read the SQLite documentation for the corresponding PRAGMA statements as
-# changing them from the defaults may increase the possibility of database corruptions!
-# By default the SQLite default values are used. 
+# Make sure to read the SQLite documentation for the corresponding PRAGMA
+# statements as changing them from the defaults may increase the possibility of
+# database corruptions! By default the SQLite default values are used.
 sqlite {
        # Cache size in number of db pages for the library database
        # (SQLite default page size is 1024 bytes and cache size is 2000 pages)
 #      pragma_cache_size_library = 2000
-       
+
        # Cache size in number of db pages for the daap cache database
        # (SQLite default page size is 1024 bytes and cache size is 2000 pages)
 #      pragma_cache_size_cache = 2000
-       
+
        # Sets the journal mode for the database
-       # DELETE (default), TRUNCATE, PERSIST, MEMORY, WAL, OFF 
+       # DELETE (default), TRUNCATE, PERSIST, MEMORY, WAL, OFF
 #      pragma_journal_mode = DELETE
-       
+
        # Change the setting of the "synchronous" flag
        # 0: OFF, 1: NORMAL, 2: FULL (default)
 #      pragma_synchronous = 2
 
+       # Number of bytes set aside for memory-mapped I/O  for the library database
+       # (requires sqlite 3.7.17 or later)
+       # 0: disables mmap (default), any other value > 0: number of bytes for mmap
+#      pragma_mmap_size_library = 0
+
+       # Number of bytes set aside for memory-mapped I/O for the cache database
+       # (requires sqlite 3.7.17 or later)
+       # 0: disables mmap (default), any other value > 0: number of bytes for mmap
+#      pragma_mmap_size_cache = 0
+
        # Should the database be vacuumed on startup? (increases startup time,
        # but may reduce database size). Default is yes.
 #      vacuum = yes
 }
 
+# Streaming audio settings for remote connections (ie stream.mp3)
+streaming {
+       # Sample rate, typically 44100 or 48000
+#      sample_rate = 44100
+
+       # Set the MP3 streaming bit rate (in kbps), valid options: 64 / 96 / 128 / 192 / 320
+#      bit_rate = 192
+}
diff --git a/sound/forked-daapd/patches/010-alsa.patch b/sound/forked-daapd/patches/010-alsa.patch
deleted file mode 100644 (file)
index a4256ab..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From 20f5118f7505e2e82be3504624ac934b8837d25b Mon Sep 17 00:00:00 2001
-From: Scott Shambarger <devel@shambarger.net>
-Date: Tue, 11 Jun 2019 20:10:04 -0700
-Subject: [PATCH] [alsa] asoundlib.h should be alsa/asoundlib.h
-
----
- configure.ac       | 2 +-
- src/outputs/alsa.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9ec5eb101..98068bf11 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -238,7 +238,7 @@ AC_CHECK_SIZEOF([void *])
- dnl --- Begin configuring the options ---
- dnl ALSA
- FORK_ARG_WITH_CHECK([FORKED_OPTS], [ALSA support], [alsa], [ALSA],
--      [alsa], [snd_mixer_open], [asoundlib.h])
-+      [alsa], [snd_mixer_open], [alsa/asoundlib.h])
- AM_CONDITIONAL([COND_ALSA], [[test "x$with_alsa" = "xyes"]])
- dnl PULSEAUDIO
-diff --git a/src/outputs/alsa.c b/src/outputs/alsa.c
-index b696f0c3d..1a32aad19 100644
---- a/src/outputs/alsa.c
-+++ b/src/outputs/alsa.c
-@@ -30,7 +30,7 @@
- #include <inttypes.h>
- #include <event2/event.h>
--#include <asoundlib.h>
-+#include <alsa/asoundlib.h>
- #include "misc.h"
- #include "conffile.h"