Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
91a992f
kodi: update to githash 81882add70
kel-mo Oct 21, 2026
ae35734
addon_updater: declare python deps inline for uv
kel-mo Sep 28, 2026
befb7a0
README: lead debugging section with make debug
kel-mo Sep 29, 2026
dfaa02c
Allow access to the XDG Downloads directory
kel-mo Oct 1, 2026
2ab9f80
kodi: run the unit tests on every build
kel-mo Oct 2, 2026
d1b990e
addons: add vfs.pdf
kel-mo Oct 3, 2026
cbf2b34
addons: update to latest upstream
kel-mo Oct 16, 2026
bd7ed31
fedc: update libevdev, libplist, samba, Pillow and three more
kel-mo Oct 16, 2026
848ad47
kodi: let KODI_DATA and CRASHLOG_DIR be overridden
kel-mo Oct 16, 2026
324009e
build: add make build-dev for core-player test builds
kel-mo Oct 17, 2026
9947e77
fedc: update pycryptodome to 4.1.0, linking Cryptodome as LibreELEC does
kel-mo Oct 24, 2026
00a710a
pycryptodome: go back to 3.x and the Cryptodome namespace
kel-mo Oct 24, 2026
53556fb
build: let make build-dev take extra add-ons
kel-mo Oct 24, 2026
8c093a2
kodi: carry the fix for the crash when a controller is unplugged
kel-mo Oct 25, 2026
f4627f8
kodi: carry the empty-packet back-off from xbmc/xbmc#29899
kel-mo Oct 21, 2026
a0b44fa
addons: carry the pvr.iptvsimple shutdown crash fix
kel-mo Oct 17, 2026
ce354a0
addons: carry an inputstream.adaptive fix for dropped segments
kel-mo Oct 21, 2026
5816a3d
addons: carry an inputstream.adaptive wait for a sample still being read
kel-mo Oct 19, 2026
34c0ac1
kodi: carry the fixes for Python scripts that don't stop
kel-mo Oct 18, 2026
10bb5ed
game.libretro.lrps2: keep the Auto renderer
kel-mo Oct 24, 2026
5b6621a
kodi: carry the subtitle jump-back fix
kel-mo Oct 24, 2026
3c08be4
game.libretro.dolphin: find Sys beside the core
kel-mo Oct 24, 2026
fe8f0ce
kodi: carry the faster exit changes
kel-mo Oct 25, 2026
7a27432
kodi: carry the PipeWire drain fix
kel-mo Oct 25, 2026
9912bde
kodi: refresh the WS-Discovery stop carry
kel-mo Oct 25, 2026
6a43391
kodi: refresh the WS-Discovery stop carry again
kel-mo Oct 25, 2026
726c77b
kodi: make the WS-Discovery carry's started flag atomic
kel-mo Oct 25, 2026
1c07f8f
kodi: refresh the VideoPlayer empty packet carry
kel-mo Oct 25, 2026
c4efc4c
kodi: carry two more exit time fixes
kel-mo Oct 25, 2026
6003542
kodi: point the exit time carries at xbmc/xbmc#30104 and #30105
kel-mo Oct 25, 2026
58cabaa
libcec: carry the fix for the exit stall when the client is destroyed
kel-mo Oct 25, 2026
712567d
kodi, addons: update to the tip of Piers and refresh the carries
kel-mo Nov 1, 2026
85802d9
kodi: refresh the script stop timeout carry
kel-mo Nov 1, 2026
a19f36c
kodi: update to 22.0rc2-Piers
kel-mo Nov 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ build-dir/
build.log
repo/
tools/binary_addons_repo_tmp
.env
.env
tv.kodi.Kodi.dev.yml
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ PROJECT ?= tv.kodi.Kodi
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
BRANCH ?= $(if $(findstring beta,$(GIT_BRANCH)),beta,stable)
BUILDER_FLAGS ?=
DEV_ADDONS ?=
SHELL := /bin/bash

.PHONY: update-sources update-addons addon-list build lint flatpak install uninstall run debug clean
.PHONY: update-sources update-addons addon-list build build-dev lint flatpak install uninstall run debug clean

update-sources:
flatpak run --filesystem="$$PWD" org.flathub.flatpak-external-data-checker --edit-only $(PROJECT).yml
Expand All @@ -20,6 +21,10 @@ addon-list:
build:
set -o pipefail; flatpak run org.flatpak.Builder build-dir $(PROJECT).yml --user --repo=repo --default-branch=$(BRANCH) --force-clean --ccache $(BUILDER_FLAGS) 2>&1 | tee -a build.log
$(MAKE) lint
build-dev:
python3 tools/gen_dev_manifest.py $(PROJECT).yml addons-dev.txt $(PROJECT).dev.yml $(DEV_ADDONS)
set -o pipefail; flatpak run org.flatpak.Builder build-dir $(PROJECT).dev.yml --user --repo=repo --default-branch=$(BRANCH) --force-clean --ccache $(BUILDER_FLAGS) 2>&1 | tee -a build.log
$(MAKE) lint
lint:
out=$$(flatpak run --command=appstreamcli org.flatpak.Builder validate --no-net build-dir/files/share/metainfo/*.xml) || \
{ printf '%s\n' "$$out"; false; }
Expand Down
30 changes: 11 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,26 +43,24 @@ over HTTP and use that URL with `flatpak remote-add`.

## Debugging

Start Kodi on the Flatpak SDK with debug logging:
After `make install`, install the debug symbols from `repo` and start Kodi on
the Flatpak SDK with debug logging:

```
flatpak run --devel tv.kodi.Kodi --debug
make debug
```

`--devel` swaps the Platform runtime for the SDK, which includes tools such as
`gdb`, `strace` and `valgrind`. `--debug` turns on Kodi's debug log, written to
`~/.var/app/tv.kodi.Kodi/data/temp/kodi.log`.
It runs Kodi with `--devel`, which swaps the Platform runtime for the SDK with
tools such as `gdb`, `strace` and `valgrind`, and `--debug`, which writes
Kodi's debug log to `~/.var/app/tv.kodi.Kodi/data/temp/kodi.log`.

Kodi ships stripped. Install the debug symbols to get useful backtraces (use
`//beta` for the beta channel):
For a Flathub install, do the same by hand (use `//beta` for the beta channel):

```
flatpak install flathub tv.kodi.Kodi.Debug//stable
flatpak install flathub org.freedesktop.Sdk//26.08 tv.kodi.Kodi.Debug//stable
flatpak run --devel tv.kodi.Kodi//stable --debug
```

For a local build, `make debug` installs the symbols from `repo` and starts
Kodi with `--devel` and `--debug` in one step.

Attach `gdb` to the running Kodi. Get the instance ID from `flatpak ps`:

```
Expand Down Expand Up @@ -100,14 +98,8 @@ manifest in place; install it once with

`update-addons` updates the binary addons from `repo-binary-addons`, rewires
them as extensions and regenerates `addon-list.txt`. It needs a
`GITHUB_TOKEN` (exported or in `.env`) and the PyGithub and python-dotenv
modules. `uv run` uses the system Python when no `.venv` exists, so distro
packages suffice; otherwise create one:

```
uv venv
uv pip install PyGithub python-dotenv
```
`GITHUB_TOKEN` (exported or in `.env`). `uv run` installs the Python modules
it needs from the inline metadata in `tools/addon_updater.py`.

Kodi itself is only bumped by the checker when a release tag appears. While
the beta branch tracks Kodi master, update the `commit:` under the
Expand Down
1 change: 1 addition & 0 deletions addon-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ screensaver.rsxs.sundancer2
screensaver.shadertoy
screensaver.stars
vfs.libarchive
vfs.pdf
vfs.rar
vfs.sftp
visualization.fishbmc
Expand Down
6 changes: 6 additions & 0 deletions addons-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Add-on modules (addons/<id>/) kept by make build-dev
inputstream.adaptive
inputstream.ffmpegdirect
peripheral.joystick
pvr.hts
pvr.iptvsimple
2 changes: 1 addition & 1 deletion addons/audiodecoder.2sf/audiodecoder.2sf.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.2sf",
"commit": "5b73b5d506f8a27caee49802b88637e2cc64e662"
"commit": "039eeb7de76bf28d20c64ab4ef778982e70c639d"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.asap/audiodecoder.asap.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.asap",
"commit": "198a0ac16b9470a5cb39557f29d4d48422b095a5"
"commit": "d4705fab65d516e81dcfe8987f1197bfa882a5e0"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.dumb/audiodecoder.dumb.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.dumb",
"commit": "1f1e48ca672434892923f51552661d268524926e"
"commit": "43087517adfe67fda04b718b6068f8d1e0a25541"
},
{
"type": "file",
Expand Down
4 changes: 2 additions & 2 deletions addons/audiodecoder.fluidsynth/audiodecoder.fluidsynth.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
"sources": [
{
"type": "archive",
"url": "https://github.com/FluidSynth/fluidsynth/archive/refs/tags/v2.6.1.tar.gz",
"sha256": "3d258a3bf97cc20c59eeebfe62c2432fae88adda74d3ad098681c76e0ebf446b",
"url": "https://github.com/FluidSynth/fluidsynth/archive/refs/tags/v2.6.2.tar.gz",
"sha256": "ca376b42a3c1b186a4c8c248931789a455ac94a89b777394969d678010c2f91f",
"x-checker-data": {
"type": "anitya",
"project-id": 10437,
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.gme/audiodecoder.gme.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.gme",
"commit": "47286702cbb637dc971df080047c8a7992658945"
"commit": "0ec47634fa57a0f8debdae5066226a3976768ca5"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.gsf/audiodecoder.gsf.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.gsf",
"commit": "ee63273207a15445b2fce18dff2e3cb462bbbbad"
"commit": "b0c965cfa5c1e6242925f23acdba391aaf4517c7"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.hvl/audiodecoder.hvl.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.hvl",
"commit": "3a8d923bf26a8fa995b11e5904779e1edf927eef"
"commit": "6d4ae4932868c3ea9491f473cc7f253951ae2989"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.ncsf/audiodecoder.ncsf.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.ncsf",
"commit": "ccdc61b31918d9ff407aafb82526e99377962638"
"commit": "c3c545a71255a7edceacc0d193d626f6ec83690a"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.nosefart/audiodecoder.nosefart.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.nosefart",
"commit": "b27857ad29821b8bb8c26b5b212aae19c7ec9f0e"
"commit": "d2f716b3af931b74a2f40c896464e6e9d0f1dd1c"
},
{
"type": "file",
Expand Down
6 changes: 3 additions & 3 deletions addons/audiodecoder.openmpt/audiodecoder.openmpt.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.openmpt",
"commit": "87223de0d5d5581f429d2807ed00f8676fdd6305"
"commit": "7140624962ab031e42f58be6473c73c88dc0e48a"
},
{
"type": "file",
Expand All @@ -31,8 +31,8 @@
"sources": [
{
"type": "archive",
"url": "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.8.9+release.autotools.tar.gz",
"sha256": "d7ce84fd05d686c4bcf66af40eae857afa371442db60eeda3f874bd6cf6fc318",
"url": "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.8.10+release.autotools.tar.gz",
"sha256": "976d259288c40cd285771f77d09eff3d02514511d5677ecfcfb53be5013317e2",
"x-checker-data": {
"type": "anitya",
"project-id": 141468,
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.organya/audiodecoder.organya.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.organya",
"commit": "e420175fa76383c31fd39e3daa27c5d62643428f"
"commit": "c4f89fdc918ba55781c99cdf91c314863a0aac54"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.qsf/audiodecoder.qsf.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.qsf",
"commit": "cc701f28e24492b55b74375e97a048c8d41eaf9d"
"commit": "ed24a15f9ed01cfdafe1f051895d11c5286a442f"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.sacd/audiodecoder.sacd.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.sacd",
"commit": "720887f3361b452bce5bf8d76f8ad735c3e7e0d7"
"commit": "64772493c7fffafe12896ff084108a2e87c88810"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.sidplay/audiodecoder.sidplay.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.sidplay",
"commit": "3539ed8655cd607f4d4c65df06d45cf4f82dba06"
"commit": "ec797305a4583d6690989cf18b804b55f95829b1"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.snesapu/audiodecoder.snesapu.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.snesapu",
"commit": "ef9e9a2ae1dcb5932a0283007e058ba214bf632b"
"commit": "8770ac41322be2a7de83a4c375bd4884e320ea4e"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.ssf/audiodecoder.ssf.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.ssf",
"commit": "3346a2f6a808dba12b403d3cea10fb89b8f2286e"
"commit": "692ace7752e84dedfd76a741266fbe778df845ef"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.stsound/audiodecoder.stsound.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.stsound",
"commit": "a04cfdf6ea8758973265b35c427a87f35bd24b71"
"commit": "2ae3092092e0bd7522b1ac3d8e2c7f77dd71d309"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.timidity/audiodecoder.timidity.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.timidity",
"commit": "9d6962999b7fd185d9a6b08959f18fd015d8f95b"
"commit": "2c0d104de996f7dd5d4e4ada2516e81100cb4413"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.upse/audiodecoder.upse.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.upse",
"commit": "14bb7c0a7b2d087e5c1c2052604d30fd8511e9ff"
"commit": "221dc3985eb5721e324bd67b738debe6527ebcb3"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.usf/audiodecoder.usf.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.usf",
"commit": "2d06d237bd23b6e4c073cb78a88837477605b2eb"
"commit": "0df2a0a09fd8f68e3275c20e6fec3d5cab14f621"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.vgmstream/audiodecoder.vgmstream.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.vgmstream",
"commit": "a96462a038cfc92edd331c2410b9e02231102b39"
"commit": "3fe3f1be64aefc4f502808cc27ce2c0db88576d4"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audiodecoder.wsr/audiodecoder.wsr.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audiodecoder.wsr",
"commit": "406a444e789852a1fa8fb4a6b307393afdc7a2dc"
"commit": "c3cf811973ea34768733949a007a8e3c37cbafa1"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audioencoder.flac/audioencoder.flac.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audioencoder.flac",
"commit": "8f8fd680beb030a6c238b09e9c59d224d4216d6a"
"commit": "d82abd0bc5cb7485bbb316cf840f85d0c0bd358e"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audioencoder.lame/audioencoder.lame.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audioencoder.lame",
"commit": "c1cc73ae5a7dcc5bc9c20e7c9ea9afc7fd31607c"
"commit": "387be6256a871c5935d46a3470b5ef992d954c4b"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audioencoder.vorbis/audioencoder.vorbis.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audioencoder.vorbis",
"commit": "d814fe065bb9776b918981a25bd09ec01b45bfe9"
"commit": "f2fc94ce389885a04609e2970ec8291675cdac18"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/audioencoder.wav/audioencoder.wav.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/xbmc/audioencoder.wav",
"commit": "1619a87d3080b00ad98ac088a0d8d1a605228b60"
"commit": "648358bcba40ba6c53e97aabd56b9071484e089b"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/game.libretro.2048/game.libretro.2048.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"type": "git",
"url": "https://github.com/kodi-game/game.libretro.2048",
"commit": "5fa039668aafad146c709bf0c18d037eb76a864f"
"commit": "f10bbd78311e8b8a127423728d60ec123e4a9b7f"
},
{
"type": "file",
Expand Down
2 changes: 1 addition & 1 deletion addons/game.libretro.a5200/game.libretro.a5200.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
{
"type": "git",
"url": "https://github.com/kodi-game/game.libretro.a5200",
"commit": "ea8c62e7fc2f526d8b84be034d78369d9794b3a6"
"commit": "d2b880cfe1a0be927350075799b9da9e9bc1872c"
},
{
"type": "file",
Expand Down
6 changes: 3 additions & 3 deletions addons/game.libretro.atari800/game.libretro.atari800.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
{
"type": "git",
"url": "https://github.com/kodi-game/game.libretro.atari800",
"commit": "6cea63ea4ce7262c6c62505959354bfc58a77c39"
"commit": "2c58aca54b206f3de23fc163901ace0395125e3c"
},
{
"type": "file",
Expand All @@ -42,8 +42,8 @@
"sources": [
{
"type": "archive",
"url": "https://github.com/libretro/libretro-atari800/archive/cd721790a0aa0e0772810949abcf5bd699c15371.tar.gz",
"sha256": "51493acb0894097717ecf4c2039a14ebb171f42a046c6833118746ed6885fdbc"
"url": "https://github.com/libretro/libretro-atari800/archive/4e7fbc73765c1a9670c7506616046ad1d4ccda51.tar.gz",
"sha256": "475f072f17059a23f402ee2744c00476aba5b7c819b1af3b38c933e45bdf2947"
}
]
}
Expand Down
Loading