Replacing the antlr parsers solves multiple issues:
- Build warnings (issue #307)
- Build hacks: "-Xconversiontimeout 30000" and other Makefile magic
- Incorrect parsing of daap queries with sql wildcards (like 'tag:*tes%t_ng*')
- Infinite recursion/memory/CPU (issue #570 and #1248)
- systemd service file workarounds due to memory/CPU issue
- ANTLR3 being replaced with ANTLR4 (that doesn't support C file generation)
- Runtime dependency on antlr library
- Difficult installs of ANTLR3 on some systems (special install script)
Added support for using curl in addition to wget. Added support for compiling
as non-root, and installing later as root w/o sudo. Added GNU Make check.
Made all downloads and urls vars at top of script. Added usage.
Allow cancelling downloads, or using exiting downloaded files (offline).
Allow setting any install prefix. Auto-detect if on 64bit OS.
Better handling of various errors.
Added Usage help, allow a custom config-file, provide better feedback
with unable to read logs or write to media directory. Fixed log parsing
to only look for pairing success or failure after most recent remote
discovery to allow repeated pairing attempts (possibly with different
remotes). Better timeout handling, especially as FreeBSD has a delay
in processing the pairing file.
Filescanner was broken in FreeBSD. Besides fixing this, using
libinotify instead of kqueue directly should make the code easier
to maintain, since it will be less divergent.
This commit includes these changes:
- Add libinotify to FreeBSD install scripts
- Fix reading multiple events from inotify fd (possible bug in Linux too)
- Deferred scanning since FreeBSD doesn't have IN_CLOSE_WRITE
- Configure search for inotify library
- Removal of kqueue stuff
Before the fix, a log entry for ‘Foo’s iPhone’ would be parsed as
originating from the device “Foo”. I have changed the matching to
include the parenthesis opening after the closing single quote.
This is beneficial because 3.4 is broken under Java 8. It appears that
the C library didn't change in 3.5 so the 3.4 tarball is still used
for that part.
Name of remote in pair.remote was "-e $remote"
Log: [2015-02-26 21:00:16] [ LOG] remote: Remote '-e remoteXX' not known from mDNS, ignoring
Removing "-e" option works as expected.