diff --git a/.github/workflows/_python.yml b/.github/workflows/_python.yml index 523ccff2b..59e102712 100644 --- a/.github/workflows/_python.yml +++ b/.github/workflows/_python.yml @@ -53,7 +53,6 @@ jobs: release: - buster - bullseye - - bionic - focal - jammy diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml index bd12b3011..5dd5dabb1 100644 --- a/.github/workflows/api.yml +++ b/.github/workflows/api.yml @@ -32,7 +32,6 @@ jobs: release: - buster - bullseye - - bionic - focal - jammy diff --git a/.github/workflows/dev-tools.yml b/.github/workflows/dev-tools.yml index 93e62624a..ab231c59f 100644 --- a/.github/workflows/dev-tools.yml +++ b/.github/workflows/dev-tools.yml @@ -15,8 +15,6 @@ jobs: strategy: matrix: include: - - distribution: ubuntu - release: bionic - distribution: ubuntu release: focal - distribution: ubuntu @@ -59,7 +57,7 @@ jobs: COPY packages.list packages.list EOF - [[ "${{ matrix.release }}" =~ "bionic|focal" ]] && \ + [[ "${{ matrix.release }}" =~ "focal" ]] && \ cat <> Dockerfile RUN DEBIAN_FRONTEND=noninteractive apt-get --quiet update && \ DEBIAN_FRONTEND=noninteractive apt-get --quiet install -y software-properties-common && \ diff --git a/.github/workflows/legacy.yml b/.github/workflows/legacy.yml index 5c56bc429..447df6766 100644 --- a/.github/workflows/legacy.yml +++ b/.github/workflows/legacy.yml @@ -26,7 +26,6 @@ jobs: fail-fast: false matrix: include: - - php-version: "7.2" # Bionic - php-version: "7.3" # Buster - php-version: "7.4" # Bullseye, Focal @@ -46,7 +45,6 @@ jobs: fail-fast: false matrix: include: - - php-version: "7.2" # Bionic - php-version: "7.3" # Buster - php-version: "7.4" # Bullseye, Focal diff --git a/Vagrantfile b/Vagrantfile index b33f47686..02c5ad95f 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -99,12 +99,6 @@ Vagrant.configure('2') do |config| setup_libretime(os, "debian.sh") end - config.vm.define 'bionic' do |os| - os.vm.box = 'bento/ubuntu-18.04' - setup_nfs(config) - setup_libretime(os, 'debian.sh') - end - config.vm.define 'bullseye' do |os| os.vm.box = 'debian/bullseye64' config.vm.provider 'virtualbox' do |v, override| diff --git a/analyzer/libretime_analyzer/pipeline/_ffmpeg.py b/analyzer/libretime_analyzer/pipeline/_ffmpeg.py index 5fe0381ca..c8d9f7df0 100644 --- a/analyzer/libretime_analyzer/pipeline/_ffmpeg.py +++ b/analyzer/libretime_analyzer/pipeline/_ffmpeg.py @@ -94,9 +94,8 @@ def compute_silences(filepath: Path) -> List[Tuple[float, float]]: end = float(match.group(2)) ends.append(end) - # ffmpeg v3 (bionic) does not warn about silence end when the track ends. - # Set the last silence ending to infinity, and clamp it to the track duration before - # using this value. + # If one end is missing, set the last silence ending to infinity, and + # clamp it to the track duration before using this value. if len(starts) - 1 == len(ends): ends.append(inf) diff --git a/analyzer/packages.ini b/analyzer/packages.ini index 1e7904518..eaac2efeb 100644 --- a/analyzer/packages.ini +++ b/analyzer/packages.ini @@ -1,32 +1,17 @@ # This file contains a list of package dependencies. [python] -python3 = buster, bullseye, bookworm, bionic, focal, jammy -python3-pip = buster, bullseye, bookworm, bionic, focal, jammy -python3-pika = buster, bullseye, bookworm, bionic, focal, jammy +python3 = buster, bullseye, bookworm, focal, jammy +python3-pip = buster, bullseye, bookworm, focal, jammy +python3-pika = buster, bullseye, bookworm, focal, jammy [liquidsoap] # https://github.com/savonet/liquidsoap/blob/main/CHANGES.md -liquidsoap-plugin-alsa = bionic -liquidsoap-plugin-ao = bionic -liquidsoap-plugin-ogg = bionic -liquidsoap-plugin-portaudio = bionic -# Already recommended packages in bionic -# See `apt show liquidsoap` -; liquidsoap-plugin-faad = bionic -; liquidsoap-plugin-flac = bionic -; liquidsoap-plugin-icecast = bionic -; liquidsoap-plugin-lame = bionic -; liquidsoap-plugin-mad = bionic -; liquidsoap-plugin-pulseaudio = bionic -; liquidsoap-plugin-taglib = bionic -; liquidsoap-plugin-voaacenc = bionic -; liquidsoap-plugin-vorbis = bionic -liquidsoap = buster, bullseye, bookworm, bionic, focal, jammy +liquidsoap = buster, bullseye, bookworm, focal, jammy [ffmpeg] # Detect duration, silences and replaygain -ffmpeg = buster, bullseye, bookworm, bionic, focal, jammy +ffmpeg = buster, bullseye, bookworm, focal, jammy [=development] # Generate fixtures -ffmpeg = buster, bullseye, bookworm, bionic, focal, jammy +ffmpeg = buster, bullseye, bookworm, focal, jammy diff --git a/analyzer/tests/pipeline/analyze_cuepoint_test.py b/analyzer/tests/pipeline/analyze_cuepoint_test.py index a79b13e88..ced307922 100644 --- a/analyzer/tests/pipeline/analyze_cuepoint_test.py +++ b/analyzer/tests/pipeline/analyze_cuepoint_test.py @@ -1,4 +1,3 @@ -import distro import pytest from libretime_analyzer.pipeline.analyze_cuepoint import analyze_cuepoint @@ -18,10 +17,6 @@ from ..fixtures import FILES def test_analyze_cuepoint(filepath, length, cuein, cueout): metadata = analyze_cuepoint(filepath, {}) - # On bionic, large file duration is a wrong. - if distro.codename() == "bionic" and str(filepath).endswith("s1-large.flac"): - return - assert metadata["length_seconds"] == pytest.approx(length, abs=0.1) assert float(metadata["cuein"]) == pytest.approx(float(cuein), abs=1) assert float(metadata["cueout"]) == pytest.approx(float(cueout), abs=1) diff --git a/analyzer/tests/pipeline/analyze_metadata_test.py b/analyzer/tests/pipeline/analyze_metadata_test.py index 35827bad7..f0598d672 100644 --- a/analyzer/tests/pipeline/analyze_metadata_test.py +++ b/analyzer/tests/pipeline/analyze_metadata_test.py @@ -1,6 +1,5 @@ from pathlib import Path -import distro import pytest from libretime_analyzer.pipeline.analyze_metadata import analyze_metadata @@ -28,12 +27,6 @@ def test_analyze_metadata(filepath: Path, metadata: dict): del metadata["length"] del found["length"] - # Mutagen <1.46 computes a wrong bit_rate for wav files, this version - # of mutagen is only installed on bionic (python <3.7) - if filepath.suffix == ".wav" and distro.codename() == "bionic": - del metadata["bit_rate"] - del found["bit_rate"] - # mp3,ogg,flac files does not support comments yet if not filepath.suffix == ".m4a": if "comment" in metadata: diff --git a/analyzer/tests/pipeline/analyze_replaygain_test.py b/analyzer/tests/pipeline/analyze_replaygain_test.py index 5d8d718bc..cb6f6b917 100644 --- a/analyzer/tests/pipeline/analyze_replaygain_test.py +++ b/analyzer/tests/pipeline/analyze_replaygain_test.py @@ -1,4 +1,3 @@ -import distro import pytest from libretime_analyzer.pipeline.analyze_replaygain import analyze_replaygain @@ -13,10 +12,5 @@ from ..fixtures import FILES def test_analyze_replaygain(filepath, replaygain): tolerance = 0.8 - # On bionic, replaygain is a bit higher for loud mp3 files. - # This huge tolerance makes the test pass, with values devianting from ~-17 to ~-13 - if distro.codename() == "bionic" and str(filepath).endswith("+12.mp3"): - tolerance = 5 - metadata = analyze_replaygain(filepath, {}) assert metadata["replay_gain"] == pytest.approx(replaygain, abs=tolerance) diff --git a/analyzer/tests/pipeline/ffmpeg_test.py b/analyzer/tests/pipeline/ffmpeg_test.py index c1cd9c96b..36d0960f9 100644 --- a/analyzer/tests/pipeline/ffmpeg_test.py +++ b/analyzer/tests/pipeline/ffmpeg_test.py @@ -1,6 +1,3 @@ -from math import inf - -import distro import pytest from libretime_analyzer.pipeline._ffmpeg import ( @@ -30,11 +27,6 @@ def test_probe_replaygain(filepath, replaygain): def test_compute_replaygain(filepath, replaygain): tolerance = 0.8 - # On bionic, replaygain is a bit higher for loud mp3 files. - # This huge tolerance makes the test pass, with values devianting from ~-17 to ~-13 - if distro.codename() == "bionic" and str(filepath).endswith("+12.mp3"): - tolerance = 5 - assert compute_replaygain(filepath) == pytest.approx(replaygain, abs=tolerance) @@ -86,10 +78,6 @@ def test_silence_detect_re(line, expected): def test_compute_silences(filepath, length, cuein, cueout): result = compute_silences(filepath) - # On bionic, large file duration is a wrong. - if distro.codename() == "bionic" and str(filepath).endswith("s1-large.flac"): - return - if cuein != 0.0: assert len(result) > 0 first = result.pop(0) @@ -97,11 +85,6 @@ def test_compute_silences(filepath, length, cuein, cueout): assert first[1] == pytest.approx(cuein, abs=1) if cueout != length: - # ffmpeg v3 (bionic) does not warn about silence end when the track ends. - # Check for infinity on last silence ending - if distro.codename() == "bionic": - length = inf - assert len(result) > 0 last = result.pop() assert last[0] == pytest.approx(cueout, abs=1) @@ -113,8 +96,4 @@ def test_compute_silences(filepath, length, cuein, cueout): map(lambda i: pytest.param(i.path, i.length, id=i.path.name), FILES), ) def test_probe_duration(filepath, length): - # On bionic, large file duration is a wrong. - if distro.codename() == "bionic" and str(filepath).endswith("s1-large.flac"): - return - assert probe_duration(filepath) == pytest.approx(length, abs=0.05) diff --git a/api/packages.ini b/api/packages.ini index 6531b352a..5f462a84f 100644 --- a/api/packages.ini +++ b/api/packages.ini @@ -1,7 +1,7 @@ # This file contains a list of package dependencies. [python] -python3 = buster, bullseye, bionic, focal -python3-pip = buster, bullseye, bionic, focal +python3 = buster, bullseye, focal +python3-pip = buster, bullseye, focal gunicorn = buster, bullseye, focal python3-gunicorn = buster, bullseye, focal python3-uvicorn = buster, bullseye, focal @@ -10,6 +10,6 @@ python3-uvloop = buster, bullseye, focal [psycopg2] # See https://www.psycopg.org/docs/install.html#install-from-source -build-essential = buster, bullseye, bionic, focal -python3-dev = buster, bullseye, bionic, focal -libpq-dev = buster, bullseye, bionic, focal +build-essential = buster, bullseye, focal +python3-dev = buster, bullseye, focal +libpq-dev = buster, bullseye, focal diff --git a/docs/developer-manual/development/environment.md b/docs/developer-manual/development/environment.md index ee3d85492..14ffa00f1 100644 --- a/docs/developer-manual/development/environment.md +++ b/docs/developer-manual/development/environment.md @@ -39,8 +39,8 @@ This is fixed by stopping virtualbox and re-creating the vagrant box: ```bash sudo systemctl stop virtualbox -vagrant destroy bionic -vagrant up bionic --provider=libvirt +vagrant destroy focal +vagrant up focal --provider=libvirt ``` ::: @@ -59,9 +59,9 @@ sudo usermod -aG libvirt $USER 2. Reboot your computer, and then run ```bash -vagrant box add bento/ubuntu-18.04 --provider=virtualbox -vagrant mutate bento/ubuntu-18.04 libvirt -vagrant up bionic --provider=libvirt +vagrant box add bento/ubuntu-20.04 --provider=virtualbox +vagrant mutate bento/ubuntu-20.04 libvirt +vagrant up focal --provider=libvirt ``` On other distributions, you will need to install [libvirt](https://libvirt.org/) and `vagrant-mutate` and then run @@ -73,9 +73,9 @@ sudo usermod -a -G libvirt $USER # Reboot vagrant plugin install vagrant-mutate -vagrant box fetch bento/ubuntu-18.04 -vagrant mutate bento/ubuntu-18.04 libvirt -vagrant up bionic --provider=libvirt +vagrant box fetch bento/ubuntu-20.04 +vagrant mutate bento/ubuntu-20.04 libvirt +vagrant up focal --provider=libvirt ``` ### Starting LibreTime Vagrant @@ -87,27 +87,26 @@ change the default provider if you have multiple installed. This can be done by ```bash git clone https://github.com/libretime/libretime cd libretime -vagrant up bionic +vagrant up focal ``` If everything works out, you will find LibreTime on [port 8080](http://localhost:8080) and Icecast on [port 8000](http://localhost:8000). Once you reach the web setup GUI you can click through it using the default values. To -connect to the vagrant machine you can run `vagrant ssh bionic` in the libretime +connect to the vagrant machine you can run `vagrant ssh focal` in the libretime directory. ### Alternative OS installations -With the above instructions LibreTime is installed on Ubuntu Bionic. The Vagrant setup +With the above instructions LibreTime is installed on Ubuntu Focal. The Vagrant setup offers the option to choose a different operation system according to you needs. -| OS | Command | Comment | -| ------------ | --------------------- | -------------------------------- | -| Debian 10 | `vagrant up buster` | Install on Debian Buster. | -| Debian 11 | `vagrant up bullseye` | Install on Debian Bullseye. | -| Ubuntu 18.04 | `vagrant up bionic` | Install on Ubuntu Bionic Beaver. | -| Ubuntu 20.04 | `vagrant up focal` | Install on Ubuntu Focal Fossa. | +| OS | Command | Comment | +| ------------ | --------------------- | ------------------------------ | +| Debian 10 | `vagrant up buster` | Install on Debian Buster. | +| Debian 11 | `vagrant up bullseye` | Install on Debian Bullseye. | +| Ubuntu 20.04 | `vagrant up focal` | Install on Ubuntu Focal Fossa. | ### Troubleshooting @@ -125,7 +124,7 @@ Similar to Docker, Multipass works through a CLI. To use, clone this repo and th ``` git clone https://github.com/libretime/libretime cd libretime -multipass launch bionic -n ltTEST --cloud-init cloud-init.yaml +multipass launch focal -n ltTEST --cloud-init cloud-init.yaml multipass shell ltTEST ``` diff --git a/install b/install index ee781e4a1..e2c0a4828 100755 --- a/install +++ b/install @@ -268,11 +268,6 @@ install_service() { [[ -f "$service_src" ]] || error "service '$service_name' src path '$service_src' does not exists!" - # TODO: Remove when Bionic support is dropped - if [[ $distro == "bionic" ]]; then - mkdir -p "$SERVICE_DIR" - fi - template_file "$service_src" "$service_dest" \ sed \ -e "s|^User=.*|User=${LIBRETIME_USER}|" \ @@ -283,13 +278,6 @@ install_service() { -e "s|@@LOG_DIR@@|${LOG_DIR}|g" \ -e "s|@@WORKING_DIR@@|${WORKING_DIR}|g" - # TODO: Remove when Bionic support is dropped - if [[ $distro == "bionic" ]]; then - for feature in ProtectClock ProtectHostname ProtectKernelLogs ProtectProc; do - sed -i -e "s|^${feature}=|#${feature}=|" "$service_dest" - done - fi - chmod 0644 "$service_dest" chown root:root "$service_dest" systemctl enable "$service_name" @@ -319,12 +307,12 @@ check_distribution() { case "$ID-$VERSION_ID" in debian-10) is_debian=true && distro="buster" ;; debian-11) is_debian=true && distro="bullseye" ;; - ubuntu-18.04) is_ubuntu=true && distro="bionic" ;; ubuntu-20.04) is_ubuntu=true && distro="focal" ;; *) error << "EOF" could not determine supported distribution "$ID-$VERSION_ID"! + Support for installing LibreTime on Bionic has dropped since 3.1.0. Support for installing LibreTime on Xenial has dropped since 3.0.0-alpha.10. Support for installing LibreTime on Stretch has dropped since 3.0.0-alpha.10. Support for installing LibreTime on Jessie has dropped since 3.0.0-alpha.8. @@ -433,9 +421,7 @@ if $LIBRETIME_SETUP_POSTGRESQL; then install_packages postgresql postgresql-client if $is_first_install; then - # TODO: Swap lines when Bionic support is dropped - # if ! sudo -u postgres psql --csv --tuples-only --command='\du' | grep -qw "^$LIBRETIME_POSTGRESQL_USER"; then - if ! sudo -u postgres psql --tuples-only --command='\du' | grep -qw "$LIBRETIME_POSTGRESQL_USER"; then + if ! sudo -u postgres psql --csv --tuples-only --command='\du' | grep -qw "^$LIBRETIME_POSTGRESQL_USER"; then info "creating PostgreSQL user '$LIBRETIME_POSTGRESQL_USER'" sudo -u postgres createuser "$LIBRETIME_POSTGRESQL_USER" sudo -u postgres psql -c "ALTER ROLE $LIBRETIME_POSTGRESQL_USER WITH PASSWORD '$LIBRETIME_POSTGRESQL_PASSWORD';" @@ -446,9 +432,7 @@ if $LIBRETIME_SETUP_POSTGRESQL; then warning "PostgreSQL user '$LIBRETIME_POSTGRESQL_USER' already exists!" fi - # TODO: Swap lines when Bionic support is dropped - # if ! sudo -u postgres psql --csv --tuples-only --list | grep -qw "^$LIBRETIME_POSTGRESQL_DATABASE"; then - if ! sudo -u postgres psql --tuples-only --list | grep -qw "$LIBRETIME_POSTGRESQL_DATABASE"; then + if ! sudo -u postgres psql --csv --tuples-only --list | grep -qw "^$LIBRETIME_POSTGRESQL_DATABASE"; then info "creating PostgreSQL database '$LIBRETIME_POSTGRESQL_DATABASE' with owner '$LIBRETIME_POSTGRESQL_USER'" sudo -u postgres createdb --template=template0 --encoding=UTF-8 --owner="$LIBRETIME_POSTGRESQL_USER" "$LIBRETIME_POSTGRESQL_DATABASE" @@ -474,9 +458,7 @@ if $LIBRETIME_SETUP_RABBITMQ; then install_packages rabbitmq-server if $is_first_install; then - # TODO: Swap lines when Bionic support is dropped - # if ! rabbitmqctl --quiet list_users | grep -qw "^$LIBRETIME_RABBITMQ_USER"; then - if ! rabbitmqctl -q list_users | grep -qw "^$LIBRETIME_RABBITMQ_USER"; then + if ! rabbitmqctl --quiet list_users | grep -qw "^$LIBRETIME_RABBITMQ_USER"; then info "creating RabbitMQ user '$LIBRETIME_RABBITMQ_USER'" rabbitmqctl add_user "$LIBRETIME_RABBITMQ_USER" "$LIBRETIME_RABBITMQ_PASSWORD" @@ -486,9 +468,7 @@ if $LIBRETIME_SETUP_RABBITMQ; then warning "RabbitMQ user '$LIBRETIME_RABBITMQ_USER' already exists!" fi - # TODO: Swap lines when Bionic support is dropped - # if ! rabbitmqctl --quiet list_vhosts | grep -qw "^$LIBRETIME_RABBITMQ_VHOST"; then - if ! rabbitmqctl -q list_vhosts | grep -qw "^$LIBRETIME_RABBITMQ_VHOST"; then + if ! rabbitmqctl --quiet list_vhosts | grep -qw "^$LIBRETIME_RABBITMQ_VHOST"; then info "creating RabbitMQ vhost '$LIBRETIME_RABBITMQ_VHOST' with owner '$LIBRETIME_RABBITMQ_USER'" rabbitmqctl add_vhost "$LIBRETIME_RABBITMQ_VHOST" rabbitmqctl set_permissions -p "$LIBRETIME_RABBITMQ_VHOST" "$LIBRETIME_RABBITMQ_USER" '.*' '.*' '.*' @@ -515,11 +495,6 @@ if $LIBRETIME_SETUP_ICECAST; then install_packages icecast2 systemctl enable icecast2 - # TODO: Remove when Bionic support is dropped - if [[ $distro == "bionic" ]]; then - sed --in-place -e "s|^ENABLE=.*$|ENABLE=true|" /etc/default/icecast2 - fi - systemctl start icecast2 if $is_first_install; then @@ -568,15 +543,6 @@ section "API" # shellcheck disable=SC2046 install_packages $(list_packages "$SCRIPT_DIR/api") -# TODO: Remove when Bionic support is dropped -if [[ $distro == "bionic" ]]; then - info "installing gunicorn" - $PIP install \ - 'gunicorn' \ - 'uvicorn>=0.16.0,<0.17' - ln -sf /usr/local/bin/gunicorn /usr/bin/gunicorn -fi - install_python_app "$SCRIPT_DIR/api[prod]" install_service "libretime-api.service" "$SCRIPT_DIR/api/install/systemd/libretime-api.service" @@ -629,11 +595,6 @@ install_python_app "$SCRIPT_DIR/worker" info "creating libretime-worker working directory" mkdir_and_chown "$LIBRETIME_USER" "$WORKING_DIR/worker" -# TODO: Remove when Bionic support is dropped -if [[ $distro == "bionic" ]]; then - ln -sf /bin/sh /usr/bin/sh -fi - install_service "libretime-worker.service" "$SCRIPT_DIR/worker/install/systemd/libretime-worker.service" # Install Legacy diff --git a/legacy/packages.ini b/legacy/packages.ini index bb71837c3..ec31cf2f6 100644 --- a/legacy/packages.ini +++ b/legacy/packages.ini @@ -2,40 +2,21 @@ [common] # The php-pear package depends on php-(cli|common|xml), be sure to # install the dependencies with the right php version. -php-pear = buster, bullseye, bionic, focal -php-amqplib = buster, bullseye, bionic, focal +php-pear = buster, bullseye, focal +php-amqplib = buster, bullseye, focal [locale] -gettext = buster, bullseye, bionic, focal +gettext = buster, bullseye, focal # [apache] -# apache2 = buster, bullseye, bionic, focal -# libapache2-mod-php7.2 = bionic +# apache2 = buster, bullseye, focal # libapache2-mod-php7.3 = buster # libapache2-mod-php7.4 = bullseye, focal [php-fpm] -php7.2-fpm = bionic php7.3-fpm = buster php7.4-fpm = bullseye, focal -# Bionic -[php7.2] -php7.2 = bionic -php7.2-apcu = bionic -# Bionic does not have php7.2-apcu-bc, use php-apcu-bc instead -php-apcu-bc = bionic # php7.2-apcu-bc = bionic -php7.2-bcmath = bionic -php7.2-cli = bionic -php7.2-common = bionic -php7.2-curl = bionic -php7.2-dev = bionic -php7.2-gd = bionic -php7.2-mbstring = bionic -php7.2-pgsql = bionic -php7.2-xml = bionic -php7.2-yaml = bionic - # Buster [php7.3] php7.3 = buster diff --git a/playout/packages.ini b/playout/packages.ini index 7b91e3a45..3a26917b9 100644 --- a/playout/packages.ini +++ b/playout/packages.ini @@ -1,32 +1,17 @@ # This file contains a list of package dependencies. [python] -python3 = buster, bullseye, bookworm, bionic, focal, jammy -python3-pip = buster, bullseye, bookworm, bionic, focal, jammy +python3 = buster, bullseye, bookworm, focal, jammy +python3-pip = buster, bullseye, bookworm, focal, jammy python3-lxml = bullseye, bookworm, focal, jammy [liquidsoap] # https://github.com/savonet/liquidsoap/blob/main/CHANGES.md -liquidsoap-plugin-alsa = bionic -liquidsoap-plugin-ao = bionic -liquidsoap-plugin-ogg = bionic -liquidsoap-plugin-portaudio = bionic -# Already recommended packages in bionic -# See `apt show liquidsoap` -; liquidsoap-plugin-faad = bionic -; liquidsoap-plugin-flac = bionic -; liquidsoap-plugin-icecast = bionic -; liquidsoap-plugin-lame = bionic -; liquidsoap-plugin-mad = bionic -; liquidsoap-plugin-pulseaudio = bionic -; liquidsoap-plugin-taglib = bionic -; liquidsoap-plugin-voaacenc = bionic -; liquidsoap-plugin-vorbis = bionic -liquidsoap = buster, bullseye, bookworm, bionic, focal, jammy +liquidsoap = buster, bullseye, bookworm, focal, jammy [recorder] -ecasound = buster, bullseye, bookworm, bionic, focal, jammy +ecasound = buster, bullseye, bookworm, focal, jammy [misc] # Used by pypofetch to check if a file is open. # TODO: consider using a python library -lsof = buster, bullseye, bookworm, bionic, focal, jammy +lsof = buster, bullseye, bookworm, focal, jammy diff --git a/playout/tests/liquidsoap/client/connection_test.py b/playout/tests/liquidsoap/client/connection_test.py index 94953541c..d6f62303f 100644 --- a/playout/tests/liquidsoap/client/connection_test.py +++ b/playout/tests/liquidsoap/client/connection_test.py @@ -62,7 +62,7 @@ def liq_conn_fixture(request, tmp_path_factory): logger.debug(liq_script) entrypoint.write_text(liq_script) - # The --verbose flag seem to hang when testing on bionic in CI + # The --verbose flag seem to hang when testing in CI with Popen( ("liquidsoap", "--debug", str(entrypoint)), stdout=PIPE, diff --git a/playout/tests/liquidsoap/version_test.py b/playout/tests/liquidsoap/version_test.py index 03718214a..17ddd545d 100644 --- a/playout/tests/liquidsoap/version_test.py +++ b/playout/tests/liquidsoap/version_test.py @@ -28,7 +28,6 @@ def test_parse_liquidsoap_version(version, expected): @pytest.mark.skipif(getenv("CI") != "true", reason="requires liquidsoap") def test_get_liquidsoap_version(): LIQUIDSOAP_VERSION_MAP = { - "bionic": (1, 1, 1), "buster": (1, 3, 3), "focal": (1, 4, 1), "bullseye": (1, 4, 3), diff --git a/shared/packages.ini b/shared/packages.ini index 4eb363a60..9487c48dd 100644 --- a/shared/packages.ini +++ b/shared/packages.ini @@ -1,3 +1,3 @@ # This file contains a list of package dependencies. [tzdata] -tzdata = buster, bullseye, bookworm, bionic, focal, jammy +tzdata = buster, bullseye, bookworm, focal, jammy diff --git a/tools/packages.py b/tools/packages.py index eab866c91..875df026a 100755 --- a/tools/packages.py +++ b/tools/packages.py @@ -8,7 +8,7 @@ from typing import Iterator, List, Optional, Set DEFAULT_PACKAGES_FILENAME = "packages.ini" FORMATS = ("list", "line") -DISTRIBUTIONS = ("buster", "bullseye", "bookworm", "bionic", "focal", "jammy") +DISTRIBUTIONS = ("buster", "bullseye", "bookworm", "focal", "jammy") SETTINGS_SECTION = "=settings" DEVELOPMENT_SECTION = "=development" diff --git a/tools/packages_test.py b/tools/packages_test.py index 54dc900d1..6d00e9cbc 100644 --- a/tools/packages_test.py +++ b/tools/packages_test.py @@ -6,24 +6,24 @@ PACKAGE_INI = """ [common] postgresql = buster, focal # Some comment -curl = buster, bionic +curl = buster, bullseye [legacy] -some-package = bionic, focal +some-package = bullseye, focal [=development] -ffmpeg = buster, bionic, focal +ffmpeg = buster, bullseye, focal """ result_buster = {"curl", "postgresql"} -result_bionic = {"some-package", "curl", "ffmpeg"} +result_bullseye = {"some-package", "curl", "ffmpeg"} result_focal = {"postgresql", "some-package", "ffmpeg"} result_exclude = {"postgresql", "ffmpeg"} def test_load_packages(): assert load_packages(PACKAGE_INI, "buster", False) == result_buster - assert load_packages(PACKAGE_INI, "bionic", True) == result_bionic + assert load_packages(PACKAGE_INI, "bullseye", True) == result_bullseye assert load_packages(PACKAGE_INI, "focal", True) == result_focal assert load_packages(PACKAGE_INI, "focal", True, ["legacy"]) == result_exclude @@ -33,5 +33,5 @@ def test_list_packages(tmp_path: Path) -> None: package_file.write_text(PACKAGE_INI) assert list_packages([tmp_path, package_file], "buster", False) == result_buster - assert list_packages([tmp_path, package_file], "bionic", True) == result_bionic + assert list_packages([tmp_path, package_file], "bullseye", True) == result_bullseye assert list_packages([tmp_path, package_file], "focal", True) == result_focal