LibreTime v3.0.0 Release Notes

Release Date: 2019-04-22 // over 3 years ago
  • ๐Ÿ“š The complete LibreTime documentation is available at libretime.org.

    ๐Ÿš€ The full tarball for the 3.0.0-alpha.7 release of LibreTime is available here.

    ๐Ÿš€ Since this is an alpha release there will be bugs in the code. Please report new issues and/or feature requests in the issue tracker. Join our discourse if you need help and for general discussion.

    Table of Contents

    • ๐Ÿ”‹ Features
    • ๐Ÿ›  Bugfixes
    • ๐Ÿ—„ Deprecated Features
    • Contributors
    • Installation
    • โšก๏ธ Updating
    • ๐Ÿ—„ Deprecation Announcement for Debian 8 (Jessie)
    • Known Issues
      • Installer Issues
      • Media-Monitor config needs manual removing
      • Outdated silan reports unreliable cue in/out information
      • Liquidsoap support
      • No watched folder support
      • No Line In recording support
      • Playout wont work if locale is missing
      • Lack of i18n toolchain is disturbing

    ๐Ÿ”‹ Features

    • 0๏ธโƒฃ Set default focus to search field on library page.
    • PHP 7.2 and 7.3 compatibility (for Ubuntu 18.04.1 LTS (Bionic Beaver) and other modern distros)
    • ๐Ÿ“‡ "Podcast Album Override" is now "Podcast Metadata Override " and additionally overrides the track title with the title from the RSS feed. The artist field is set to the podcast name in LibreTime.
    • ๐Ÿ‘ Allowed users to customize the title of podcasts
    • 0๏ธโƒฃ Disabled the creation of smartblocks and playlists for new podcasts by default and added a generate button under the edit podcast tab
    • ๐Ÿ‘ Better libvirt integration in Vagrant setup.
    • ๐Ÿ‘ Debian 11 (Buster) support
    • โž• Add columns for uploaded and genre to default library view, sorts it by uploaded and removes album column by default
    • โž• Add more details to the information returned by the API onAirLightAction call
    • โšก๏ธ Update Spanish translations
    • ๐Ÿ‘ Allow admins to edit the owner of a track
    • โž• Added system-wide intro and outro playlists for autoloading playlists
    • โž• Added show-source info to live-info-v2 API
    • ๐Ÿ“š Update much of the documentation
    • ๐Ÿ‘ Allow program managers to view listeners statistics

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix DOS line-endings in vendorized PHP dependencies for packaging.
    • ๐Ÿ›  Fix overlapping show names if show does not fit in calendar.
    • Fall back to treating file as MP3 if it isn't recognized by mutagen.
    • โœ‚ Remove defunct support-setting page.
    • โœ‚ Remove legacy AAC code, fix AAC support for SHOUTcast.
    • Display Settings menu for all users.
    • ๐Ÿ‘‰ Make "Time Remaining" Smartblock work in Playlist.
    • ๐Ÿ›  Fix non-audio enclosure crash when importing badly formed podcast feeds
    • ๐Ÿ›  Fix flac files not playing out
    • ๐Ÿ›  Fix 500 error when making API call onAirLightAction
    • ๐Ÿ›  Fix warning message shown in schedule API call
    • ๐Ÿ›  Fix bug where many empty playlists were created when using autoloading
    • Passed show variable to smartblocks loaded via playlist to fix time remaining smartblocks with autoloading playlists.
    • โช Restore top right user setting link and logout link to UI
    • ๐Ÿ›  Fix an unnecessary type conversion to seconds that caused errors with PHP 7.2
    • ๐Ÿ›  Fix import errors on podcast episodes with long descriptions
    • ๐Ÿ›  Fix issue with multiple time remaining smartblocks in a single playlist not detecting remaining time correctly
    • ๐Ÿ›  Fix occasional empty administration page due to null previous file reference

    ๐Ÿ—„ Deprecated Features

    • ๐Ÿ‘€ We are beginning to phase out support for Debian 8 (Jessie). See the announcement for more details.

    Contributors

    ๐Ÿš€ The LibreTime project wants to thank the following contributors for adding PRs to this release: @robbt @frecuencialibre @detobate @greenjon @xabispacebiker @mikeopensauce @paddatrapper @hairmare @ryanrain

    Installation

    ๐Ÿ“„ The main installation docs may be found at http://libretime.org/install/. They describe a "developer" install using the bundled install script.

    ๐Ÿš€ We are preparing packages for supported distros and you can take those for a spin if you would like to. Usually the packages get built pretty soon after a release is published. If the current version is not available from the below sources you should wait for a while until they get uploaded.

    โšก๏ธ Please reference these links for further information on how to install from packages. The install docs will get updated to show how to install packages once we have validated that the packages work properly and when the packages are available from a repository allowing you to automate updating to a new version.

    โšก๏ธ Updating

    โšก๏ธ See the docs for complete information on updating. Please ensure that you have proper backups and a rollback scenario in place before updating.
    โšก๏ธ If the update does not go smoothly, it may cause significant downtime, so you should always have a fallback system available during the update to ensure broadcast continuity.

    ๐ŸŒ If you installed from GitHub you can git pull in your local working copy and re-run the ./install script with the same --web-root and --web-user arguments you used during the initial install. Tarball users can leave out the git pull part and just call the new version of the install script.

    โšก๏ธ Updating from 3.0.0-alpha, 3.0.0-alpha.1 and, 3.0.0-alpha.2

    ๐Ÿ”ง The configuration file structure has changed. Please move the contents of the /etc/airtime/cloud_storage.conf and /etc/airtime/rabbitmq-analyzer.ini files into the main /etc/airtime/airtime.conf. In all known cases you need to add the following section to the file.

    [current\_backend]storage\_backend=file
    

    ๐Ÿšš You can then remove the files and the symlink.

    rm /etc/airtime/cloud\_storage.conf \ /etc/airtime/rabbitmq-analyzer.ini \ /etc/airtime/production
    

    ๐Ÿšš While you're at you may also want to remove the amazon_s3 section if it was in any of the files.

    Analyzer grabs all the needed info from the main airtime.conf file starting with 3.0.0-alpha.7.

    ๐Ÿ—„ Deprecation Announcement for Debian 8 (Jessie)

    ๐Ÿ‘ Up until 3.0.0-alpha.7 Debian 8 (Jessie) was in the list of supported distros.

    ๐Ÿš€ Given that Debian 9 (Stretch) is now available and Jessie is EOL since June 2018 LibreTime has to update its support matrix. This info is in the release notes as an early warning since we are deprecating a major os version with an upcoming release.

    Known Issues

    โ†ช The following issues may need a workaround for the time being. Please search the issues before reporting problems not listed below.

    Installer Issues

    ๐Ÿ“ฆ The installer is generally a bit unstable, we hope to be able to offer some reasonable packages at some point. Some of the GUI driven parts before the first login are also in a somewhat questionable state, ymmv.

    ๐Ÿš€ For now the installer distro selection is pretty good at auto-detecting your os and usually does an ok job depending on your distro. You should usually not need to pass a --distribution and --release parameter, those are still supported for the time being but their use is not recommended.

    ๐Ÿ’ป The UI works best if you don't use it in an opinionated fashion and change just the bare minimal.

    ๐Ÿ“„ If you want a secure environment you should work through the preparing the server docs (up until the dragons) and be prepared to fix some of the issues the installer gets wrong manually by hacking the config file after the fact.

    ๐Ÿ— If you want to skip the installer GUI completely you can configure LibreTime using airtime_mvc/build/airtime.example.conf as an template. Due to some python/PHP differences you must remove all comments from the example to use it ๐Ÿ˜ž. You'll also have to create some folder structures manually and check if the music dir got properly created directly in the database. Referencing a second install -fiap install on a non productive system for reference can help with this type of bootstrap.

    Media-Monitor config needs manual removing

    ๐Ÿšš If you are using the install script you should most likely remove the [media-monitor] config section from your /etc/airtime/airtime.conf file to ensure you do not run into the problems described in
    ๐Ÿš€ #450. We recommend you do this before running the update since there are no known LibreTime releases that depend on the config value.

    Outdated silan reports unreliable cue in/out information

    ๐Ÿ— Out of the box the installer installs a broken, outdated version of silan (0.3.2) on some Debian based Platforms (ie. Ubuntu). This affects Ubuntu 16.04, Debian Jessie and Debian Stretch. CentOS does not have upstream packages and you may either install from source or use the 0.3.3 packages from RaBe APEL.

    ๐Ÿ‘€ Check your version of silan by running silan --version. This should report 0.3.3 or higher. If not please see the Silan Installation wiki page for more details & workarounds.

    ๐Ÿ“ฆ To date silan 0.3.3 or higher is in Debian testing & Ubuntu Bionic. You can check the upstream progress the Debian PTS and Ubuntu launchpad. This section will get removed once the package is in stable.

    tldr: Silan Installation

    ๐Ÿ‘ Liquidsoap Support

    ๐Ÿ— Libretime currently only supports liquidsoap < 1.3.0 out of the box. If you install a current version of liquidsoap using OPAM or through the Rabe Liquidsoap Distribution for CentOS (RaBe LSD) you will most likely have liquidsoap 1.3.2 or 1.3.3 installed.

    #352 reports that liquidsoap < 1.3.0 can exhibit issues on Debian Stretch installs. One fix for the issue is to install liquidsoap 1.3.0 and to use the following patching steps.

    You can check your liquidsoap version by running liquidsoap --version.

    If you already have liquidsoap >= 1.3.0 you have a couple of options.

    Liquidsoap 1.3.0 Patchset (#192)

    ๐Ÿ‘ You can patch your installation of LibreTime to support liquidsoap 1.3.0.

    An up to date patch is available through GitHub and can be applied to an unpacked tarball as follows.

    cd libretime-3.0.0-alpha.7/ curl -L https://github.com/LibreTime/libretime/compare/master...radiorabe:feature/liquidsoap-1.3.0.patch | patch -p1
    

    Git users can pull from the branch at master...radiorabe:feature/liquidsoap-1.3.0 directly.

    Install old liquidsoap from opam (#192)

    โฌ‡๏ธ You can downgrade an OPAM install of liquidsoap by running the following command.

    opam install "liquidsoap\<1.3.0"
    

    ๐Ÿ‘ No watched folder support

    ๐ŸŒ Currently LibreTime does not support watching folders. Uploading files through the web interface works fine and can be automated via a REST API. Re-implementing watched folder support is on the roadmap. Please consider helping out with the code to help speed things along if you want to use the feature.

    ๐Ÿ‘ No line in support

    ๐Ÿ‘ This feature went missing from LibreTime due to the fact that we based our code off of the saas-dev branch of legacy upstream and support for recording hasn't been ported to the new airtime analyzer ingest system. #42 currently tracks the progress being made on line in recording.

    Playout wont work if locale is missing

    ๐Ÿ‘€ Some minimal OS installs do not have a default locale configured. This only seems to affect some VPS installs as they often do not have a locale setup in the default images provided.

    ๐Ÿ“š You can set up the locale using a combination of the following commands. You might also want to consult the documentation of your VPS provider as it may contain an official way to set up locales when provisioning a VPS.

    # Set locale using systemds localectllocalectl set-locale LANG="en\_US.utf8"
    

    โšก๏ธ These instructions do not seem to work on all Debian based distros so you might need to use update-locale as follows.

    #Purge all locales but en_US.UTF-8
    sudo locale-gen --purge en_US.UTF-8
    #Populate LANGUAGE=
    sudo update-locale LANGUAGE="en_US.UTF-8"
    

    Lack of i18n toolchain is disturbing

    ๐ŸŒ Some translations might miss the tarball. They didn't get lost, but the build chain needs fixing. Work is in #301 and additional work is needed as it has become clear that we probably want to support bidirectional translation syncing with zanata.


Previous changes from v3.0.0-alpha.6

  • ๐Ÿ“š The complete LibreTime documentation is available at libretime.org.

    ๐Ÿš€ The full tarball for the 3.0.0-alpha.6 release of LibreTime is available here.

    ๐Ÿš€ Since this is an alpha release there will be bugs in the code. Please report new issues and/or feature requests in the issue tracker.

    Table of Contents

    • ๐Ÿ”‹ Features
    • ๐Ÿ›  Bugfixes
    • ๐Ÿ—„ Deprecated Features
    • Installation
    • โšก๏ธ Updating
    • Known Issues
      • Installer Issues
      • Media-Monitor config needs manual removing
      • Outdated silan reports unreliable cue in/out information
      • Liquidsoap support
      • No watched folder support
      • No Line In recording support
      • Playout wont work if locale is missing
      • Lack of i18n toolchain is disturbing
    • Colophon

    ๐Ÿ”‹ Features

    • 0๏ธโƒฃ Turn on the podcast album override by default on new installs.
    • Ubuntu 18.04 (Bionic) developer tooling.
    • ๐Ÿ”ง Collapse advanced configuration in show edit form.
    • Clock icon in calendar for autoloading playlists.
    • Let user edit podcast name.
    • 0๏ธโƒฃ Default to creating dynamic smartblock when creating new smartblocks.
    • ๐Ÿ”ง Move advanced smartblock configuration to collapsed "Advanced options" section.
    • Assume "Y" as answer for questions during installer.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix sizing for playlist and smart block on shorter screens.
    • โฑ Increased celery timeout to 1800 seconds (affects podcast downloads and other tasks like things related to the soundcloud integration).
    • โœ‚ remove some obsolete scripts from utils/.
    • ๐Ÿ›  Fix version check for cases where GitHub is not available or temporarily fails.
    • โฑ Clarify wording for "Autoloading Playlist" (used to be called "Auto Schedule" or other names).
    • โœ‚ Remove "Record & Rebroadcast" from ui.
    • ๐Ÿ›  Fix scrolling issue in "Add Show" dialog.
    • ๐Ÿ‘ Allow ampersand in smartblock search criteria.
    • ๐Ÿ›  Fix display of selected tracks in Smartblock criteria.
    • โž• Add docs into enriched tarball for packagers.
    • ๐Ÿ‘Œ Improve filling smartblocks, they should not get overscheduled rather than not getting filled up all the way.
    • โœ‚ Remove broken ReCaptcha.
    • ๐Ÿ›  Fix reading metadata from non-mp3 sources (in podcasts and uploads).
    • ๐Ÿ“‡ Update mutagen to fix some edge cases when reading metadata from files in analyzer.
    • ๐Ÿ›  Fix shuffling playlists that contain a smart block.
    • โœ‚ Remove unused zfdebug from dev environment.

    ๐Ÿ—„ Deprecated Features

    • ๐Ÿš€ The contents of /etc/airtime/cloud_storage.conf and /etc/airtime/rabbitmq-analyzer.ini have been moved to the main /etc/airtime/airtime.conf file and the env specific symlink is no longer needed. See below for instructions on how to migrate from a pre-release that created those files.
    • ๐Ÿš€ As per the announcement in the 3.0.0-alpha.5 release notes we are dropping Ubuntu 14.04 (Trusty) as a supported platform.
    • โœ‚ Removed Amazon S3 storage support.
    • โœ‚ Remove "Record & Rebroadcast" from ui.

    Installation

    ๐Ÿ“„ The main installation docs may be found at http://libretime.org/install/. They describe a "developer" install using the bundled install script.

    ๐Ÿš€ We are preparing packages for supported distros and you can take those for a spin if you would like to. Usually the packages get built pretty soon after a release is published. If the current version is not available from the below sources you should wait for a while until they get uploaded.

    โšก๏ธ Please reference these links for further information on how to install from packages. The install docs will get updated to show how to install packages once we have validated that the packages work properly and when the packages are available from a repository allowing you to automate updating to a new version.

    โšก๏ธ Updating

    โšก๏ธ See the docs for complete information on updating. Please ensure that you have proper backups and a rollback scenario in place before updating.
    โšก๏ธ If the update does not go smoothly, it may cause significant downtime, so you should always have a fallback system available during the update to ensure broadcast continuity.

    ๐ŸŒ If you installed from GitHub you can git pull in your local working copy and re-run the ./install script with the same --web-root and --web-user arguments you used during the initial install. Tarball users can leave out the git pull part and just call the new version of the install script.

    โšก๏ธ Updating from 3.0.0-alpha, 3.0.0-alpha.1 and, 3.0.0-alpha.2

    ๐Ÿ”ง The configuration file structure has changed. Please move the contents of the /etc/airtime/cloud_storage.conf and /etc/airtime/rabbitmq-analyzer.ini files into the main /etc/airtime/airtime.conf. In all known cases you need to add the following section to the file.

    [current\_backend]storage\_backend=file
    

    ๐Ÿšš You can then remove the files and the symlink.

    rm /etc/airtime/cloud\_storage.conf \ /etc/airtime/rabbitmq-analyzer.ini \ /etc/airtime/production
    

    ๐Ÿšš While you're at you may also want to remove the amazon_s3 section if it was in any of the files.

    Analyzer grabs all the needed info from the main airtime.conf file starting with 3.0.0-alpha.6.

    Known Issues

    โ†ช The following issues may need a workaround for the time being. Please search the issues before reporting problems not listed below.

    Installer Issues

    ๐Ÿ“ฆ The installer is generally a bit unstable, we hope to be able to offer some reasonable packages at some point. Some of the GUI driven parts before the first login are also in a somewhat questionable state, ymmv.

    ๐Ÿš€ For now the installer distro selection is pretty good at auto-detecting your os and usually does an ok job depending on your distro. You should usually not need to pass a --distribution and --release parameter, those are still supported for the time being but their use is not recommended.

    ๐Ÿ’ป The ui works best if you don't use it in an opinionated fashion and change just the bare minimal.

    ๐Ÿ“„ If you want a secure environment you should work through the preparing the server docs (up until the dragons) and be prepared to fix some of the issues the installer gets wrong manually by hacking the config file after the fact.

    ๐Ÿ— If you want to skip the installer GUI completely you can configure LibreTime using airtime_mvc/build/airtime.example.conf as an template. Due to some python/PHP differences you must remove all comments from the example to use it ๐Ÿ˜ž. You'll also have to create some folder structures manually and check if the music dir got properly created directly in the database. Referencing a second install -fiap install on a non productive system for reference can help with this type of bootstrap.

    Media-Monitor config needs manual removing

    ๐Ÿšš If you are using the install script you should most likely remove the [media-monitor] config section from your /etc/airtime/airtime.conf file to ensure you do not run into the problems described in
    ๐Ÿš€ #450. We recommend you do this before running the update since there are no known LibreTime releases that depend on the config value.

    Outdated silan reports unreliable cue in/out information

    ๐Ÿ— Out of the box the installer installs a broken, outdated version of silan on some Debian based Platforms (ie. Ubuntu). This affects all distros supported by the installer except Debian testing which has the silan 0.3.3 and CentOS which does not have upstream packages and you may either install from source or use the 0.3.3 packages from RaBe APEL.

    ๐Ÿ‘€ Check your version of silan by running silan --version. This should report 0.3.3 or higher. If not please see the Silan Installation wiki page for more details & workarounds.

    ๐Ÿ“ฆ To date silan 0.3.3 or higher is in Debian testing & Ubuntu Bionic. You can check the upstream progress the Debian PTS and Ubuntu launchpad. This section will get removed once the package is in stable.

    tldr: Silan Installation

    ๐Ÿ‘ Liquidsoap Support

    ๐Ÿ— Libretime currently only supports liquidsoap < 1.3.0 out of the box. If you install a current version of liquidsoap using OPAM or through the Rabe Liquidsoap Distribution for CentOS (RaBe LSD) you will most likely have liquidsoap 1.3.2 or 1.3.3 installed.

    #352 reports that liquidsoap < 1.3.0 can exhibit issues on some Debian based installs. One fix for the issue is to install liquidsoap 1.3.0 and to use the following patching steps. Kyle from silan fame is taking the needed steps to get liquidsoap maintained again in Debian so we expect the situation to improve over time.

    You can check your liquidsoap version by running liquidsoap --version.

    If you already have liquidsoap >= 1.3.0 you have a couple of options.

    Liquidsoap 1.3.0 Patchset (#192)

    ๐Ÿ‘ You can patch your installation of LibreTime to support liquidsoap 1.3.0.

    An up to date patch is available through GitHub and can be applied to an unpacked tarball as follows.

    cd libretime-3.0.0-alpha.6/ curl -L https://github.com/LibreTime/libretime/compare/master...radiorabe:feature/liquidsoap-1.3.0.patch | patch -p1
    

    Git users can pull from the branch at master...radiorabe:feature/liquidsoap-1.3.0 directly.

    Install old liquidsoap from opam (#192)

    โฌ‡๏ธ You can downgrade an OPAM install of liquidsoap by running the following command.

    opam install "liquidsoap\<1.3.0"
    

    ๐Ÿ‘ No watched folder support

    ๐ŸŒ Currently LibreTime does not support watching folders as described in the manual. Uploading files through the web interface works fine and can be automated via a REST API. Re-implementing watched folder support is on the roadmap. Please consider helping out with the code to help speed things along if you want to use the feature.

    ๐Ÿ‘ No line in support

    ๐Ÿ‘ This feature went missing from LibreTime due to the fact that we based our code off of the saas-dev branch of legacy upstream and support for recording hasn't been ported to the new airtime analyzer ingest system. #42 currently tracks the progress being made on line in recording.

    Playout wont work if locale is missing

    ๐Ÿ‘€ Some minimal OS installs do not have a default locale configured. This only seems to affect some VPS installs as they often do not have a locale setup in the default images provided.

    ๐Ÿ“š You can set up the locale using a combination of the following commands. You might also want to consult the documentation of your VPS provider as it may contain an official way to set up locales when provisioning a VPS.

    # Set locale using systemds localectllocalectl set-locale LANG="en\_US.utf8"
    

    โšก๏ธ These instructions do not seem to work on all Debian based distros so you might need to use update-locale as follows.

    #Purge all locales but en_US.UTF-8
    sudo locale-gen --purge en_US.UTF-8
    #Populate LANGUAGE=
    sudo update-locale LANGUAGE="en_US.UTF-8"
    

    Lack of i18n toolchain is disturbing

    ๐ŸŒ Some translations might miss the tarball. They didn't get lost but the build chain needs fixing. Work is in #301 and additional work is needed as it has become clear that we probably want to support bidirectional translation syncing with zanata.

    Colophon

    ๐Ÿฑ I would like to use this space to extend a warm welcome to our new Maintainers @paddatrapper, @frecuencialibre and @ned-kelly. We are happy to have you on board. Thank you very much for helping maintain LibreTime โค๏ธ