mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-01-23 23:20:51 +01:00
10.6.0 RPM doesn't update previous versions #1949
Labels
No labels
area:database
awaiting-feedback
backend
blocked
breaking change: web api
bug
build
ci
confirmed
discussion needed
dotnet future
downstream
duplicate
EFjellyfin.db
enhancement
feature
future
github-actions
good first issue
hdr
help wanted
invalid
investigation
librarydb
live-tv
lyrics
media playback
music
needs testing
nuget
performance
platform
pull-request
question
regression
release critical
requires-web
roadmap
security
security
stale
support
syncplay
ui & ux
upstream
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: starred/jellyfin#1949
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @brianjmurrell on GitHub (Jul 25, 2020).
Because there is no
%filessection in thejellyfin.specno jellyfin package is produced and only a jellyfin-server package is produced. This leaves RPM with nothing to do. The jellyfin package is needed so that it upgrades an existing/installed jellyfin package and that brings in the jellyfin-server package.@mooninite commented on GitHub (Jul 30, 2020):
There is no need for an empty Jellyfin package. The fix is to add a Provides/Obsoletes pair to jellyfin-server.
Obsoletes: jellyfin < 10.6.0
Provides: jellyfin = %{version}-%{release}
@brianjmurrell commented on GitHub (Jul 30, 2020):
That does not meet the goal of separating the server out into it's own package as I understand it.
My understanding is that the future jellyfin package is to be the webUI separated from the jellyfin-server package such that one can install just jellyfin-server if they want just the server with no webUI or they can install jellyfin which will install both the jellyfin-server as well as the webUI package.
So the (currently) empty (it's in fact called a meta-package) jellyfin package needs to be preserved until all of the above is finally accomplished and future users should just continue to allow the jellyfin package to upgrade without having to have a manual/flag-day event where users have to manually fiddle with package installation to overcome a non-backwards compatible packaging change.
Can you please confirm if my understanding of the path forward is correct @joshuaboniface?
@mooninite commented on GitHub (Jul 30, 2020):
Then add the Obsoletes/Provides and a Requires: jellyfin-server into the jellyfin-web package.
When someone types in "dnf install jellyfin" it will drag in the jellyfin-web package (Provides: jellyfin) and jellyfin-server package.
It does not need to be preserved. If this helps convince you: I'm a 10+ year Fedora packager that maintains dozens of packages. I'm aware of all sorts of cases of package retirement and renaming that are explained in Fedora packaging guidelines. I'll list the particular guidelines for this case.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#renaming-or-replacing-existing-packages
@brianjmurrell commented on GitHub (Aug 27, 2020):
@joshuaboniface Can you please clarify your vision of various Jellyfin installs? Is the idea that just the server can be installed on one machine and just the webUI on another, or does the webUI machine require the server to be on the same machine?
@dkanada commented on GitHub (Aug 27, 2020):
You can install the web client anywhere as long as you use the standalone installation. I'm not sure where exactly that flavor stands though because we might have rolled some things back for the latest stable version, @MrTimscampi might know.
@brianjmurrell commented on GitHub (Aug 27, 2020):
So there needs to be the following packages then, yes?
so that a given installation could be number 1 installed on one machine and number 2 on another, but in a different installation number 3 could be installed on a single server that is combination of 1 and 2.
Is my understanding correct?
@dkanada commented on GitHub (Aug 27, 2020):
That's indeed the goal. I'm actually migrating my web client as we speak to a VPS for better speeds.
@heyhippari commented on GitHub (Aug 27, 2020):
Setup wizard and plugin config pages don't work. Most of the rest should be good.
@brianjmurrell commented on GitHub (Aug 27, 2020):
So that would seem to contradict @mooninite's suggestion of having jellyfin-server
Obsoletes/Provides: jellyfin. Anyone disagree?@joshuaboniface commented on GitHub (Aug 27, 2020):
I'm not adverse to this working somewhat differently for Fedora/CentOS vs. Debian - if it makes more sense in RPM-land to have an Obsoletes/Provides instead of an empty package, we can do that. I realized far too late that Debian could do the same thing, and it would save an additional step in the build scripts.
The main goal is just to have
dnf install jellyfininstall bothjellyfin-serverandjellyfin-web, and ensure that both of those packages can be build independently (i.e. no cross-dependencies at build time).@joshuaboniface commented on GitHub (Aug 27, 2020):
One thing that the empty-package format provides, and which I think is worthwhile, though is the ability to have things work differently for both
unstableandstablepackages.In the
debform, forunstablepackages, there is no version dependencies in the metapackage, thus it will always just grab whatever the "latest" version of the two dependencies is. This is important because theunstablepackages get built separately in response to PRs with date-based "version" strings, so they will never match up between web and server. For stable, however, we have a strict(=<vers>)version dependency so that the e.g. 10.6.3 metapackage always pulls in 10.6.3 web and 10.6.3 server. IDK if RPM specs can do it this way, but if so, I would say that's ideal.The
debequivs-buildfile is under https://github.com/jellyfin/jellyfin-metapackages for reference; if we do the same thing for RPM, the "empty package" spec will need to live there too, not in the main or web repos.@brianjmurrell commented on GitHub (Aug 27, 2020):
All of this will require the RPM build of a jellyfin-web package though I suppose. Which is not currently happening.
@joshuaboniface commented on GitHub (Aug 27, 2020):
It should be: https://repo.jellyfin.org/releases/server/fedora/stable/
@brianjmurrell commented on GitHub (Aug 27, 2020):
Ahh. Is that "repo" something new-ish?
If you put a repo-md
repodata/directory at https://repo.jellyfin.org/releases/server/fedora/stable/ usingcreaterepoyou'd have a bona fide repository that people could configure into theiryum/dnfpackage managed systems.@oddstr13 commented on GitHub (Aug 27, 2020):
This does sound roughly like what we do on the debian side, in addition to the metapackage, so it is probably the right way to go?
521027b2c0/debian/control (L17-L27)Updating from the old package would probably work with just this, but I don't know if you could install using just
apt-get install jellyfinwithout the metapackage.@brianjmurrell commented on GitHub (Aug 27, 2020):
IMHO, no. This does not produce the metapackage like the debian side. #4001 is what produces an apples-to-apples RPM build compared to the Debian build. I'm just about to do a build of it and test that my installation (finally) successfully upgrades.
@brianjmurrell commented on GitHub (Aug 27, 2020):
Built and tested to successfully upgrade a 10.5.x jellyfin package.
@joshuaboniface commented on GitHub (Aug 27, 2020):
That's pretty excellent, I had no idea it was that easy!
@oddstr13 commented on GitHub (Aug 27, 2020):
We had conflicts on Debian due to order of package install/upgrade iirc –
jellyfin-serverwas attempted installed beforejellyfinwas upgraded, and file ownership clashed? @joshuaboniface probably knows more about this.If it works without such measures (the
Breaksflag specifically I think), that's probably fine.But if there exists syntax to explicitly define this incompatibility that should be applied, as the exact behavior may vary between package managers (I know for example
apt-getandaptitudediffers in some ways here).@joshuaboniface commented on GitHub (Aug 27, 2020):
Yea there was a weird issue if I didn't put the Breaks: tag in it, IDK if RPM suffers from that issue though.
@brianjmurrell commented on GitHub (Aug 27, 2020):
It doesn't. It upgraded from 10.5.x even.
@brianjmurrell commented on GitHub (Aug 30, 2020):
Hrm. The Fixes: #3701 in #4001 didn't close this.
@brianjmurrell commented on GitHub (Aug 30, 2020):
Any chance you can easily set that up @joshuaboniface ? Or would it be easier to set up a webhook in jellyfin-web for COPR? If you recall, the process is: