[cfg] libplist+libsodium now required, remove configure options
Need the two libraries for AirPlay 2, which can't be optional. Means iTunes XML and device verification configure options are no longer useful.
This commit is contained in:
parent
01360fff99
commit
a5bd8b011e
21
INSTALL.md
21
INSTALL.md
|
@ -43,8 +43,6 @@ Optional packages:
|
|||
--------------------|--------------------------|------------------------------------------------
|
||||
Chromecast | `--enable-chromecast` | libgnutls*-dev libprotobuf-c-dev
|
||||
Spotify | `--enable-spotify` | libspotify-dev
|
||||
iTunes XML | `--disable-itunes` | libplist-dev
|
||||
Device verification | `--disable-verification` | libplist-dev libsodium-dev
|
||||
Player web UI | `--disable-webinterface` | libwebsockets-dev
|
||||
Live web UI | `--with-libwebsockets` | libwebsockets-dev
|
||||
Pulseaudio | `--with-pulseaudio` | libpulse-dev
|
||||
|
@ -146,7 +144,8 @@ Afterwards, you can optionally install Oracle's newer version, and then
|
|||
```bash
|
||||
sudo port install \
|
||||
autoconf automake libtool pkgconfig git gperf libgcrypt \
|
||||
libunistring libconfuse ffmpeg libevent json-c libwebsockets curl
|
||||
libunistring libconfuse ffmpeg libevent json-c libwebsockets curl \
|
||||
libplist libsodium
|
||||
```
|
||||
|
||||
Download, configure, build and install the Mini-XML library:
|
||||
|
@ -170,8 +169,6 @@ Optional features require the following additional ports:
|
|||
Feature | Configure argument | Ports
|
||||
--------------------|--------------------------|-------------------
|
||||
Chromecast | `--enable-chromecast` | gnutls protobuf-c
|
||||
iTunes XML | `--disable-itunes` | libplist
|
||||
Device verification | `--disable-verification` | libplist libsodium
|
||||
Pulseaudio | `--with-pulseaudio` | pulseaudio
|
||||
|
||||
Clone the forked-daapd repo:
|
||||
|
@ -263,14 +260,14 @@ Libraries:
|
|||
from <https://github.com/json-c/json-c/wiki>
|
||||
- libcurl
|
||||
from <http://curl.haxx.se/libcurl/>
|
||||
- libplist 0.16+
|
||||
from <http://github.com/JonathanBeck/libplist/downloads>
|
||||
- libsodium
|
||||
from <https://download.libsodium.org/doc/>
|
||||
- libasound (optional - ALSA local audio)
|
||||
often already installed as part of your distro
|
||||
- libpulse (optional - Pulseaudio local audio)
|
||||
from <https://www.freedesktop.org/wiki/Software/PulseAudio/Download/>
|
||||
- libplist 0.16+ (optional - iTunes XML support and Apple TV device verification)
|
||||
from <http://github.com/JonathanBeck/libplist/downloads>
|
||||
- libsodium (optional - Apple TV device verification)
|
||||
from <https://download.libsodium.org/doc/>
|
||||
- libspotify (optional - Spotify support)
|
||||
from <https://developer.spotify.com>
|
||||
- libgnutls (optional - Chromecast support)
|
||||
|
@ -325,15 +322,9 @@ to run on systems without libspotify (the Spotify features will then be disabled
|
|||
Support for LastFM scrobbling is optional. Use `--enable-lastfm` to enable this
|
||||
feature.
|
||||
|
||||
Support for iTunes Music Library XML format is optional. Use `--disable-itunes`
|
||||
to disable this feature.
|
||||
|
||||
Support for the MPD protocol is optional. Use `--disable-mpd` to disable this
|
||||
feature.
|
||||
|
||||
Support for Apple TV device verification is optional. Use `--disable-verification`
|
||||
to disable this feature.
|
||||
|
||||
Support for Chromecast devices is optional. Use `--enable-chromecast` to enable
|
||||
this feature.
|
||||
|
||||
|
|
23
configure.ac
23
configure.ac
|
@ -118,6 +118,7 @@ FORK_FUNC_REQUIRE([COMMON], [GNU libunistring], [LIBUNISTRING], [unistring],
|
|||
FORK_MODULES_CHECK([FORKED], [ZLIB], [zlib], [deflate], [zlib.h])
|
||||
FORK_MODULES_CHECK([FORKED], [CONFUSE], [libconfuse >= 3.0], [cfg_init], [confuse.h])
|
||||
FORK_MODULES_CHECK([FORKED], [LIBCURL], [libcurl], [curl_global_init], [curl/curl.h])
|
||||
FORK_MODULES_CHECK([FORKED], [LIBSODIUM], [libsodium], [sodium_init], [sodium.h])
|
||||
|
||||
FORK_MODULES_CHECK([FORKED], [MINIXML], [mxml],
|
||||
[mxmlNewElement], [mxml.h],
|
||||
|
@ -186,6 +187,7 @@ AM_PATH_GPG_ERROR([1.6])
|
|||
FORK_FUNC_REQUIRE([FORKED], [GNUPG Error Values], [GPG_ERROR_MT], [gpg-error],
|
||||
[gpg_err_init], [gpg-error.h])
|
||||
|
||||
|
||||
AC_CHECK_HEADER([sys/eventfd.h], [AC_CHECK_FUNCS([eventfd])])
|
||||
|
||||
AC_CHECK_HEADER([sys/timerfd.h], [AC_CHECK_FUNC([timerfd_create],
|
||||
|
@ -266,10 +268,6 @@ FORK_ARG_WITH_CHECK([FORKED_OPTS], [libwebsockets support], [libwebsockets], [LI
|
|||
[libwebsockets >= 2.0.2])
|
||||
AM_CONDITIONAL([COND_LIBWEBSOCKETS], [[test "x$with_libwebsockets" = "xyes"]])
|
||||
|
||||
dnl Build with libsodium
|
||||
FORK_ARG_WITH_CHECK([FORKED_OPTS], [libsodium support], [libsodium], [LIBSODIUM],
|
||||
[libsodium], [sodium_init], [sodium.h])
|
||||
|
||||
dnl Build with libevent_pthreads
|
||||
FORK_ARG_WITH_CHECK([FORKED_OPTS], [libevent_pthreads support],
|
||||
[libevent_pthreads], [LIBEVENT_PTHREADS], [libevent_pthreads],
|
||||
|
@ -327,27 +325,10 @@ AM_CONDITIONAL([COND_PROTOBUF_OLD], [[test "x$protobuf_old" = "xyes"]])
|
|||
dnl DB profiling support
|
||||
FORK_ARG_ENABLE([DB profiling support], [dbprofile], [DB_PROFILE])
|
||||
|
||||
dnl iTunes playlists with libplist
|
||||
FORK_ARG_DISABLE([iTunes Music Library XML support], [itunes], [ITUNES],
|
||||
[AS_IF([[test "x$with_libplist" = "xno"]],
|
||||
[AC_MSG_ERROR([[iTunes Music Library XML support requires libplist]])])
|
||||
])
|
||||
AM_CONDITIONAL([COND_ITUNES], [[test "x$enable_itunes" = "xyes"]])
|
||||
|
||||
dnl MPD support
|
||||
FORK_ARG_DISABLE([MPD client protocol support], [mpd], [MPD])
|
||||
AM_CONDITIONAL([COND_MPD], [[test "x$enable_mpd" = "xyes"]])
|
||||
|
||||
dnl Apple device verification
|
||||
FORK_ARG_DISABLE([Apple TV device verification], [verification], [RAOP_VERIFICATION],
|
||||
[
|
||||
AS_IF([[test "x$with_libsodium" = "xno"]],
|
||||
[AC_MSG_ERROR([[Apple TV device verification requires libsodium]])])
|
||||
AS_IF([[test "x$with_libplist" = "xno"]],
|
||||
[AC_MSG_ERROR([[Apple TV device verification requires libplist]])])
|
||||
])
|
||||
AM_CONDITIONAL([COND_RAOP_VERIFICATION], [[test "x$enable_verification" = "xyes"]])
|
||||
|
||||
dnl Include default webinterface
|
||||
FORK_ARG_DISABLE([Include default web interface], [webinterface], [WEBINTERFACE],
|
||||
[AS_IF([[test "x$with_libwebsockets" = "xno"]],
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
|
||||
sbin_PROGRAMS = forked-daapd
|
||||
|
||||
if COND_ITUNES
|
||||
ITUNES_SRC=library/filescanner_itunes.c
|
||||
endif
|
||||
|
||||
if COND_SPOTIFY
|
||||
SPOTIFY_SRC=spotify.c spotify.h spotify_webapi.c spotify_webapi.h inputs/spotify.c
|
||||
endif
|
||||
|
@ -25,10 +21,8 @@ if COND_MPD
|
|||
MPD_SRC=mpd.c mpd.h
|
||||
endif
|
||||
|
||||
if COND_RAOP_VERIFICATION
|
||||
RAOP_VERIFICATION_SRC=outputs/pair_fruit.c outputs/pair_homekit.c outputs/pair.c outputs/pair-internal.h outputs/pair.h
|
||||
PAIR_AP_SRC=outputs/pair_fruit.c outputs/pair_homekit.c outputs/pair.c outputs/pair-internal.h outputs/pair.h
|
||||
AM_CPPFLAGS += -DCONFIG_GCRYPT
|
||||
endif
|
||||
|
||||
if COND_ALSA
|
||||
ALSA_SRC=outputs/alsa.c
|
||||
|
@ -103,7 +97,7 @@ forked_daapd_SOURCES = main.c \
|
|||
cache.c cache.h \
|
||||
library/filescanner.c library/filescanner.h \
|
||||
library/filescanner_ffmpeg.c library/filescanner_playlist.c \
|
||||
library/filescanner_smartpl.c $(ITUNES_SRC) \
|
||||
library/filescanner_smartpl.c library/filescanner_itunes.c \
|
||||
library/rssscanner.c \
|
||||
library.c library.h \
|
||||
$(MDNS_SRC) mdns.h \
|
||||
|
@ -134,8 +128,7 @@ forked_daapd_SOURCES = main.c \
|
|||
inputs/file.c inputs/http.c inputs/pipe.c inputs/timer.c \
|
||||
outputs.h outputs.c \
|
||||
outputs/rtp_common.h outputs/rtp_common.c \
|
||||
outputs/raop.c $(RAOP_VERIFICATION_SRC) \
|
||||
outputs/airplay.c \
|
||||
outputs/raop.c outputs/airplay.c $(PAIR_AP_SRC) \
|
||||
outputs/streaming.c outputs/dummy.c outputs/fifo.c \
|
||||
$(ALSA_SRC) $(PULSEAUDIO_SRC) $(CHROMECAST_SRC) \
|
||||
evrtsp/rtsp.c evrtsp/evrtsp.h evrtsp/rtsp-internal.h evrtsp/log.h \
|
||||
|
|
10
src/misc.c
10
src/misc.c
|
@ -57,11 +57,6 @@ static char *buildopts[] =
|
|||
#else
|
||||
"libav",
|
||||
#endif
|
||||
#ifdef ITUNES
|
||||
"iTunes XML",
|
||||
#else
|
||||
"Without iTunes XML",
|
||||
#endif
|
||||
#ifdef SPOTIFY
|
||||
"Spotify",
|
||||
#else
|
||||
|
@ -82,11 +77,6 @@ static char *buildopts[] =
|
|||
#else
|
||||
"Without MPD",
|
||||
#endif
|
||||
#ifdef RAOP_VERIFICATION
|
||||
"Device verification",
|
||||
#else
|
||||
"Without device verification",
|
||||
#endif
|
||||
#ifdef HAVE_LIBWEBSOCKETS
|
||||
"Websockets",
|
||||
#else
|
||||
|
|
|
@ -64,10 +64,7 @@
|
|||
#include "dmap_common.h"
|
||||
#include "rtp_common.h"
|
||||
#include "outputs.h"
|
||||
|
||||
#ifdef RAOP_VERIFICATION
|
||||
#include "pair.h"
|
||||
#endif
|
||||
|
||||
#define ALAC_HEADER_LEN 3
|
||||
|
||||
|
@ -222,11 +219,9 @@ struct raop_session
|
|||
unsigned short control_port;
|
||||
unsigned short timing_port; // ATV4 has this set to 0, but it is not used by forked-daapd anyway
|
||||
|
||||
#ifdef RAOP_VERIFICATION
|
||||
/* Device verification, see pair.h */
|
||||
struct pair_verify_context *pair_verify_ctx;
|
||||
struct pair_setup_context *pair_setup_ctx;
|
||||
#endif
|
||||
|
||||
int server_fd;
|
||||
|
||||
|
@ -1658,7 +1653,6 @@ raop_send_req_options(struct raop_session *rs, evrtsp_req_cb cb, const char *log
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef RAOP_VERIFICATION
|
||||
static int
|
||||
raop_send_req_pin_start(struct raop_session *rs, evrtsp_req_cb cb, const char *log_caller)
|
||||
{
|
||||
|
@ -1696,14 +1690,6 @@ raop_send_req_pin_start(struct raop_session *rs, evrtsp_req_cb cb, const char *l
|
|||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
static int
|
||||
raop_send_req_pin_start(struct raop_session *rs, evrtsp_req_cb cb, const char *log_caller)
|
||||
{
|
||||
DPRINTF(E_LOG, L_RAOP, "Device '%s' requires verification, but forked-daapd was built with --disable-verification\n", rs->devname);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* ------------------------------ Session handling -------------------------- */
|
||||
|
@ -3987,7 +3973,6 @@ raop_cb_startup_options(struct evrtsp_request *req, void *arg)
|
|||
/* ------------------------- tvOS device verification ----------------------- */
|
||||
/* e.g. for the ATV4 (read it from the bottom and up) */
|
||||
|
||||
#ifdef RAOP_VERIFICATION
|
||||
static int
|
||||
raop_pair_response_process(int step, struct evrtsp_request *req, struct raop_session *rs)
|
||||
{
|
||||
|
@ -4365,16 +4350,6 @@ raop_device_authorize(struct output_device *device, const char *pin, int callbac
|
|||
return 1;
|
||||
}
|
||||
|
||||
#else
|
||||
static int
|
||||
raop_pair_verify(struct raop_session *rs)
|
||||
{
|
||||
DPRINTF(E_LOG, L_RAOP, "Device '%s' requires verification, but forked-daapd was built with --disable-verification\n", rs->devname);
|
||||
|
||||
return -1;
|
||||
}
|
||||
#endif /* RAOP_VERIFICATION */
|
||||
|
||||
|
||||
/* ------------------ RAOP devices discovery - mDNS callback ---------------- */
|
||||
/* Thread: main (mdns) */
|
||||
|
@ -4995,7 +4970,5 @@ struct output_definition output_raop =
|
|||
.metadata_prepare = raop_metadata_prepare,
|
||||
.metadata_send = raop_metadata_send,
|
||||
.metadata_purge = raop_metadata_purge,
|
||||
#ifdef RAOP_VERIFICATION
|
||||
.device_authorize = raop_device_authorize,
|
||||
#endif
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue