Bug 2238840 - Review Request: jellyfin - The Free Software Media System
Summary: Review Request: jellyfin - The Free Software Media System
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Neal Gompa
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 2170536
Blocks: MultimediaSIG
TreeView+ depends on / blocked
 
Reported: 2023-09-13 19:03 UTC by Michael Cronenworth
Modified: 2023-10-15 19:16 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:
ngompa13: fedora-review?


Attachments (Terms of Use)

Description Michael Cronenworth 2023-09-13 19:03:44 UTC
Spec URL: https://pkgs.rpmfusion.org/cgit/free/jellyfin.git/plain/jellyfin.spec?id=90efcae72cfbcb8ee3198792a6d6b88cd642039a
SRPM URL: https://koji.rpmfusion.org/kojifiles/packages/jellyfin/10.8.10/1.fc39/src/jellyfin-10.8.10-1.fc39.src.rpm
Description: Jellyfin is a free software media system that puts you in control of managing and streaming your media.
Fedora Account System Username: mooninite

Comment 1 Neal Gompa 2023-09-14 12:44:41 UTC
Taking this review.

Comment 2 Neal Gompa 2023-09-14 13:04:08 UTC
Initial spec review:

> # Set .NET runtime identitfier string
> %ifarch aarch64
> %define dotnet_rid fedora.%{fedora}-arm64
> %else
> %define dotnet_rid fedora.%{fedora}-x64
> %endif

This confuses me with the ExcludeArch statement in the spec: "ExcludeArch:    %{power64} ppc64le %{arm}"

Is the intent that this only works with x86_64 and AArch64? If that's the case, this should use "ExclusiveArch: x86_64 aarch64"

> Source2:        %{name}-nupkgs.tar.xz
> Source3:        %{name}-nupkgs2.tar.xz
> [...]
> dotnet nuget add source %{_builddir}/jellyfin-nupkgs -n jellyfin-nupkgs
> dotnet nuget add source %{_builddir}/jellyfin-nupkgs2 -n jellyfin-nupkgs2
> dotnet nuget disable source nuget.org
> dotnet nuget disable source "NuGet official package source"

I'm slightly confused here. Are NuGet packages source or binary artifacts? Depending on what they are, we may need more help from the DotNet SIG.

Additionally, as a general comment, this is missing bundled provides for the vendored stuff.

Cf. https://docs.fedoraproject.org/en-US/fesco/Bundled_Software_policy/

> Requires:       ffmpeg

This should be changed to "ffmpeg-free", since that's what we have in Fedora.

Comment 3 Neal Gompa 2023-09-14 13:07:50 UTC
The License tag will also need to be updated to list all the licenses of the bundled stuff shipped too...

Cf. https://docs.fedoraproject.org/en-US/legal/license-field/

Comment 4 Omair Majid 2023-09-14 13:33:53 UTC
.NET upstream only provides .NET for x86_64 (they call this x64) and aarch64 (they call this arm64). It's likely that Jellyfin upstream has only tested these two configurations. On Fedora, though, .NET is available on all Fedora architectures (aarch64, ppc64le, s390x and x86_64), at least starting with .NET 7. This package uses .NET 6 which is missing ppc64le.

The RID computation stuff ought to be fixed through something like this https://bugzilla.redhat.com/show_bug.cgi?id=2170536 but I hadn't prioritized it high enough. I can look into that if that's a major issue for this package.

> Are NuGet packages source or binary artifacts?

NuGet packages (.nupkg files) are binary artifacts, similar to .jar files.

We don't have a great way to walk through the dependency tree and build everything from source yet. More at https://github.com/dotnet/source-build/discussions/2960

Looking at https://pkgs.rpmfusion.org/cgit/free/jellyfin.git/tree/jellyfin-offline.sh, some of these binary dependencies should become part of the .NET SDK itself starting with .NET 8. On the other hand, I am not even sure where to start with this:

$ tar tf jellyfin-nupkgs.tar.xz  | wc -l
17427

Comment 5 Michael Cronenworth 2023-09-14 13:47:35 UTC
There are 236 dependencies in jellyfin-nupkgs.tar.xz and currently I do not have the time required to build Provides and License fields to record their values. This review may stall until such time frees up or someone else wants to continue the review.

Comment 6 Michael Cronenworth 2023-09-14 13:52:04 UTC
Plus there are at least 100 Node.js dependencies... Help is welcome.


Note You need to log in before you can comment on or make changes to this bug.