577 Commits
Author SHA1 Message Date
Anderson Mesquita f3c6af0b7b fix(macos): bundle SDL3 for sdl2-compat at install time
Homebrew replaced its `sdl2` formula with `sdl2-compat`, a compatibility
layer that provides the SDL2 API by `dlopen`-ing the real SDL3 library
at runtime. The macOS CI build (`build-macos.yml`) pulls this via `brew
install mpv`, so the app now links `libSDL2-2.0.0.dylib` which is
actually `sdl2-compat`, and every nightly ships it in
`Contents/Frameworks`.

SDL3 is not a linker dependency, so it never shows up in `otool -L`
output and the `CompleteBundleMac` fixup loop never copies it into the
app bundle. At runtime `sdl2-compat` looks for `libSDL3.dylib` relative
to its own loader path, cannot find it, prints "Failed loading SDL3
library." and aborts during dyld initialization, since the library is
missing. This regression appeared once Homebrew's SDL2 became the
`sdl2-compat` shim, so older nightly builds (built against genuine SDL2)
are unaffected.

This detects `sdl2-compat` inside the bundle (it is the only
`libSDL2-2.0.0.dylib` containing the `libSDL3.dylib` loader string) and
explicitly copies libSDL3 from the Homebrew prefix into
`Contents/Frameworks/libSDL3.dylib`, using the same `install-id`
convention as the other bundled dylibs so `codesign` and the existing
fixup steps keep working. If SDL3 cannot be found at install time a
warning is printed instead of failing silently.

Fixes #1225
2026-08-12 22:38:42 -04:00
npinto97 ab723427c1 feat(windows): add Windows build pipeline and Qt configuration support 2026-08-11 01:04:11 +02:00
Eric Gregory 00c44bc74d Simplify configuration for Qt Creator builds (#1154)
* Simplify building with Qt Creator

* Auto-generate preseets

* Use template for CMakePresets
2026-02-24 21:07:22 -05:00
Andrew Rabert cd8698c0e2 Fix warnings; remove dead code 2025-12-30 18:39:08 -05:00
Andrew Rabert df852c99cb Update artifact names 2025-12-26 23:56:27 -05:00
Andrew Rabert a8d0f47dc5 Use DATA_NAME for Qt applicationName on Linux
Consolidates APP_NAME into DATA_NAME and removes redundant MainName().
Ensures Qt's QStandardPaths (cache, config dirs) match our Paths code,
fixing duplicate cache directories on Linux.
2025-12-26 17:45:32 -05:00
Andrew Rabert 7ebf46e96c Use qt_add_qml_module for QML AOT compilation
Eliminates runtime qmlcache by compiling webview.qml ahead of time.
Fixes portable mode cache leak where qmlcache was written to system dir.
2025-12-26 16:49:20 -05:00
Andrew Rabert 6b11ab921c Add LOCALAPPDATA path for Inno Setup discovery 2025-12-26 05:28:24 -05:00
Andrew Rabert a730b75189 Fix setup-windows.bat and portable ZIP build 2025-12-26 05:07:04 -05:00
Andrew Rabert 3e840b3c8c Add portable mode for Windows
Detect portable marker file (portable or portable.txt) next to exe
and store data/cache in app directory instead of AppData.

ZIP package includes marker file for out-of-box portable use.
2025-12-26 03:51:15 -05:00
Andrew Rabert 747275054e Bundle VC runtime DLLs for Windows installer
- Support user-level install (no admin required)
- Bundle MSVC runtime DLLs from deps/vcruntime
- Offer system-wide VCRedist install when running as admin
- Add portable ZIP artifact (windows_zip target)
- Add combined windows_all target for installer + ZIP
2025-12-26 03:49:48 -05:00
Andrew Rabert e84dec77ca Support non-AVX CPUs with x86_64 libmpv fallback
Bundle both x86_64-v3 (AVX) and x86_64 (non-AVX) libmpv versions.
Installer detects AVX2 at install time and keeps the appropriate DLL.
2025-12-25 13:10:52 -05:00
Andrew Rabert f8e65dc138 Change to Inno Setup for Windows
WiX 3 is EOL and is one of the blockers for arm64 builds.
2025-12-25 02:08:28 -05:00
Andrew Rabert 5bba0eaa22 Fix Windows CI 2025-12-23 19:15:49 -05:00
Andrew Rabert b8c4e83e17 Fix mac ci build; use aqtinstall 2025-12-23 19:15:30 -05:00
Andrew Rabert c74f0b71f0 Merge pull request #1064 from alchemyyy/master
2.0.0 build for Windows
2025-12-21 22:08:52 -05:00
Andrew Rabert 468e59eee9 Fix build-mac 2025-12-20 19:54:01 -05:00
iZack 52d5067676 Working 2.0.0 build for Windows
It is really late so I'm calling it here. I wanted to put this out for relevant people to get eyes on, in order to aid in getting the Windows build of v2.0.0 out. Apologies in advance for not following any contrib guidelines or there being messes.  I'm leaving in the build scripts I used for now. The build scripts still contain a few hardcoded visual studio related values for now.  At the moment when I run the app on a different machine to the dev VM I'm using the qt web view doesn't seem to be rendering.

summary of where this is at:
the whole thing builds
works on my Windows 11 virtual machine

short summary of what I did:

A couple of qt6 updates specific to windows were addressed.

Some build system issues were addressed

did some minor refactoring to sieve out binary build dependencies from generated build files since its a lot easier when you can just delete the build folder to run a clean build
2025-12-19 01:43:38 -08:00
Andrew Rabert 726b067df3 Change launcher/titlebar name to "Jellyfin Desktop"
For clarity
2025-12-17 22:46:09 -05:00
Andrew Rabert c7078046a4 Fix stale resources not building (again)
Always execute rcc and compare the hash of the resulting file to the
existing one. If it's different, write it.
2025-12-15 22:43:51 -05:00
Andrew Rabert f1579d322d Cleanup build scripts
- remove unused scripts
- convert python scripts to cmake
- move WindowsSign.cmd to bundle/win
2025-12-15 18:19:32 -05:00
Andrew Rabert b3c85d959c Use VERSION file for versioning 2025-12-14 05:26:32 -05:00
Andrew Rabert 8281ee713d Rename to Jellyfin Desktop 2025-12-14 05:26:31 -05:00
Andrew Rabert cc103e35c1 Bump minimum macos version to 10.15
Fixes compilation
2025-12-04 18:50:30 -05:00
Andrew Rabert 107ab1affc Revert "Remove non-dbus X11 power management"
This reverts commit 7b067a751b.
2025-11-30 22:11:53 -05:00
Andrew Rabert 7b067a751b Remove non-dbus X11 power management
Spawning a new process every 15 seconds is an inefficient hack.
2025-11-30 21:21:10 -05:00
Andrew Rabert a89d8ca5eb Fix -Wmissing-include-dirs warning for nonexistent QTROOT 2025-11-29 00:29:35 -05:00
Andrew Rabert c19af07b8e Fix CMake missing include dirs warnings 2025-11-28 23:27:43 -05:00
Andrew Rabert 0d7d0eb6b1 Remove explicit gold linker specification 2025-11-28 23:14:26 -05:00
Andrew Rabert f204676e4b Fix some qt6 builds
- Fixes build and package for at least Ubuntu 24.04
- Defaulted to building and statically linking mpvqt as most platforms
  lack packages for it.
- Workaround mpvqt requiring qt>=6.5 for wayland support with a few
  workarounds when statically building.
- Additionally, default to xcb on qt<6.5 due to mpvqt using qt>=6.5
  fetures for wayland. Wayland can be forced, but seems to give black
  video.
2025-11-23 02:09:33 -05:00
Andrew Rabert c7e9cf7486 Change to Qt 6
Co-authored by: Izzie Walton <ian@iwalton.com>
Co-authored by: Satadru Pramanik <satadru@gmail.com>
Co-authored by: sevenrats <sevenrats@tutanota.com>
Co-authored by: xB <65196493+xBiei@users.noreply.github.com>
Co-authored by: zjeffer <4633209+zjeffer@users.noreply.github.com>
2025-11-22 18:16:00 -05:00
Andrew Rabert 9621af1b2b Refactor web security bypasses
- Remove --disable-web-security flag as it's no longer needed
    - There are no CORS nor CPS issues
    - mpv integration works
    - the service worker works
- Bundle JMP web bridge resources in application binary (file:// ->  qrc://)
    - This keeps installs cleaner and removes the risk of the native
      files going missing or using the incorrect paths.
    - Using file:// also had some issues with CSP
    - The JS assets are combined into a single JS script which is
      injected as a user script. This bypasses CSP issues.
- Replace connectivity check and web HTML retrieval JavaScript methods
  with C++ methods. This works around CORS issues on the server
  selection page.
2025-10-28 19:49:11 -04:00
Andrew Rabert 2b2d1aefb4 Fix stale native resources on rebuild 2025-10-27 20:27:08 -04:00
Andrew Rabert 0294ada0b9 Fix development build using system js resources
Copy native resources to build directory on all platforms
2025-10-27 20:06:24 -04:00
Andrew Rabert b1ae61f542 Add CLI option option to override config dir (--config-dir)
This commit also consolidates the default configuration directories
and makes the cache path consistent.

From:
    ~/.cache/Jellyfin Media Player
    ~/.local/share/jellyfinmediaplayer
    ~/.local/share/Jellyfin Media Player

To just:
    ~/.cache/jellyfinmediaplayer
    ~/.local/share/jellyfinmediaplayer
2025-10-24 17:34:54 -04:00
Andrew Rabert 6c5c603a1d Fix compatibility with cmake 4.0 (Linux-only)
CMP0026 OLD behavior was removed in cmake 4.0. This should be safe as,
at least on Linux, there doesn't seem to be any resources being copied.

There might still be changes needed to fix compatibility with cmake 4.0
when building for macos.
2025-03-29 22:28:27 -04:00
Izzie Walton 33fbda2f71 Up version to 1.12.0 and add preliminary changelog. 2025-03-18 10:52:37 -04:00
Izzie Walton 64af220dad Up version to 1.11.1. 2024-06-07 22:17:03 -04:00
Izzie Walton 1075ff722c Up version to 1.11.0. 2024-06-06 17:21:14 -04:00
Izzie Walton 1ca6cb8df8 Up version to 1.10.1. 2024-05-17 18:27:37 -04:00
Izzie Walton e50510bcd0 Merge pull request #580 from kambala-decapitator/macos-now-playing-metadata
[macOS] show what's playing in the OS's "now playing"
2024-05-13 17:57:30 -04:00
Izzie Walton 95b9761bf8 Up version to 1.10.0. 2024-05-13 17:39:21 -04:00
Andrey Filipenkov 25affb5b9c [macOS] remove no longer used SPMediaKeyTap
MPRemoteCommandCenter and MPNowPlayingInfoCenter are available since macOS 10.12.2
2024-04-21 12:26:08 +03:00
Ian Walton 086fd6a521 Up version to 1.9.1. 2023-04-23 13:13:11 -04:00
Ian Walton bf30227842 Up version to 1.9.0. 2023-03-12 15:57:57 -04:00
Ian Walton 2450ae1956 Allow running JMP with no bundled webclient! 2023-03-10 00:59:31 -05:00
Ian Walton b78e06a6b8 Replace release 1.8.0 with 1.8.1. 2023-02-13 05:38:00 -05:00
Ian Walton 09f3f0dcaa Up version to 1.8.0. 2023-02-12 19:23:48 -05:00
Ian Walton 9baa52eebc Up version to 1.7.1. 2022-06-26 14:04:50 -04:00
Ian Walton 4570d6a04b Up version to 1.7.0. 2022-06-11 12:02:33 -04:00