Skip to content

Commit

Permalink
release v4.0.0-beta.2 (#923)
Browse files Browse the repository at this point in the history
  • Loading branch information
topi314 authored Jul 21, 2023
1 parent afbb146 commit 30bedca
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 17 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
Each release usually includes various fixes and improvements.
The most noteworthy of these, as well as any features and breaking changes, are listed here.

## 4.0.0-beta.2
* Update lavaplayer to [`08cfbc0`](https://github.com/Walkyst/lavaplayer-fork/commit/08cfbc05953128f3cf727ea3bcbe41dabcd1c7db) - Fixed ogg streaming
* Add JDA-NAS support for musl (`x86-64`, `aarch64`) based systems (most notably `alpine`)
* New config option to specify the directory to load plugins from. `lavalink.pluginsDir` (defaults to `./plugins`)

## 4.0.0-beta.1
* New Lavalink now requires Java 17 or higher to run
* **Removal of all websocket messages sent by the client. Everything is now done via [REST](IMPLEMENTATION.md#rest-api)**
Expand Down
2 changes: 1 addition & 1 deletion LavalinkServer/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ tasks {
archiveFileName.set("Lavalink-musl.jar")
// Exclude base dependency jar
exclude {
it.name.contains("lavaplayer-natives-fork") || it.name.contains("udpqueue-native-")
it.name.contains("lavaplayer-natives-fork") || (it.name.contains("udpqueue-native-") && !it.name.contains("musl"))
}

// Add custom jar
Expand Down
2 changes: 2 additions & 0 deletions LavalinkServer/docker/alpine.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
FROM azul/zulu-openjdk-alpine:17-jre-headless-latest

RUN apk add --no-cache libgcc

# Run as non-root user
RUN addgroup -g 322 -S lavalink && \
adduser -u 322 -S lavalink lavalink
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ class KoeConfiguration(val serverConfig: ServerConfig) {
SystemType(DefaultArchitectureTypes.X86_32, DefaultOperatingSystemTypes.LINUX),
SystemType(DefaultArchitectureTypes.ARMv8_64, DefaultOperatingSystemTypes.LINUX),

SystemType(DefaultArchitectureTypes.X86_64, DefaultOperatingSystemTypes.LINUX_MUSL),
SystemType(DefaultArchitectureTypes.ARMv8_64, DefaultOperatingSystemTypes.LINUX_MUSL),

SystemType(DefaultArchitectureTypes.X86_64, DefaultOperatingSystemTypes.WINDOWS),
SystemType(DefaultArchitectureTypes.X86_32, DefaultOperatingSystemTypes.WINDOWS),

Expand Down
39 changes: 26 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ A [basic example bot](Testbot) is available.

- [Features](#features)
- [Requirements](#requirements)
- [Hardware Support](#hardware-support)
- [Changelog](#changelog)
- [Versioning policy](#versioning-policy)
- [Client libraries](#client-libraries)
Expand Down Expand Up @@ -49,19 +50,28 @@ A [basic example bot](Testbot) is available.
* Java 17 LTS or newer required. (we recommend running the latest LTS version or newer)
* OpenJDK or Zulu running on Linux AMD64 is officially supported.

Support for Darwin (Mac), Windows AMD64, and Linux ARM (Raspberry Pi) is provided on a best-effort basis. This is dependent on Lavaplayer's native libraries.

Lavaplayer currently supports following architectures:

`Darwin (M1 & Intel)`, `Linux aarch32`, `Linux aarch64`, `Linux ARMv7+ 32/64`, `Linux ARMHF(v6) 32`, `Linux i386 32`, `Linux x86 64`, `Windows i386 32` and `Windows x86 64`

JDA-NAS(Native Audio Buffer) & the Timescale filter are currently not supported on following architectures:

`Linux ARMHF(v6) 32` and `Linux aarch32`


Support for other JVMs is also best-effort. Periodic CPU utilization stats are prone not to work everywhere.

## Hardware Support

Lavalink also runs on other hardware, but support is best-effort.
Here is a list of known working hardware:

| Operating System | Architecture | Lavaplayer | JDA-NAS | Timescale | AVX2 |
|------------------|--------------|------------|---------|-----------|------|
| linux | x86-64 |||||
| linux | x86 |||||
| linux | arm |||||
| linux | armhf |||||
| linux | aarch32 |||||
| linux | aarch64 |||||
| linux-musl | x86-64 |||||
| linux-musl | aarch64 |||||
| windows | x86-64 |||||
| Windows | x86 |||||
| darwin | x86-64 |||||
| darwin | aarch64e |||||

## Changelog

Please see [here](CHANGELOG.md)
Expand Down Expand Up @@ -146,6 +156,8 @@ LAVALINK_PLUGINS_0_REPOSITORY
LAVALINK_PLUGINS_1_DEPENDENCY
LAVALINK_PLUGINS_1_REPOSITORY
LAVALINK_PLUGINS_DIR
LAVALINK_SERVER_PASSWORD
LAVALINK_SERVER_SOURCES_YOUTUBE
LAVALINK_SERVER_SOURCES_BANDCAMP
Expand Down Expand Up @@ -261,19 +273,20 @@ WantedBy=multi-user.target
```

To initiate the service, run

```shell
sudo systemctl daemon-reload
sudo systemctl enable lavalink
sudo systemctl start lavalink
```

In addition to the usual log files, you can also view the log with `sudo journalctl -u lavalink`.

### Docker

Docker images can be found under [packages](https://github.com/lavalink-devs/Lavalink/pkgs/container/lavalink) with old builds prior to `v3.7.4` being available on [Docker Hub](https://hub.docker.com/r/fredboat/lavalink/).
There are 2 image variants `Ubuntu` and `Alpine`, the `Alpine` variant is smaller and can be used with the `-alpine` suffix, for example `ghcr.io/lavalink-devs/lavalink:3-alpine`.

---

Install [Docker](https://docs.docker.com/engine/install/) & [Docker Compose](https://docs.docker.com/compose/install/)

Create a `docker-compose.yml` with the following content:
Expand Down
6 changes: 3 additions & 3 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ fun VersionCatalogBuilder.spring() {
}

fun VersionCatalogBuilder.voice() {
version("lavaplayer", "17c75f5")
version("lavaplayer", "08cfbc0595")

library("lavaplayer", "com.github.walkyst.lavaplayer-fork", "lavaplayer").versionRef("lavaplayer")
library("lavaplayer-ip-rotator", "com.github.walkyst.lavaplayer-fork", "lavaplayer-ext-youtube-rotator").versionRef("lavaplayer")
Expand All @@ -45,8 +45,8 @@ fun VersionCatalogBuilder.voice() {
library("koe", "moe.kyokobot.koe", "core").version("2.0.0-rc1")
library("koe-udpqueue", "moe.kyokobot.koe", "ext-udpqueue").version("2.0.0-rc1")

version("udpqueue", "0.2.6")
val platforms = listOf("linux-x86-64", "linux-x86", "linux-aarch64", "linux-arm", "win-x86-64", "win-x86", "darwin")
version("udpqueue", "0.2.7")
val platforms = listOf("linux-x86-64", "linux-x86", "linux-aarch64", "linux-arm", "linux-musl-x86-64", "linux-musl-aarch64", "win-x86-64", "win-x86", "darwin")
platforms.forEach {
library("udpqueue-native-$it", "club.minnced", "udpqueue-native-$it").versionRef("udpqueue")
}
Expand Down

0 comments on commit 30bedca

Please sign in to comment.