Upgrading plugins was broken for various reasons. There are four fixes and a minor one: 1. Use a directory name based only on the `Name` of the plugin, not the source filename, which contains the version. Avoids strange duplication of the plugin. 2. Use the new directory name for the deletes if it's present, so that installation and removal happen at that directory level and we don't leave empty folders laying around. Ensures we properly remove additional resources in plugins too, not just the main `.dll` file. 3. Ignore the incoming `target` when installing, and always set it ourself to the proper directory, which would matter when reinstalling. 4. Deletes an existing target directory before installing if it exists. Note that not calling any of the plugin removal code is intentional; I suspect that would delete configurations unexpectedly when upgrading which would be annoying. This way, it just replaces the files and then reloads. 5. (Minor) Added some actual debug messages around the plugin download section so failures can be more accurately seen. |
||
---|---|---|
.ci | ||
.copr | ||
.github | ||
.vscode | ||
BDInfo | ||
deployment | ||
DvdLib | ||
Emby.Dlna | ||
Emby.Drawing | ||
Emby.IsoMounting | ||
Emby.Naming | ||
Emby.Notifications | ||
Emby.Photos | ||
Emby.Server.Implementations | ||
Emby.XmlTv | ||
hooks | ||
Jellyfin.Drawing.Skia | ||
Jellyfin.Server | ||
MediaBrowser.Api | ||
MediaBrowser.Common | ||
MediaBrowser.Controller | ||
MediaBrowser.LocalMetadata | ||
MediaBrowser.MediaEncoding | ||
MediaBrowser.Model | ||
MediaBrowser.Providers | ||
MediaBrowser.Tests | ||
MediaBrowser.WebDashboard | ||
MediaBrowser.XbmcMetadata | ||
Mono.Nat | ||
RSSDP | ||
.dockerignore | ||
.drone.yml | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
build | ||
build.yaml | ||
bump_version | ||
CONTRIBUTORS.md | ||
Dockerfile | ||
Dockerfile.arm | ||
Dockerfile.arm64 | ||
Doxyfile | ||
jellyfin.code-workspace | ||
jellyfin.ruleset | ||
LICENSE | ||
MediaBrowser.sln | ||
MediaBrowser.sln.GhostDoc.xml | ||
README.md | ||
SharedVersion.cs |
Jellyfin
The Free Software Media System
Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. We welcome anyone who is interested in joining us in our quest!
For further details, please see our documentation page. To receive the latest updates, get help with Jellyfin, and join the community, please visit one of our communication channels on Matrix/Riot or social media.
For more information about the project, please see our about page.
Want to get started? Choose from Prebuilt Packages or Build from Source, then see our first-time setup guide.
Want to contribute? Check out our documentation for guidelines.
New idea or improvement? Something not working right? Open an Issue.