Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for jellyfin 10.9 #24

Closed
foux opened this issue May 11, 2024 · 21 comments
Closed

Add support for jellyfin 10.9 #24

foux opened this issue May 11, 2024 · 21 comments

Comments

@foux
Copy link

foux commented May 11, 2024

Hi there.
Jellyfin 10.9 just made its way out of beta. Plugin compatibility would be nice!

Here are the erros loading the plugin on 10.9 :

2024-05-11 21:46:10.556 +02:00] [ERR] [1] Emby.Server.Implementations.Plugins.PluginManager: Failed to load assembly "/config/data/plugins/InfuseSync_1.4.2.0/InfuseSync.dll". This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
Could not load file or assembly 'SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext()
System.TypeLoadException: Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
System.TypeLoadException: Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
System.IO.FileNotFoundException: Could not load file or assembly 'SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

Thanks

@brettwilcox
Copy link

I also wanted to point out this fix by jet082. I've not tested, but may be a good place to start.

So, taking the SQLitePCL.pretty dll file from the latest version (10.8.11) here (https://repo.jellyfin.org/releases/server/portable/stable/) and placing it in the same plugin directory as InfuseSync allows it to work again.

Perhaps all that needs happening is bundling this dll when installing via infuse.

@Oatavandi
Copy link

Oatavandi commented May 14, 2024

Does not work with jellyfin 10.9.1
Even with the workaround mentioned above.

@ghost
Copy link

ghost commented May 15, 2024

Yes it's incompatible with JF 10.9.x I'd like an update too. Also without plugin scans take forever.

@simoncaron
Copy link

For anyone interested, until this is resolved, I did the minimum fixes to get it working again. Didn't rewrite the SQL part so it's still relying on SQLitePCL.

I've compiled the DLL and uploaded it (along with the SQL one) here: https://github.com/simoncaron/InfuseSync/releases/tag/fix-jellyfin-10.9.x

@jet082
Copy link

jet082 commented May 16, 2024

For anyone interested, until this is resolved, I did the minimum fixes to get it working again. Didn't rewrite the SQL part so it's still relying on SQLitePCL.

I've compiled the DLL and uploaded it (along with the SQL one) here: https://github.com/simoncaron/InfuseSync/releases/tag/fix-jellyfin-10.9.x

This returns "Plugin NotSupported" on the latest Unstable. I think there might be one or two minor tweaks required to get it working (a version string?), but that's beyond my knowledge.

I decided to update my old jellyfin finally and it, unfortunately, broke my fix in #21 and the fix @simoncaron linked is not sufficient.

@russelg
Copy link

russelg commented May 16, 2024

@jet082 you need to edit the meta.yml file for the plugin, update the abiVersion to "10.9.0.0". Should work after that.

@jet082
Copy link

jet082 commented May 16, 2024

@jet082 you need to edit the meta.yml file for the plugin, update the abiVersion to "10.9.0.0". Should work after that.

Where do I do that? I'm sorry, I don't know the plugin system all that well.

The errors I am getting are as follows:

[INF] Loaded assembly "SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" from "/var/lib/jellyfin/plugins/InfuseSync_1.4.2.0/SQLitePCL.pretty.dll"
[ERR] Failed to load assembly "/var/lib/jellyfin/plugins/InfuseSync_1.4.2.0/InfuseSync.dll". This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext()
System.TypeLoadException: Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
System.TypeLoadException: Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.

@russelg
Copy link

russelg commented May 16, 2024

What did you do with the new DLL files? They are meant to go in your jellyfin's plugin directory. I don't know what your paths are like, but it'll be /plugins/InfuseSync_1.4.2.0. Put the new DLLs in there, replacing any old ones, then edit the meta file there as well. Restart and should work.

For clarity, judging by the errors there, it seems your DLL was not the updated one.

@jet082
Copy link

jet082 commented May 16, 2024

What did you do with the new DLL files? They are meant to go in your jellyfin's plugin directory. I don't know what your paths are like, but it'll be /plugins/InfuseSync_1.4.2.0. Put the new DLLs in there, replacing any old ones, then edit the meta file there as well. Restart and should work.

For clarity, judging by the errors there, it seems your DLL was not the updated one.

I've verified via the md5sums that what is loaded is indeed the exact one on @simoncaron's releases page. Moreover, I've looked at the meta.json file and it has "targetAbi": "10.9.0.0", so I think that it's something else.

@russelg
Copy link

russelg commented May 16, 2024

I've verified via the md5sums that what is loaded is indeed the exact one on @simoncaron's releases page. Moreover, I've looked at the meta.json file and it has "targetAbi": "10.9.0.0", so I think that it's something else.

Not sure what to tell you, if you look at the diff for simoncaron's fixes, you can see IServerEntryPoint was replaced with IHostedService. There are no references to IServerEntryPoint in the fork anymore. I also downloaded the DLL and decompiled it, can't see any references to it there either. If it's loading the correct DLLs, there should not be errors crying about IServerEntryPoint.

@jet082
Copy link

jet082 commented May 16, 2024

I've verified via the md5sums that what is loaded is indeed the exact one on @simoncaron's releases page. Moreover, I've looked at the meta.json file and it has "targetAbi": "10.9.0.0", so I think that it's something else.

Not sure what to tell you, if you look at the diff for simoncaron's fixes, you can see IServerEntryPoint was replaced with IHostedService. There are no references to IServerEntryPoint in the fork anymore. I also downloaded the DLL and decompiled it, can't see any references to it there either. If it's loading the correct DLLs, there should not be errors crying about IServerEntryPoint.

Ah you're completely right. Forgive me for wasting some of your time - I was looking at the wrong log entries. The errors I am receiving using the updated DLLs are as follows:

[ERR] Failed to load assembly "/var/lib/jellyfin/plugins/InfuseSync_1.4.2.0/InfuseSync.dll". This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load file or assembly 'MediaBrowser.Common, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

Could not load file or assembly 'MediaBrowser.Model, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

Could not load file or assembly 'MediaBrowser.Model, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

Could not load file or assembly 'MediaBrowser.Controller, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext()
System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Common, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'MediaBrowser.Common, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'
System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'MediaBrowser.Model, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'
System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'MediaBrowser.Model, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'
System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Controller, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'MediaBrowser.Controller, Version=10.9.1.0, Culture=neutral, PublicKeyToken=null'

@russelg
Copy link

russelg commented May 16, 2024

Is your jellyfin version definitely 10.9.1? Those assemblies are part of Jellyfin so the only way they wouldn't be present is if you're not actually on 10.9.1.

I have [INF] [1] Main: Jellyfin version: 10.9.1 in my log for example.

@jet082
Copy link

jet082 commented May 16, 2024

Jellyfin version

I'm on Jellyfin unstable build 2024050906. Is that somehow older than 10.9.1?

@jet082
Copy link

jet082 commented May 16, 2024

Okay well I got it to work on unstable 2024050906 by downloading https://blr1.mirror.jellyfin.org/files/server/portable/stable/v10.9.1/any/jellyfin_10.9.1.zip and copying over the files MediaBrowser.Controller.dll, MediaBrowser.Common.dll, MediaBrowser.Model.dll, and Jellyfin.Data.dll to the plugin directory.

@russelg
Copy link

russelg commented May 16, 2024

Yep, looked into it a bit more, seems unstable is using 10.9.0.0 as the version for the assemblies still. I just downloaded a fresh copy of stable 10.9.1, and the assemblies there are versioned 10.9.1.0. Quite odd...

@EthanBezz
Copy link

The devs are aware of the issue. Fixed version will be "available soon".

https://community.firecore.com/t/add-infusesync-plugin-support-for-jellyfin-10-9/49006/7

@Cptnobeard
Copy link

is there any update on this issue and maybe a aprox release date?
anyway i want to thank everyone for there hard work!

@firecore
Copy link
Owner

We have just posted a beta version of 1.5.0 which is available to test.

We are still doing some final internal testing but things are looking good.

@P-Verbrugge
Copy link

Any release date available yet?

@hostler
Copy link

hostler commented May 30, 2024

Any release date available yet?

It's released since a few days.

When will it be in the Jellyfin repo?

@firecore
Copy link
Owner

We've released the 1.5.0 version of InfuseSync which adds support for Jellyfin 10.9.

We're working with the Jellyfin admins to get this new version added to the main Jellyfin plugin catalog, but in the meantime you can install the update by following the steps in this post on our forum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests