A tool that automates the creation of RPM packages for Spotify. It downloads the latest Spotify release from debian repository, applies necessary adjustments for system compatibility, and bundles everything into a clean RPM package ready for installation on RPM-based Linux distributions such as Fedora and RHEL derivatives.
Includes a repository web server for automatic Spotify updates.
This package includes enhancements and fixes compared to the official .DEB:
- Built-in FFMPEG libraries for playing local files
- Persistent flags configuration file
- Persistent environment variables configuration file
- Scalable desktop icon
- Defaults flags and environment variables to improve Fedora/RHEL compatibility
-
If you don't want to run a repository web server, just directly install the generated RPMs
See more
| Tag | Description |
|---|---|
latest |
Default Tag |
| Registry | Full image name | Description |
|---|---|---|
docker.io |
docker.io/zicstardust/spotify-rpm-packager |
Docker Hub |
ghcr.io |
ghcr.io/zicstardust/spotify-rpm-packager |
GitHub |
Attention: The container supports others architectures, but the generated RPM is only for amd64.
| Architecture | Available | Tag |
|---|---|---|
| amd64 | ✅ | latest |
| arm64 | ✅ | latest |
| ppc64le | ✅ | latest |
| s390x | ✅ | latest |
services:
spotify-rpm:
container_name: spotify-rpm-packager
image: docker.io/zicstardust/spotify-rpm-packager:latest
restart: unless-stopped
privileged: True
environment:
TZ: America/New_York
ports:
- 80:80
volumes:
- <path to Repository/RPMs output>:/data
- <path to GPG key>:/gpg-key #Required to backup generate GPG key| variables | Function | Default | Exemple |
|---|---|---|---|
TZ |
Set Timezone | ||
PUID |
Set UID | 1000 | |
PGID |
Set GID | 1000 | |
INTERVAL |
Set the interval to check for updates and generate the next RPM. | 1d |
1d - 1 day10m - 10 minutes1w - 1 week65s - 65 seconds |
DISABLE_WEB_SERVER |
Disable web server repository | false |
|
KEEP_VERSIONS |
Number of RPM versions saved. If value is 0, keep all |
0 |
|
BUILD |
Set for which distros the RPM will be generated. Separated by , |
el10 |
Look at the set BUILD section |
GPG_NAME |
Your GPG key Name | Look at the GPG Sign section | |
GPG_EMAIL |
Your GPG key E-mail | Look at the GPG Sign section | |
STABLE_BUILDS |
RPM Spotify Stable builds | true |
|
TESTING_BUILDS |
RPM Spotify Testing builds | false |
|
SRPMS_BUILDS |
SRPMS builds | false |
|
BUILTIN_FFMPEG |
Built-in FFMPEG Libraries | true |
|
PORT |
Repository Web Server Port | 80 |
| Value | Function |
|---|---|
fc<version> |
Generate RPM for fedora, exemple fc43 to Fedora 43 |
fcrawhide |
Generate RPM for fedora rawhide |
el<version> |
Generate RPM for RHEL like, exemple el10 to RHEL 10 like |
To sign RPMs, it is necessary to set GPG_NAME and GPG_EMAIL environment variables.
The key will be imported from /gpg-key/private.pgp and /gpg-key/public.pgp.
If they do not exist, a new key will be created and exported to the /gpg-key/private.pgp and /gpg-key/public.pgp.
See more
Recommended to use a proxy with https.
[spotify]
name=Spotify Unofficial Repository - Stable - $basearch
baseurl=http://127.0.0.1/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=http://127.0.0.1/gpg
[spotify-testing]
name=Spotify Unofficial Repository - Testing - $basearch
baseurl=http://127.0.0.1/$releasever/$basearch/testing
enabled=0
gpgcheck=1
gpgkey=http://127.0.0.1/gpg
[spotify-source]
name=Spotify Unofficial Repository - Stable - Source
baseurl=http://127.0.0.1/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=http://127.0.0.1/gpg
[spotify-testing-source]
name=Spotify Unofficial Repository - Testing - Source
baseurl=http://127.0.0.1/$releasever/source/testing
enabled=0
gpgcheck=1
gpgkey=http://127.0.0.1/gpg
sudo dnf install spotify-clientFlag file ~/.config/spotify/spotify.env
Below is an example spotify.env file that defines the environment variables WAYLAND_DISPLAY
~/.config/spotify/spotify.env
# This line will be ignored.
WAYLAND_DISPLAY=
Flag file ~/.config/spotify/spotify-flags.conf
Below is an example spotify-flags.conf file that defines the flags --force-device-scale-factor:
~/.config/spotify/spotify-flags.conf
# This line will be ignored.
--force-device-scale-factor=1.5
Details
It is necessary to activate the EPEL repository.
sudo dnf install epel-releaseDetails
Enable built-in FFMPEG Libraries on RPM build (BUILTIN_FFMPEG=true)
Or alternative:
- Enable rpmfusion-free
- Install compat-ffmpeg4 and ffmpeg-libs:
sudo dnf install compat-ffmpeg4 ffmpeg-libs --allowerasingDetails
To fix this, add the following lines to the Flag file ~/.config/spotify/spotify-flags.conf
--ozone-platform=x11
--disable-features=UseOzonePlatform
Details
Add --force-device-scale-factor to the flags file in ~/.config/spotify/spotify-flags.conf.
Default value is 1.
#exemple scale factor 1.5
--force-device-scale-factor=1.5
This project is a packaging script. Spotify is proprietary software owned by Spotify AB.