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

[New Package] Kavita #5978

Merged
merged 17 commits into from
Jan 21, 2024
Merged

[New Package] Kavita #5978

merged 17 commits into from
Jan 21, 2024

Conversation

mreid-tt
Copy link
Contributor

@mreid-tt mreid-tt commented Jan 11, 2024

Description

Kavita is a fast, feature rich, cross platform reading server. Built with a focus for being a full solution for all your reading needs.

Closes #5967

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • New Package
  • This change requires a documentation update (e.g. Wiki)

@mreid-tt mreid-tt added status/work-in-progress new-package PR/WIP for a new package labels Jan 11, 2024
@mreid-tt mreid-tt self-assigned this Jan 11, 2024
@mreid-tt
Copy link
Contributor Author

mreid-tt commented Jan 11, 2024

@hgy59, I've created this new package based on #5967. The source is built on dotnet so I leveraged the templates from the *arr family of packages. There were a few exceptions:

  1. I could not use the standard SERVICE_COMMAND because each time the package launched I got the following error:
Error reading app settings: Could not find file '/config/appsettings.json'.
  • Trying to resolve it by adding environment variables for $HOME and others did not help. This app also does not seem to support command line arguments based on its documentation
  • To work around the problem I made a manual service_prestart based on the wiki page and added an explicit change to the working directory; this resolved the issue
  1. The package does not use the latest v0.7.12 from source because under DSM 6, I get the following errors:
System.TypeInitializationException: The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.DllNotFoundException: Unable to load shared library 'e_sqlite3' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: 
/volume1/@appstore/kavita/share/e_sqlite3.so: cannot open shared object file: No such file or directory
/lib/libc.so.6: version `GLIBC_2.28' not found (required by /volume1/@appstore/kavita/share/libe_sqlite3.so)
libe_sqlite3.so: cannot open shared object file: No such file or directory
/volume1/@appstore/kavita/share/e_sqlite3: cannot open shared object file: No such file or directory
/volume1/@appstore/kavita/share/libe_sqlite3: cannot open shared object file: No such file or directory
  • Downgrading to the v0.7.11.2 release resolved the issue

@mreid-tt
Copy link
Contributor Author

hey @hgy59, I was wondering if you had any thoughts on the error I posted:

/lib/libc.so.6: version `GLIBC_2.28' not found (required by /volume1/@appstore/kavita/share/libe_sqlite3.so)

As this happens only with DSM 6, I would imagine it has something to do with this dependency:

include ../../mk/spksrc.common.mk
ifeq ($(call version_lt, ${TCVERSION}, 7.0),1)
# dotnet requires libstdc++ version >= 6.0.22
DEPENDS += cross/libstdc++
endif

Or are we missing a dependency?

@hgy59
Copy link
Contributor

hgy59 commented Jan 13, 2024

@mreid-tt for this package prebuilt binaries are used. Those binaries are not compiled with the DSM toolchains.

So the binaries are built with a dependency of gligc that is newer than what is available under DSM 6.

The only solution would be to build the package from source with the toolchains and native/dotnet8, but it could be a hard requirement of the sqlite library in the package and fail to build.
I guess you have to drop support for DSM < 7.

@mreid-tt
Copy link
Contributor Author

@mreid-tt for this package prebuilt binaries are used. Those binaries are not compiled with the DSM toolchains.

So the binaries are built with a dependency of gligc that is newer than what is available under DSM 6.

The only solution would be to build the package from source with the toolchains and native/dotnet8, but it could be a hard requirement of the sqlite library in the package and fail to build. I guess you have to drop support for DSM < 7.

Thanks for the analysis. The package has been updated to remove DSM 6 support. Your final review and approval would be appreciated.

@mreid-tt mreid-tt requested a review from hgy59 January 13, 2024 22:19
@mreid-tt
Copy link
Contributor Author

@hgy59, any final thoughts on this or are we good to merge?

Copy link
Contributor

@hgy59 hgy59 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am missing some documentation on how to configure the folders in kavita.

We should document that the internal system user sc-kavita must have read access to the folders (or does it even need write access too?)

@mreid-tt
Copy link
Contributor Author

I am missing some documentation on how to configure the folders in kavita.

We should document that the internal system user sc-kavita must have read access to the folders (or does it even need write access too?)

I've amended the wizard. The Kavita First Time Setup has no guidance on permissions so I'd play it safe with assumed full permissions.

Copy link
Contributor

@hgy59 hgy59 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mreid-tt mreid-tt merged commit 9539343 into SynoCommunity:master Jan 21, 2024
17 checks passed
@mreid-tt mreid-tt deleted the package-kavita branch January 21, 2024 14:02
@mreid-tt mreid-tt added status/published Published and activated (may take up to 48h until visible in DSM package manager) and removed status/ready-to-merge labels Jan 21, 2024
@borisrorsvort
Copy link

@mreid-tt would you have time to upgrade the package to the latest version?

@mreid-tt
Copy link
Contributor Author

@mreid-tt would you have time to upgrade the package to the latest version?

hi @borisrorsvort, yes, I'll try to make some time over the weekend to publish an update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-package PR/WIP for a new package status/published Published and activated (may take up to 48h until visible in DSM package manager)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Package Request] Kavita Book Reader
3 participants