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

Update Tvheadend to 4.2.8 and remove beta flag of package #3585

Merged
merged 2 commits into from
Feb 9, 2019

Conversation

m4tt075
Copy link
Contributor

@m4tt075 m4tt075 commented Jan 18, 2019

Motivation

  • Update Tvheadend to 4.2.8 (latest maintenance release)
  • Fixes software transcoding with h264 (broken in 4.2.7 maintenance release)
  • Fixes upstream regression for ppc platforms
  • Enables HDR10+ support for ffmpeg spawn profile for NASs with x64 architecture
  • Remove beta flag of TVH package

Linked issues

Checklist

  • Build rule all-supported completed successfully
  • Package upgrade completed successfully
  • New installation of package completed successfully

@m4tt075
Copy link
Contributor Author

m4tt075 commented Jan 18, 2019

@ymartin59 This PR is just for awareness for now as I believe this maintenance release will help us to push our ffmpeg work out. I've just done one testbuild with the current ffmpeg for now to make sure the upgrades are correct. Will test extensively once ffmpeg 4.1 is done...

@m4tt075
Copy link
Contributor Author

m4tt075 commented Jan 23, 2019

@ymartin59 As announced in #3575, with the fixes I just pushed, I was able to successfully build Tvheadend 4.2.8, which in turn builds cross/ffmpeg, for all DSM5.2, DSM6.1 and DSM6.2 platforms.

For reference, the positive compilation results (except x64) can be found here: https://travis-ci.org/m4tt075/spksrc/builds/483139944. I attribute the x64 failures to the outdated docker images. At least, the missing x64 versions successfully compiled on my Ubuntu VM as well.

As agreed yesterday, I'll pause my activities on tvheadend and ffmpeg now. Please don't hesitate to reach out, if you should need further support here, and I'll be happy to help...

@m4tt075 m4tt075 force-pushed the tvh-4.2.8 branch 2 times, most recently from 04015c3 to 9178d68 Compare January 31, 2019 22:01
@m4tt075
Copy link
Contributor Author

m4tt075 commented Jan 31, 2019

@ymartin59 Got it! Following your approach with chromaprint and comskip, the ffmpeg dependency is separated out now. I've also disabled a significant number of (either redundant or ffmpeg license-violating) statically linked codecs, which should slim the package down significantly. If your chromaprint and comskip packages still work with the fixed ffmpeg 4.1 version, I believe we are done... :-)
Haven't rebuilt all platforms though. As promised, leaving that to you...

@ymartin59
Copy link
Contributor

@m4tt075 In fact, I am tempted to create a generic framework support for pkgconfig library linking... but probably later, or else, all these will stack for yet another couple of weeks...

@m4tt075
Copy link
Contributor Author

m4tt075 commented Feb 2, 2019

Agreed. Let's get this done first.

@ymartin59
Copy link
Contributor

Everything is ready. I am publishing ffmpeg, chromaprint and comskip. Then Tvheadend !

Copy link
Contributor

@ymartin59 ymartin59 left a comment

Choose a reason for hiding this comment

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

Great. Some minor fixes and ready to go. Please rebase on master too.

PKG_EXT = tar.gz
PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/tvheadend/tvheadend/archive
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)

DEPENDS = cross/openssl cross/libhdhomerun cross/uriparser cross/libdvbcsa
DEPENDS += cross/pcre2 cross/ffmpeg
DEPENDS = cross/openssl cross/libhdhomerun cross/uriparser cross/libdvbcsa cross/pcre2
Copy link
Contributor

Choose a reason for hiding this comment

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

You should append cross/ffmpeg conditionally if FFMPEG_DIR is not set (because not built here in workspace...)

@@ -32,4 +33,5 @@ myInstall:
post_patch_target_tvheadend:
@if [ "$(ARCH)" = "ppc853x" ] || [ "$(ARCH)" = "qoriq" ]; then \
cat $(PWD)/patches/ppc/isoc9x.patch | ($(RUN) patch -p0) ;\
cat $(PWD)/patches/ppc/hts_strtab-undo-inlining-of-functions.patch | ($(RUN) patch -p0) ;\
Copy link
Contributor

Choose a reason for hiding this comment

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

Well done for such a patch !

export FFMPEG_DIR = $(shell pwd)/../ffmpeg/work-$(ARCH)-$(TCVERSION)/install/var/packages/ffmpeg/target

ifneq ($(wildcard $(FFMPEG_DIR)),)
$(info Depend on ffmpeg package libraries)
Copy link
Contributor

Choose a reason for hiding this comment

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

Please discard "info" and "warning" messages the same way I did... because content is "cat" when generating PLIST and produces error at spksrc "tar" command. So I preferred to removed them to keep make output clean of any error.

[TVH] Remove beta flag from package
[TVH] Update Tvheadend to 4.2.8 (latest maintenance release)
[TVH] Update uriparser cross package to 0.9.1
[TVH] Fix ppc compilation errors with hts_strtab.h
[TVH] Seperate out ffmpeg dependency
[TVH] Remove (mostly redundant) static ffmpeg dependencies
@ymartin59
Copy link
Contributor

@m4tt075 I find it desperating to wait for openssl compilation for TVH when gnutls library is available in FFmpeg package... but I guess TVH only supports openssl as dependency, right?

@ymartin59
Copy link
Contributor

@m4tt075 I have built tvheadend packages. Is it OK for you that I publish them?

@m4tt075
Copy link
Contributor Author

m4tt075 commented Feb 6, 2019

@ymartin59 I've been AFK on a business trip. Only just returned. As such, I haven't had a chance to look into your adaptations or test anything. I know an issue (#3603) has been opened. Haven't had a chance to look into that either.
If you have tested and are sure the PR is fine as is, by all means, please feel free to move ahead. If you haven't, I'd follow up on #3603 and do some testing on the weekend.

@m4tt075
Copy link
Contributor Author

m4tt075 commented Feb 6, 2019

@ymartin59 To your openssl question: I've looked at the Tvheadend configure file. It tests for openssl or libssl availability. As such gnutls is at least not "anticipated" as standard alternative within the code base. I know that gnutls comes with an openssl compatibility mode. Apparently there are limitations in terms of compatibility though. As such, not sure it can be done (without amending Tvheadend as well).

@m4tt075
Copy link
Contributor Author

m4tt075 commented Feb 8, 2019

@ymartin59 OK, had a chance to look into this to some extent;

  • I have not received a reply yet, but believe [TVheadend] add basic configuration info to package description #3603 is a non-issue. Just see my reply to the report.
  • I have successfully compiled this PR for x64-6.1 and tested it on my XPE 6.1 test system. Static and dynamic dependencies are as expected. I could play HD and SD channels via my Digitib receiver without any problems. Looking good!
  • As usual, I've tried to build all-supported packages via travis. Those builds fail with soxr and the following error:
0.1.3-Source.tar.xz.part" [1]
CMake Error at CMakeLists.txt:4 (cmake_minimum_required):
  CMake 3.1 or higher is required.  You are running version 3.0.2

As this error is not Tvheadend related, but rather a reflection of our docker image build environment being outdated, I cannot really test further. I don't want to downgrade soxr to prevent this error again. On the other hand, I don't know my way around docker and I cannot build all supported packages on my (very slow) VirtualBox build environment. Is there any way for you to update our docker image to support the required CMake version or let me know how to do it?

And other minor fixes
@ymartin59
Copy link
Contributor

@m4tt075 OK. In fact I build with Stretch Docker image from #3569. So I publish package as-is, my tests are OK too.
For "hi3535" (arm7) architecture, I had to disable "sched" api in util-linux because of troubles with kernel headers... really strange but I succeeded to build everything then with patch.

@ymartin59 ymartin59 merged commit 7375ea0 into SynoCommunity:master Feb 9, 2019
@m4tt075
Copy link
Contributor Author

m4tt075 commented Feb 9, 2019

@ymartin59 Brilliant! And I'm amazed you made "hi3535" work too. I didn't consider this possible, but it means people can run Tvheadend on their Synology Network Video Recorders as well. One day all these things will probably run on toasters, too... ;-)
My sincere thanks for making all of these ffmpeg and associated package updates happen!!!

@ymartin59
Copy link
Contributor

Right. Thank you for your efforts. That "ffmpeg 4" upgrade project may be closed soon, really an effective team work... I will give a try at my "ffmpeg hack" in Video Station, if there is anything technically possible to deploy.

@ymartin59
Copy link
Contributor

@m4tt075 Hum... I have built for hi3535... does not mean it run there by the way - I have no such device.

@m4tt075 m4tt075 deleted the tvh-4.2.8 branch February 10, 2019 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants