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
Fix Jellyfin not installing correctly #1032
base: develop
Are you sure you want to change the base?
Conversation
Jellyfin split their repository into seperate ones for Debian and Ubuntu. These changes will make Swizzin compliant.
I accidentally typed "key" rather than "repository" here in my last commit and didn't notice.
Jellyfin is completely switched to the new repositories. They split Debian and Ubuntu apart. Swizzin should be compliant now.
These variables were not used at all in these scripts.
Update and install should have progress echos.
Made some of the echos more pretty and fitting with the rest of Swizzin.
…nges are made. Tried installing on amd64 using previous iteration. Failed due to not supporting amd64 even though it is supported.
Previously removed BASE_OS while fixing another bug, accidentally created this one.
Script catches a warning when trying to perform dist_info.
…versions Jellyfin supports and it causes a bug anyway. Since Swizzin is less compatible than Jellyfin, checking for compatability is redundant. Code removed due to causing program-exiting bugs.
Optimizing key pulling and installation.
…ion of download program selector. I forgot to include a path for curl and wget.
Previous implementation resulted in key not being grabbed successfully. Works way better if you just assume curl is present.
These echoes are not needed for the script to function as intended.
…gning key. I think it looks nicer now.
Unnecessary echo before adding signing key.
Fixing the issues with architecture and distribution filtering that caused issues in the install script. Also made some changes to create better parity between the scripts.
Shellcheck was complaining so trying an experimental fix. Hope this works.
Gets rid of some unreadable code in favor of something that does basically the same thing.
These echoes should fit the overall theme better now.
Jellyfin key used previously has expired. This will automatically pull the new key from Jellyfin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR KatieTheDev. There are a few issues that cropped up during the review that should be resolved, but this otherwise looks good.
Thanks for the contribution!
scripts/install/jellyfin.sh
Outdated
|
||
# Handle some known alternative base OS values with 1-to-1 mappings | ||
# Use the result as the repository base OS | ||
case "${BASE_OS}" in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This case is basically useless aside from setting the _os_codename. If an OS doesn't directly identify itself as Debian or Ubuntu (i.e. during install) then we don't support it.
We certainly don't support linux mint or kde neon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was unaware we don’t support those distros at all. I will be removing them from the scripts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I removed unsupported distros, but I am not aware if _os_codename is set as debian on raspbian. It is necessary to make sure raspbian is set to the same repos as debian, as that is what Jellyfin requires.
scripts/update/jellyfin.sh
Outdated
# Use the result as the repository base OS | ||
ARCHITECTURE="$(dpkg --print-architecture)" | ||
BASE_OS="$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)" | ||
case "${BASE_OS}" in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
replicated code should be a function; however, this is useless code beyond the setting of the distro codename (as above)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will use _os_codename in both cases if you can confirm that raspbian is set to debian. If not, I will create a function.
scripts/update/jellyfin.sh
Outdated
|
||
# | ||
# Install the Deb822 format jellyfin.sources entry | ||
echo_progress_start "Adding Jellyfin repository to apt" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replicated code should be functionized (sources/functions/jellyfin), however I wouldn't block merging based on this, but it would be best-practices for long-term ease of maintenace.
I will make the desired changes. Also, I realized that |
like mobile apps? If that were the case we would have had a lot more people complain about that by now I think |
I do think some of the mobile apps won't work with self-signed certificates. The use-case of this self-signed cert is limited only to installs without the nginx proxy though, so the amount of people using self-signed certs on installs without nginx is probably limited. That said, it would also affect folks without a domain/let's encrypt |
Would it be acceptable for me to add instructions for turning it off in the wiki as a potential fix for app issues? |
That, plus maybe a |
I don't really know how to fix the conflicts that need to be resolved. |
Trying to make the echoes more descriptive.
Universe repo is Ubuntu-only. Removed.
I believe that I have resolved merge conflicts and I have merged the latest updates into my branch. I believe I have also resolved the blocking changes, as I have switched everything to builtins that I noticed in your suggestions. I will now work on functionizing things. |
I am unsure why pre-commit is showing a failure. I have no errors in shellcheck. |
See PR 1032 for more info.
I added a new commit splitting the repository into a separate function. I was also able to include those new variables into it, as the only place those were used was in that function. |
@@ -40,6 +34,17 @@ if [[ -n $active ]]; then | |||
fi | |||
fi | |||
|
|||
# | |||
## Get the path to gpg or install it | |||
GNUPG=$(which gpg) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gnupg2 is a global dependency of swizzin. You can safely assume every user has this installed already.
ARCHITECTURE="$(_os_arch)" | ||
BASE_OS="$(_os_distro)" | ||
case "${BASE_OS}" in | ||
raspbian) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think raspbian will pass this check so we don't need to write a case for it
LGTM other than the two comments |
I believe the errors were a result of sausage doing the dev work on pre-commit checks at the same time and the pipeline issues have been resolved. Next time you commit it should re-check 🤞 |
Description
Jellyfin split their repositories into two and have explained why here. To accommodate this change, I have updated the installation script and update script to accommodate their new repository changes.
Fixes issues:
Proposed Changes:
Change Categories
Checklist
develop
branch and the PR is targetting thedevelop
branchTest scenarios
I tested by running box install and box update using these new scripts. The embedded video was created before I finished work on the update script, but demonstrates how both scripts function. I also did more commits to the install script after making the video, but everything worked anyway as these were mainly stylistic changes or changes to echoes. Test performed on Ubuntu Server 22.04.2 VM in Proxmox VE on a Dell Poweredge R720xd running a fresh install of Swizzin. Only other packages installed on Swizzin were panel and nginx.
If you want to watch the test video in 1080p:
https://youtu.be/Swa9ESljrVU
Uploaded in 480p to meet GitHub size limits:
https://github.com/swizzin/swizzin/assets/51092829/d0f279c7-0c6d-41a6-8207-c5c5addf1726
Architectures
amd64
armhf
arm64
✅❎ Passed
🛠🛠 TODO
❌❌ Currently failing