Skip to content

Releases: libretime/libretime

v4.1.0

05 May 21:45
1a985a4
Compare
Choose a tag to compare

4.1.0 (2024-05-05)

Features

  • api: implement file deletion (#2960) (9757b1b)
  • build schedule events exclusively in playout (#2946) (40b4fc7)
  • legacy: add aac/opus support to dashboard player (#2881) (95283ef)
  • legacy: disable public radio page and redirect to login (#2903) (170d095)
  • legacy: trim overbooked shows after autoloading a playlist (#2897) (a95ce3d)
  • legacy: visual cue point editor (#2947) (da02e74)
  • start celery worker programmatically (#2988) (9c548b3)

Bug Fixes

  • analyzer: backslash non utf-8 data when probing replaygain (#2931) (29f73e0), closes #2910
  • apply replay gain preferences on scheduled files (#2945) (35d0dec)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.49.1 (#2899) (3e05748)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.51.1 (#2963) (22c303c)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.53.1 (#2972) (9192aaa)
  • deps: update dependency gunicorn to v22 (security) (#2993) (a2cf769)
  • incorrect docker compose version (#2975) (634e6e2)
  • installer: setup the worker entrypoint (#2996) (71b20ae)
  • legacy: allow deleting file with api token (#2995) (86da46e)
  • legacy: allow updating track types code (#2955) (270aa08)
  • legacy: avoid crash when lot of streams in configuration (#2915) (12dd477)
  • legacy: ensure validation is performed on the track type form (#2985) (5ad69bf)
  • legacy: fix hidden fields in edit file form (#2932) (f4b260f)
  • legacy: replay_gain_modifier should be a system preference (#2943) (37d1a76)
  • remove obsolete docker compose version (#2982) (fb0584b)
  • trigger legacy tasks manager every 5m (#2987) (7040d0e)
  • worker: ensure celery beat is started (#3007) (bfde17e)

v4.0.0

07 Jan 15:56
4795170
Compare
Choose a tag to compare

4.0.0 (2024-01-07)

⚠ BREAKING CHANGES

  • The media file serving is now handled by Nginx instead of the API service. The storage.path field is now used in the Nginx configuration, so make sure to update the Nginx configuration file if you change it.
  • installer: The default listen port for the installer is now 8080. We recommend that you put a reverse proxy in front of LibreTime.
  • installer: The --update-nginx flag was removed from the installer. The nginx configuration deployed by the installer will now always be overwritten. Make sure to move your customizations to a reverse proxy configuration.
  • The default system output (stream.outputs.system[].kind) changed from alsa to pulseaudio. Make sure to update your configuration file if you rely on the default system output.
  • The general.secret_key configuration field is now required. Make sure to update your configuration file and add a secret key.

Features

Bug Fixes

  • add parent function name in setValue exception (#2777) (c764a5a)
  • api: ensure non ascii paths are handled by X-Accel-Redirect (#2861) (0ce63f3)
  • api: enum schema description (#2803) (976b70e)
  • api: let nginx handle the media file content type (#2862) (72268ad)
  • api: move gunicorn worker config to python file (#2854) (43221d9)
  • api: paths with question marks chars are handled by X-Accel-Redirect (#2875) (b2c1ceb)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.42.1 (main) (#2765) (8ae4dce)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.43.2 (main) (#2848) (62e5f4d)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.45.1 (main) (#2855) (6f84328)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.46.1 (main) (#2868) (4827dbc)
  • legacy: allow uploading opus files (#2804) (f252a16)
  • legacy: declare previously undeclared variable (#2793) (e2cfbf4)
  • legacy: ensure last played criteria works with never played files (#2840) (24ee383)
  • playout: increase file download chunk size to 8192 bytes (#2863) (7ed1be1)
  • playout: remove empty file when the download request failed (#2864) (2facbfa)
  • worker: unbound variable when episode url returns HTTP 404 (#2844) (3f39689)

v3.2.1

22 Dec 20:19
f50e106
Compare
Choose a tag to compare

3.2.1 (2023-12-22)

Bug Fixes

3.2.0

16 Oct 19:37
26737ab
Compare
Choose a tag to compare

💖 Contributors

The LibreTime project wants to thank the following contributors for authoring PRs to this release:

🚀 Features

  • legacy: move session store to database (#2523)
  • api: add email configuration
  • add mobile devices stream config field (#2744)

🐛 Bug fixes

  • playout: liquidsoap aac output syntax errors
  • libretime process leaks and lsof high cpu usage (#2615)

3.1.0

26 May 14:06
Compare
Choose a tag to compare

💖 Contributors

The LibreTime project wants to thank the following contributors for authoring PRs to this release:

🚀 Features

  • drop Ubuntu Bionic support
  • drop Python 3.6 support
  • drop Debian Buster support
  • drop Liquidsoap 1.1 support
  • drop Liquidsoap 1.3 support
  • drop Python 3.7 support
  • drop cc_stream_setting table
  • delete cc_pref stream preferences rows
  • legacy: remove db allowed_cors_origins preference (#2095)
  • configure cue points analysis per track type
  • playout: use jinja2 env for template loading
  • playout: add jinja2 quote filter for liquidsoap
  • playout: use liquidsoap interactive variables
  • playout: remove unused liquidsoap outputs connection status
  • playout: remove unused liquidsoap restart function
  • playout: remove unused liquidsoap output namespace
  • replace loguru with logging
  • playout: use jinja to configure liquidsoap outputs
  • playout: enable vorbis metadata per icecast output
  • playout: use shared app for cli commands
  • installer: configure timezone using timedatectl (#2418)
  • playout: don't serialize message twice
  • add python packages version
  • add sentry sdk
  • use secret_key config field instead of api_key (#2444)
  • api-client: remove unused api v1 calls
  • api-client: rewrite api-client v1 using abstract client
  • playout: move liquidsoap auth to notify cli
  • playout: replace schedule event dicts with objects
  • api: add cors headers middleware (#2479)
  • playout: replace thread timeout with socket timeout
  • remove dev files from tarball
  • include tarball checksums in releases
  • set icecast mount default charset to UTF-8
  • playout: allow harbor ssl configuration
  • api: install gunicorn/uvicorn from pip
  • install inside a python3 venv

🐛 Bug fixes

  • deps: update dependency adbario/php-dot-notation to v3 (#2226)
  • deps: update dependency league/uri to v6.7.2
  • legacy: set platform requirements to php ^7.4
  • playout: remove outdated liquidsoap code
  • playout: add types
  • api: allow single digit version for legacy schema
  • deps: update dependency friendsofphp/php-cs-fixer to <3.12.1
  • remove systemd ProtectHome feature (#2243)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.13.1 (#2249)
  • worker: replace deprecated cgi.parse_header
  • installer: install missing sudo
  • installer: set home and login when running as postgres
  • legacy: add log entry on task run (#2316)
  • legacy: log errors on connect check failure (#2317)
  • deps: update dependency friendsofphp/php-cs-fixer to <3.13.2
  • deps: update dependency friendsofphp/php-cs-fixer to <3.13.3
  • legacy: advanced search by track type id
  • legacy: move forked deps to the libretime namespace
  • deps: update dependency friendsofphp/php-cs-fixer to <3.14.4
  • deps: update dependency friendsofphp/php-cs-fixer to <3.14.5
  • legacy: ensure options is a dict during json encoding
  • legacy: don't use dict assignment on object (#2384)
  • playout: quote escape strings in liquidsoap entrypoint
  • legacy: don't delete audio file when removing artwork (#2395)
  • playout: use explicit ids for liquidsoap components
  • playout: skip the identified queue instead of the current
  • playout: use the same number of schedule queues
  • legacy: on air light fails when no shows are scheduled
  • playout: flush liquidsoap response before sending new
  • playout: use package loader for liquidsoap templates
  • playout: %else isn't defined
  • playout: when shows ends, next shows starts without fade-in/fade-out (#2412)
  • playout: legacy pushes non validated data
  • playout: explicit ogg vorbis icecast encoder
  • playout: prevent unbound variables
  • playout: use int for liquidsoap queues map
  • shared: return type confusion
  • deps: update dependency friendsofphp/php-cs-fixer to <3.15.2
  • api: explicit FileImportStatusEnum in schema
  • pin postgresql version in docker-compose
  • pin rabbitmq version in docker-compose
  • allow overriding docker-compose predefined environment
  • move docker specific setup to dockerfile
  • api: cast string value to int enum (#2461)
  • playout: quote incompatible <py3.9 type hints
  • installer: bump setuptools to ~=67.3 (#2387)
  • playout: use new api-client v1
  • playout: catch oserror in liquidsoap client
  • deps: update dependency friendsofphp/php-cs-fixer to <3.16.1 (main) (#2490)
  • api: require django >=4.2.0,<4.3
  • api: upgrade psycopg to v3.1
  • playout: remove unused ecasound package (#2496)
  • installer: ignore whitespace during diff
  • legacy: don't print track_type id in show builder table (#2510)
  • legacy: remove composer superuser warning (#2515)
  • legacy: keep datatable settings between views (#2519)
  • api: upgrade django code (pre-commit)
  • analyzer: remove unused python3 package
  • deps: update dependency friendsofphp/php-cs-fixer to <3.17.1 (main) (#2556)

⬆️ Upgrading

New general.secret_key configuration

This release adds the general.secret_key configuration field in the configuration file, to prevent reusing the general.api_key for cryptographic usage. If the field is missing, it will fallback to the previous behavior, use the general.api_key and print a warning.

To silence the warning about the missing field, make sure to add the general.secret_key field to your configuration file. The field will be required on the next major release.

Icecast mount default charset

During the first installation, the installer will configure Icecast to use UTF-8 as default charset for mounts. To upgrade an existing installation, you may want to manually apply the changes in the /etc/icecast2/icecast.xml:

    <mount type="default">
        <charset>UTF-8</charset>
    </mount>

Or if only want to set the charset to UTF-8 for specific mounts (for example /main.mp3):

    <mount type="normal">
        <mount-name>/main.mp3</mount-name>
        <charset>UTF-8</charset>
    </mount>

Please, see the documentation for more details.

Unused packages and dependencies

Starting with this release, LibreTime installs gunicorn, uvicorn and pika from PyPi. This renders some previously installed distribution packages useless. You can remove them from your system using the following command:

sudo apt remove gunicorn python3-gunicorn python3-httptools python3-uvicorn python3-uvloop python3-pika

In addition, LibreTime now install its dependencies in a python virtual environment. This renders the python packages that LibreTime installed globally useless. There is no clean way to remove those python packages, because there is no safe way to know if other tools depend on them. If you are experienced enough with CLI and system administration, you may prune the entire /usr/local/lib/python3.*/dist-packages/ directory, but do this at your own risk. Those globally installed python packages may stay on the system, they shouldn't break LibreTime.

3.0.2

21 Feb 12:54
Compare
Choose a tag to compare

💖 Contributors

The LibreTime project wants to thank the following contributors for authoring PRs to this release:

🐛 Bug fixes

  • legacy: advanced search by track type id
  • legacy: refresh lock files
  • legacy: move forked deps to the libretime namespace
  • legacy: improve error messages and logs
  • installer: allow different actions on template_file
  • installer: print diff on file deployment
  • installer: only setup nginx on first install
  • installer: print unsupported distribution error (#2368)
  • installer: create systemd dirs if missing (#2379)

⬆️ Upgrading

Nginx configuration deployment

The installer now only deploy the Nginx configuration during the first installation. This is to prevent overwriting changes made by Certbot for example. If you need to update the Nginx configuration, you need to pass the --update-nginx flag to the installer.

3.0.1

20 Dec 15:43
Compare
Choose a tag to compare

💖 Contributors

The LibreTime project wants to thank the following contributors for authoring PRs to this release:

🐛 Bug fixes

  • remove systemd ProtectHome feature (#2244)
  • installer: install missing sudo
  • installer: set home and login when running as postgres
  • legacy: add log entry on task run (#2316)
  • legacy: log errors on connect check failure (#2317)
  • worker: replace deprecated cgi.parse_header (#2333)

3.0.0

10 Oct 16:02
96ded62
Compare
Choose a tag to compare

💖 Contributors

The LibreTime project wants to thank the following contributors for authoring PRs to this release:

🐛 Bug fixes

  • clean exit by catching keyboard interrupt (#2206)
  • legacy: missing plupload uk_UA translation
  • legacy: jquery i18n translations for plupload
  • legacy: gracefully handle missing asset checksum
  • disable some systemd security features on bionic (#2219)

⚠️ Known issues

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

Missing AAC encoder for Liquidsoap

AAC streams aren't working out of the box because the current distributions packages of Liquidsoap are lacking a AAC encoder. If you need AAC streams, you need to install Liquidsoap from a different source.

On Ubuntu Bionic, analyzing some FLAC files fails

On Ubuntu Bionic, analyzing some FLAC files fails with UnplayableFileError because of an upstream bug in Liquidsoap. If you encounter this, you should upgrade to a more recent distribution version.

3.0.0-beta.2

03 Oct 11:03
Compare
Choose a tag to compare
3.0.0-beta.2 Pre-release
Pre-release

💖 Contributors

The LibreTime project wants to thank the following contributors for authoring PRs to this release:

🚀 Features

  • systemd service hardening (#2186)
  • extra systemd service hardening (#2197)

🐛 Bug fixes

  • start playout service after liquidsoap (#2164)
  • include version variable inside containers
  • change version format
  • legacy: add play button to stream player (#2190)
  • legacy: correct log levels (#2196)

3.0.0-beta.1

23 Sep 11:52
Compare
Choose a tag to compare
3.0.0-beta.1 Pre-release
Pre-release

💖 Contributors

The LibreTime project wants to thank the following contributors for authoring PRs to this release:

🚀 Features

  • legacy: disable services check when missing systemctl (#2160)
  • legacy: invalidate cached assets using md5sum (#2161)
  • use libretime/icecast container image (#2165)

🐛 Bug fixes

  • legacy: number of tracks displayed initially (#2168)
  • legacy: rebuild favicon (#2167)
  • worker: configure celery timezone (#2169)
  • legacy: update or remove broken links
  • legacy: prepend file id in tmp upload filename (#2173)
  • legacy: fail when uploading wma files (#2172)