* Fixed a bug in rdairplay(1) and rdvairplayd(1) that caused
spurious service information to by generated by the PAD subsystem
when updating events in a null log.
* Fixed a bug in rdairplay(1) and rdvairplayd(1) that threw a
segfault when playing an event in a null log.
* Changed the value of RD_DEFAULT_PYPAD_OWNER to 'pypad'.
* Changed the value of RD_DEFAULT_PYPAD_GROUP to 'pypad'.
* Fixed a bug that caused creation of the 'pypad' system user
to fail.
* Changed the PyPAD namespace from 'PyPAD' to 'pypad'.
* Changed the installation location of PyPAD scripts from
'@libdir@/rivendell/PyPAD/' to '@libdir@/rivendell/pypad/'.
* Removed 'apis/rlm/'.
* Removed the 'Edit Now & Next' button from the 'Configure RDAirPlay'
dialog in rdadmin(1).
* Removed RLM support from rdairplay(1) and rdvairplayd(8).
* Removed v1.x legacy PAD update support from rdairplay(1).
* Dropped the 'NOWNEXT_PLUGINS' table from the database.
* Dropped the 'LOG_MACHINES.UDP_ADDR' field from the database.
* Dropped the 'LOG_MACHINES.UDP_PORT' field from the database.
* Dropped the 'LOG_MACHINES.UDP_STRING' field from the database.
* Dropped the 'LOG_MACHINES.LOG_RML' field from the database.
* Incremented the database version to 305.
* Added a 'lineNumber' parameter to the 'padUpdate' structure.
* Added a 'FIELD_LINE_NUMBER' data value to PyPAD.
* Defined the '%z' metadata wildcard to refer to log line number.
* Added a 'lineId' parameter to the 'padUpdate' structure.
* Added 'FIELD_LINE_ID' data value to PyPAD.
* Defined the '%x' metadata wildcard to refer to log line ID.
* Renamed the RD_RLM2_CLIENT_TCP_PORT define to RD_PAD_CLIENT_TCP_PORT.
* Renamed the RD_RLM_SOURCE_UNIX_ADDRESS define to
RD_PAD_SOURCE_UNIX_ADDRESS.
* Added a RD_PYPAD_SCRIPT_DIR define.
* Added an 'RDNotification::PypadType' value to the
'RDNotification::Type' enumeration.
* Added 'PypadOwner=' and 'PypadGroup=' directives to the
'[Identity]' section of rd.conf(5).
* Added an rdpadengined(8) service.
* Added a 'PYPAD_INSTANCES.IS_RUNNING' field to the database.
* Added a 'PYPAD_INSTANCES.EXIT_CODE' field to the database.
* Added a 'PYPAD_INSTANCES.ERROR_TEXT' field to the database.
* Incremented the database version to 304.
* Added a 'PYPAD_INSTANCES' table to the database.
* Incremented the database version to 303.
* Added a 'PyPAD Instances' button to the 'Edit Station' dialog
in rdadmin(1).
* Added a 'ListPyPAD Instances' dialog in rdadmin(1).
* Added an 'Edit PyPAD' Instance' dialog in rdadmin(1).
* Renamed 'apis/PyPAD/examples/pypad_test.py' to
'apisPyPAD/tests/pad_test.py'.
* Added a 'hostName' field to the JSON PAD 'padUpdate' object.
* Added a 'PyPAD.Update::hostName()' method.
* Added a 'shortHostName' field to the JSON PAD 'padUpdate' object.
* Added a 'PyPAD.Update::shortHostName()' method.
* Added a 'PyPAD.Update::resolveFilepath()' method.
* Added 'apis/PyPAD/tests/filepath_test.py.
* Added 'api/PyPAD/examples/pypad_filewrite.py'.
* Changed the name of the JSON PAD field 'logMachine' to 'machine'.
* Changed the name of the 'PyPAD.Update::logMachine()' method to
'PyPAD.Update::machine()'.
* Changed the name of the JSON PAD field 'logMode' to 'mode'.
* Added a 'PyPAD.Update::mode()' method.
* Added a 'cutNumber' field to the JSON PAD 'now' and 'next' objects.
* Added a 'PyPAD.FIELD_CUT_NUMBER' define.
* Added 'api/PyPAD/examples/pypad_test.py'.
* Renamed the 'PyPAD.Update::dateTime()' method to
'PyPAD.Update::dateTimeString()'.
* Changed the format of the 'dateTime' field in the PAD JSON structure
from RFC822 to ISO 8601.
* Added a 'startDateTime' field to the 'now' and 'next' objects in
the PAD JSON structure.
* Added a PAD Type enumeration for use in 'PyPAD.Update'.
* Added 'PyPAD.Update::hasPadType()' and 'PyPAD.Update.startDateTime()'
methods.
* Removed 'PyPAD.Update::hasNowPad()' and 'PyPAD.Update:hasNextPad()'
methods.
* Added support for '%d(<dt>)' and '%D(<dt>)' wildcards in
'PyPAD.Update::padFields()'.
* Added a 'STATIONS.REPORT_EDITOR_PATH' field to the database.
* Incremented the database version to 302.
* Added a 'Report Editor' control to the 'Edit Host' dialog in
rdadmin(1).
* Modified the report generator to use the editor specified in the
'Report Editor' control rather than than the value of the $VISUAL
environmental variable.
* Added a 'SERVICES.INCLUDE_IMPORT_MARKERS' field to the database.
* Added a 'LOGS.INCLUDE_IMPORT_MARKERS' field to the database.
* Incremented the database version to 301.
* Added an 'Inlcude Import Markers in Finished Logs' checkbox to
the 'Edit Service' dialog in rdadmin(1).
* Removed the 'SERVICES.MUS_WIN_PATH', 'SERVICES.MUS_WIN_PREIMPORT_CMD'
'SERVICES.TFC_WIN_PATH', and 'SERVICES.TFC_WIN_PREIMPORT_CMD' fields
from the database.
* Incremented the database version to 300.
* Removed the 'RDSvc::ImportOs' enumeration.
* Removed the 'Windows Import Path' and 'Windows Preimport Command'
fields from the 'Edit Service' dialog in rdadmin(1).
* Added a '--metadata-cart=' switch to the 'audio_convert_test'
test harness.
* Added an 'audio_metadata_test' test harness.
* Modified ID3 tag reading/writing to use TagLib.
* Fixed a regression in rdairplay(1) that caused to the
'Enter Password' dialog to be dispplayed when exiting even if
no exit password had been set.
* Fixed a regression in rdairplay(1) that caused the application
to be closed even if an incorrect response was entered in the
'Enter Password' dialog.
* Consolidated the implementation of the 'RDProfile' class into
two files.
* Added an rdselect_helper(1) SETUID helper program.
* Removed the SETUID bit from rdselect(1).