-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdistrobox.ini
More file actions
76 lines (71 loc) · 3.47 KB
/
distrobox.ini
File metadata and controls
76 lines (71 loc) · 3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Distrobox manifest for testing Mesh packages
# Usage: distrobox assemble create --file distrobox.ini
#
# This creates test containers with all runtime dependencies for mesh-player and mesh-cue.
# The project directory is mounted at /mesh for easy access to built packages.
#
# Prerequisites (NixOS):
# Add to configuration.nix:
# virtualisation.podman = { enable = true; dockerCompat = true; };
#
# Quick start:
# nix run .#build-deb # Build portable .deb packages → dist/deb/
# distrobox assemble create # Create container + auto-install .debs
# distrobox enter mesh-ubuntu # Enter container
# mesh-player # Test! (already installed)
# exit # Leave container
# distrobox assemble rm # Clean up
#
# Re-test after rebuilding:
# nix run .#build-deb
# distrobox assemble create --replace # Recreate with fresh packages
#
# See: https://github.com/89luca89/distrobox/blob/main/docs/usage/distrobox-assemble.md
# =============================================================================
# Ubuntu 24.04 LTS - Primary .deb testing environment
# (FFmpeg 4.x is bundled in /usr/lib/mesh/ to avoid ABI incompatibility)
# =============================================================================
[mesh-ubuntu]
image=ubuntu:24.04
pull=true
replace=true
start_now=false
# Runtime dependencies matching Cargo.toml [package.metadata.deb] depends
# - Audio: PipeWire-JACK + ALSA (Ubuntu 24.04 uses pipewire, package names changed)
# - Graphics: Vulkan, Wayland, X11 fallback
# - GUI: fontconfig for text rendering
additional_packages="pipewire-jack libasound2t64 libvulkan1 libxkbcommon0 libwayland-client0 libfontconfig1"
# X11 support (iced falls back to X11 if Wayland unavailable)
additional_packages="libx11-6 libxcursor1 libxrandr2 libxi6"
# Mesa drivers for software rendering in containers without GPU passthrough
additional_packages="mesa-vulkan-drivers"
# Essentia runtime deps (mesh-cue) - libessentia itself is bundled in /usr/lib/mesh/
additional_packages="libfftw3-single3 libtag1v5 libchromaprint1 libsamplerate0 libyaml-0-2"
# Tools for testing (ldd is already in libc-bin)
additional_packages="file strace"
# Note: Volume uses $PWD which is expanded at container creation time.
# Run 'distrobox assemble create' from the project root directory.
# Built packages will be at /mesh/dist/deb/*.deb inside the container.
volume="$PWD:/mesh:rw"
# Post-setup: install .deb packages from dist/deb/
init_hooks="sudo apt-get update"
init_hooks="sudo apt install -y /mesh/dist/deb/*.deb"
# =============================================================================
# Fedora 41 - RPM testing environment (optional, uncomment to use)
# =============================================================================
# [mesh-fedora]
# image=fedora:41
# pull=true
# replace=true
# start_now=false
#
# # Runtime dependencies matching Cargo.toml [package.metadata.generate-rpm] requires
# additional_packages="jack-audio-connection-kit alsa-lib vulkan-loader libxkbcommon libwayland-client fontconfig"
# additional_packages="libX11 libXcursor libXrandr libXi"
# additional_packages="mesa-vulkan-drivers"
# additional_packages="file strace"
#
# volume="$PWD:/mesh:rw"
#
# # Auto-install .rpm packages if they exist
# init_hooks="if ls /mesh/target/generate-rpm/*.rpm 1>/dev/null 2>&1; then sudo dnf install -y /mesh/target/generate-rpm/*.rpm; else echo '[mesh] No .rpm found - run: cargo generate-rpm -p crates/mesh-player'; fi"