parent
26bcb6a90d
commit
448cff7600
|
@ -53,7 +53,6 @@ jobs:
|
|||
release:
|
||||
- buster
|
||||
- bullseye
|
||||
- bionic
|
||||
- focal
|
||||
- jammy
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@ jobs:
|
|||
release:
|
||||
- buster
|
||||
- bullseye
|
||||
- bionic
|
||||
- focal
|
||||
- jammy
|
||||
|
||||
|
|
|
@ -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 <<EOF >> Dockerfile
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get --quiet update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get --quiet install -y software-properties-common && \
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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|
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,26 +87,25 @@ 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. |
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
|
|
49
install
49
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue