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

tvheadend: 4.2.8 -> 4.3-unstable-2024-08-04 #332259

Closed
wants to merge 1 commit into from

Conversation

emilazy
Copy link
Member

@emilazy emilazy commented Aug 4, 2024

Description of changes

Includes fixes for FFmpeg 7 and compiler warnings. Per their site:

The latest 'stable' release (v4.2.8) was released in January 2019 and is now showing its age. As there are no plans for another v4.2 maintenance release and there is no direct upgrade path from v4.2 to v4.3/v4.4 we recommend all new installs use the current v4.3 'development' releases. These have been in a reliable state for several years and will soon become the new v4.4 stable release (eta in Q1/2024).

It’s not Q1 2024 any more, but let’s take their word for it and drop another FFmpeg 4 pin. RPM Fusion, Gentoo, and OpenWrt all ship the v4.3 development release.


I’m marking this as a draft because of the “no direct upgrade path from v4.2 to v4.3/v4.4” text from the site. I don’t use this software, so I’m not exactly sure what the implications are here. Perhaps there have been backwards‐incompatible changes in the application state? @melias122 opened a PR to add this version in #168620 and said that “Updating to latest master (aka v4.3) will break configs of most people using v4.2”. I’m wondering if we could perhaps add some logic in the NixOS module to migrate people’s configurations if this is a blocker. There is a source file src/config.c which seems to have a lot of migration functions up to config_migrate_v24, but it seems that last one is from 8 years ago, so that probably won’t help us.

The fact that another major repository like RPM Fusion is shipping the development version exclusively makes me assume that the migration ought not to be that bad, but I’d really like feedback from someone who actually uses this as to whether the NixOS service still works and doesn’t eat pre‐existing data.

We’d have to decide what to do here when the final v4.4 comes out anyway, especially given that upstream has stated that v4.2 will not receive any more maintenance, so given that upstream recommends new users install v4.3 I think we should figure out what to do now. Unfortunately, it seems like this package has received little non‐automated, non‐treewide attention for years.

cc @simonvandel (maintainer of the package)
cc @pyle (has an open PR to add options to the NixOS module #302304)
cc @Yarny0 (has contributed to dtv-scan-tables which is used exclusively by this package)
cc @mweinelt (did a refactor of the package in 2022; sorry if that was just drive‐by)
cc @peterhoeg (did a manual version bump in 2017)

Sorry for the tenuous review pings, this package really hasn’t had many changes that weren’t automated version bumps or people just diving in to fix build issues in many years…

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
    • It runs, but I don’t have the hardware or know‐how to use it…
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

Includes fixes for FFmpeg 7 and compiler warnings. Per their site:

> The latest 'stable' release (v4.2.8) was released in January 2019
> and is now showing its age. As there are no plans for another v4.2
> maintenance release and there is no direct upgrade path from v4.2
> to v4.3/v4.4 we recommend all new installs use the current v4.3
> 'development' releases. These have been in a reliable state for
> several years and will soon become the new v4.4 stable release (eta
> in Q1/2024).

It’s not Q1 2024 any more, but let’s take their word for it and
drop another FFmpeg 4 pin. RPM Fusion, Gentoo, and OpenWrt all ship
the v4.3 development release.
@emilazy
Copy link
Member Author

emilazy commented Aug 4, 2024

There is a patch to 4.2 to fix building with FFmpeg 6, so I may just apply that instead if this turns out to not be viable. But we are going to have to make some kind of decisions here about what to do with this package that’s on a dead‐end version with an incompatible stable release in sight.

@mweinelt
Copy link
Member

mweinelt commented Aug 4, 2024

You guessed correctly. Unsubscribing.

@emilazy
Copy link
Member Author

emilazy commented Aug 21, 2024

Bumping this. We are going to have to make a decision about the backwards‐compatibility when 4.4 comes out, and this is one of the very few remaining FFmpeg 4 dependencies that will remain after the rest of my work is merged. Please let me know what you think if you have any investment in this package at all. I worry that there is not enough maintainer attention to sustain this package and that it will end up completely bitrotten. If nobody responds in a timely fashion I will probably just open a PR to drop this package and module.

@simonvandel
Copy link
Contributor

Hi @emilazy
I'm sorry for not responding earlier.
I don't use tvheadend anymore, so I am bit invested in it anymore.

@emilazy
Copy link
Member Author

emilazy commented Aug 21, 2024

Thanks for the response, @simonvandel :)

As the only remaining package maintainer, would you have any objection to this package and the NixOS module being dropped? It’s a shame, but it seems that there’s nobody in Nixpkgs interested in working on this. Given that the 4.4 release will be a breaking change anyway, maybe it’s best to let users know about the state of things as they stand, and be open to accepting a PR for the newer version if anyone steps up to make one.

cc @pyle and @Yarny0 again, as I’d hate to get rid of this package if there’s anyone willing to take responsibility for it.

@simonvandel
Copy link
Contributor

No objections of dropping the package

@emilazy
Copy link
Member Author

emilazy commented Aug 21, 2024

Linking #336395 for anyone who might be subscribed to this PR.

@emilazy emilazy mentioned this pull request Aug 21, 2024
13 tasks
@Yarny0
Copy link
Contributor

Yarny0 commented Aug 22, 2024

cc @pyle and @Yarny0 again, as I’d hate to get rid of this package if there’s anyone willing to take responsibility for it.

Sorry, but I never used tvheadend in any way, so I can't help here. The dtv-scan-tables can also be used independently of tvheadend.

@emilazy
Copy link
Member Author

emilazy commented Aug 22, 2024

Thank you for the response anyway :)

Seems like there’s nobody who wants to take care of this, so I’ll probably proceed with removal.

@oneingan
Copy link
Contributor

I would like to maintain this

@emilazy
Copy link
Member Author

emilazy commented Aug 22, 2024

@oneingan That’s good to hear. To get this package into an acceptable maintenance state, we need a plan for getting off the abandoned 4.2 version, as it depends on FFmpeg 4 and the developers recommend users use the 4.3 branch which is intended to become the 4.4 stable release soon. However, 4.3 is apparently backwards‐incompatible with 4.2 and a previous contributor to this package said that it would break the configurations of the majority of users. Can you outline what the expected breakage is here and how difficult it would be for users to migrate to the new version?

@oneingan
Copy link
Contributor

Considering tvheadend is configured trough UI, but there is not a clear interface to edit the XML configuration files that UI generates I consider a migration path will be difficult to achieve.

I prefer we drop 4.2 and create a new namespace for 4.3~4.4.

@emilazy
Copy link
Member Author

emilazy commented Aug 26, 2024

That sounds reasonable to me. It seems like the best way forward is to proceed with the PR dropping the existing version for now, then. I’ll be happy to review any PR to add the new version in separately, and you can feel free to base it on this PR as long as you leave a Co-authored-by: in the commit.

@emilazy emilazy closed this in 6fa5767 Aug 27, 2024
@sielicki
Copy link
Contributor

sielicki commented Sep 2, 2024

tvheadend is still a very active project and I'm disappointed that we chose to break existing installs. This is impacting an install of mine. I do understand where you're coming from.

Ultimately the best workaround for existing users is probably to migrate to their maintained containers. See: https://github.com/tvheadend/tvheadend/blob/master/Containerfile.alpine

@emilazy
Copy link
Member Author

emilazy commented Sep 2, 2024

I agree that the upstream project seems active, but the 4.2 branch isn’t, and there’s no migration path to 4.3/4.4, so breaking existing setups was going to be basically unavoidable from what I was able to gather. We will accept a package and module for 4.3 and I will be happy to review it, but the package had no interested maintainers and nobody has done the work yet. The packaging of 4.3 in this PR should be basically ready to go, so if you wanted to maintain it you could make a PR adding it as a new package and check that the module still works with that version; feel free to ping me if you do so. Maybe you and @oneingan could co‐maintain it since it seems there’s hopefully sufficient interest in keeping it running on NixOS?

joegilkes added a commit to joegilkes/nixos-config that referenced this pull request Sep 22, 2024
Picked up the dropped package config for Tvheadend from NixOS/nixpkgs#332259 and its service config from NixOS/nixpkgs#336395, passed into giants-deep config.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants