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

MythTV 29.1 and MythWeb 29.1 Updates #2214

Closed
wants to merge 1 commit into from

Conversation

Moisie2000
Copy link

Description

Updating MythTV.28 and MythWeb.28 to MythTV29.1 and MythWeb29.1

Updates Ports:

  • mythtv.28
  • mythtv-core.28
  • mythtv-pkg.28
  • mythtv-plugins.28
  • mythweb.28
Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 10.12.6 16G29
Xcode 9.2 9C40b

Verification

Have you

  • followed our Commit Message Guidelines?

  • squashed and minimized your commits?

  • checked that there aren't other open pull requests for the same change?

  • checked your Portfile with port lint?

  • tried existing tests with sudo port test?

  • tried a full install with sudo port -vst install?

  • tested basic functionality of all binary files?

@macportsbot
Copy link

Notifying maintainers:
@ctreleaven for port mythtv.28, mythweb.28.

@macportsbot
Copy link

Travis Build #2933 Errored.

Lint results
Error: Port mythtv.28 not found
Error: Port mythweb.28 not found

@pmetzger pmetzger requested a review from ctreleaven July 14, 2018 20:47
@pmetzger
Copy link
Member

Thanks for working on this update! Right now, you have a bunch of commits, and not all of them match the macports standard for commit messaging. Squashing them to the minimum number and following the commit message guidelines would be a good thing.

Hopefully @ctreleaven will also have some comments shortly.

@ctreleaven
Copy link
Member

First, I have absolutely no experience working with pull requests, so I may need some hand-holding.

Second, this should not be an UPDATE to mythtv*.28 -- we need to create a NEW mythtv*29 port. Some (many) users will elect to stay with 0.28 and I won't force an upgrade on them.

@Moisie2000 Please summarize the testing you've done with this version. Have you been running it in 'production'? Using mythfrontend or something else? Using MythWeb? Using the built-in web server?

Last I heard, there were some observed problems that might be with core myth code.

@ctreleaven
Copy link
Member

Not sure what you are trying to do with the name of the port:

name mythtv${majorversion}${minorversion}

Currently, this will name the main port 'mythtv29.1'. When upstream changes the minor version to '.2', the port will be renamed 'mythtv29.2'. We don't want that.

@pmetzger
Copy link
Member

First, I have absolutely no experience working with pull requests, so I may need some hand-holding.

I can help with the pull request machinery.

@Moisie2000
Copy link
Author

Moisie2000 commented Jul 15, 2018

First, I have absolutely no experience working with pull requests, so I may need some hand-holding.

I can help with the pull request machinery.

Good - this is totally new to me too!

Right now, you have a bunch of commits, and not all of them match the macports standard for commit messaging. Squashing them to the minimum number and following the commit message guidelines would be a good thing.

Very happy to comply - but I can't see how I can squash the commits or edit the commit messages from inside the GitHub UI. I'm not doing this using a external editor and - as you can probably tell - I'm a bit new to all of this! I've tried to find out how to do this, but can't currently see how to. If it's going to be a blocker, then I'll invest further time in doing so.

Second, this should not be an UPDATE to mythtv*.28 -- we need to create a NEW mythtv*29 port. Some (many) users will elect to stay with 0.28 and I won't force an upgrade on them.

Agreed - but from what I wrote EDIT: read, I needed to submit this as a patch to the existing myth ports, in order that you (as the maintainer) can then create a new port.

Please summarize the testing you've done with this version. Have you been running it in 'production'? Using mythfrontend or something else? Using MythWeb? Using the built-in web server?

On my test installs (both running macOS 10.12.6, but two separate machines), I've:

  • Successfully compiled;
  • Successfully restored a pre-existing database, and run MythSetup to configure to the new hardware;
  • Successfully run MythTV front-end, playing existing recordings and navigating the UI;
  • Successfully connected to the MythTV back-end from Kodi, playing existing recordings, browsing the guide and set up new recordings;
  • Successfully set up MythWeb (note - some details on the Wiki need editing - but I'm still trying to get editing access to the Wiki for this), and connected to it.

Testing has not been exhaustive, but I feel I have tested sufficiently to prove that - on my systems - the port works as expected. However, I obviously cannot guarantee the stability of the core code beyond that noted above.

Not sure what you are trying to do with the name of the port:
name mythtv${majorversion}${minorversion}

This is to reflect the new version numbering scheme of MythTV: https://www.mythtv.org/wiki/Release_Notes_-_29

I'm very happy for whatever changes you see fit to be made - especially from a perspective of complying with MacPorts standards - but in submitting this PR, I was aiming to do what I could to save you the effort of having to do all the work in bring the port forward to the current Myth release.

@pmetzger
Copy link
Member

Very happy to comply - but I can't see how I can squash the commits or edit the commit messages from inside the GitHub UI.

You can't. You have to do it on your Mac at the command line. From there, though, everything is quite easy. The one big issue is that instead of doing your work from a branch, you've done it from "master", so if we end up with merge conflicts you're going to need to move the work onto a branch and probably close this PR and open a new PR (which is not a big deal.) For the moment that's not necessary, though.

The online editing stuff is nice but sadly it isn't really comprehensive.

Agreed - but from what I wrote, I needed to submit this as a patch to the existing myth ports, in order that you (as the maintainer) can then create a new port.

You can just create a pull request for a new port with @ctreleaven listed as the maintainer if you want.

@pmetzger
Copy link
Member

@ctreleaven What would you prefer happen here? If you want, you can also just create the new ports using @Moisie2000's patches.

@ctreleaven
Copy link
Member

Absolultely, we don't want to touch 0.28. We want a new port for 29. Remember, the functional differences between 0.28.x and 29.x are really minor. They just wanted to stop implying that Myth was an unstable beta--which is typically the case with version numbers less than 1.0.

@Moisie2000 No, we don't want to have different ports for 29.1, 29.2, etc. Upstream takes pains to ensure the database doesn't change within a major release. Thus users can easily upgrade to any fixes in the 29 branch (and mix/match frontends/backends). Please undo all the ${minorversion} changes.

Re testing, have you tried starting with a blank database and configuring from scratch? On the MythTV forum, this was reported to fail due to issues with the pre-upgrade-backup.

@pmetzger
Copy link
Member

@ctreleaven Just so I understand, if the functional differences are minor, why shouldn't we have just one mythtv port etc? (Not criticizing, I'm really just asking.)

@Moisie2000
Copy link
Author

@ctreleaven Hi Craig -

Please undo all the ${minorversion} changes.

So - just to clarify - you favour replacing all references to mythtv.28 and version 0.28 etc to mythtv29 and version 29 etc? (i.e. NOT mythtv29.1, version 29.1 etc)

Re testing, have you tried starting with a blank database and configuring from scratch? On the MythTV forum, this was reported to fail due to issues with the pre-upgrade-backup.

Yes - that was me highlighting this. Given that the issue also occurs in 0.28 and is not a part of the ports code, I see no reason to hold back with 29.1.

@pmetzger
Copy link
Member

So - just to clarify - you favour replacing all references to mythtv.28 and version 0.28 etc to mythtv29 and version 29 etc? (i.e. NOT mythtv29.1, version 29.1 etc)

I presume that's what he means. If it isn't, editing is easy and fast.

Meanwhile, please check out this fork on your own machine and see if you can't figure out how to do things like squashing the git commits etc., as that will be needed before the final merge.

@ctreleaven
Copy link
Member

@pmetzger Re mythtv versions, users are often very reluctant to upgrade between major versions. The whole family may be relying on Myth to record their fav TV programs...breaking a working system can be hazardous to your health!

@ctreleaven
Copy link
Member

@Moisie2000 Re blank database, are you sure this affects 0.28 as well? I know I configured from scratch more than once when I was creating the all-in-one installer.

The name of the ports should be mythtv-core29, mythtv-plugins29, mythtv29 and mythweb29. (There is no need for a mythtv-pkg29.)

The version number should be 29.1-Fixes-yyyymmdd where the date reflects the date of the latest commit to the fixes branch that is included. Today, that would be:

MythTV/mythtv@cd75b15

Note that wherever possible, I pick up one prior to the latest commit in the branch. Otherwise, the automatically created tarball from GitHub will change, invalidating the checksums, when a new commit is added. Ugly, but otherwise it acts like a stealth upgrade.

https://trac.macports.org/wiki/PortfileRecipes#stealth-updates

PS I'm going to be off the air the rest of today.

@Moisie2000
Copy link
Author

Re blank database, are you sure this affects 0.28 as well? I know I configured from scratch more than once when I was creating the all-in-one installer.

Yes - I've just posted my findings in https://forum.mythtv.org/viewtopic.php?f=26&t=2583&p=13349#p13349 - it looks like I was chasing a red herring.

The name of the ports should be mythtv-core29, mythtv-plugins29, mythtv29 and mythweb29. (There is no need for a mythtv-pkg29.)

The version number should be 29.1-Fixes-yyyymmdd where the date reflects the date of the latest commit to the fixes branch that is included.

That's fine - I'll plan to update my commits to that.

Note that wherever possible, I pick up one prior to the latest commit in the branch. Otherwise, the automatically created tarball from GitHub will change, invalidating the checksums, when a new commit is added.

I've targeted the v29.1 release (01-Feb-2018), rather than chasing a potentially-unstable mid-cycle build. I have not attempted to build anything beyond that point.

@ctreleaven
Copy link
Member

ctreleaven commented Jul 18, 2018

I've targeted the v29.1 release (01-Feb-2018), rather than chasing a potentially-unstable mid-cycle build. I have not attempted to build anything beyond that point.

The project recommends targeting the head of the fixes branch:

https://www.mythtv.org/wiki/Build_from_Source#Getting_and_compiling_the_source_code

They only infrequently tag point releases so we would be missing out on potentially useful fixes for months otherwise.

@Moisie2000
Copy link
Author

Hi Craig:

The project recommends targeting the head of the fixes branch:

That page reads to me like they're suggesting sticking with the stable release - but that's currently pointing towards 29.0... However, I agree that it would be useful to pick up recent commits, given the infrequent official release schedule.

So I'll try building towards the commit stage you suggest, and see how that fairs. I've got a bit of time over the next couple of days, so I hope this won't take too long to complete, and then I'll report back.

@Moisie2000
Copy link
Author

Hello:

Sorry for the radio silence recently; this turned into a much more substantial job than I was expecting, due to a lot of FFmpeg changes that have been made since the 29.1 release.

I'm making progress through it, but it's taking longer than expected - I hope to feed back within the next few weeks.

Thanks for your patience!

@ctreleaven
Copy link
Member

FFmpeg changes? I thought they all went into the master branch; not fixes/29. Are you sure you are working on the right branch?

@ctreleaven
Copy link
Member

For example, see

https://code.mythtv.org/trac/ticket/13259

Note that the version is "Master head" and the milestone is "30.0". Peter started this ffmpeg work months ago and all of it went to the master branch so that it will eventually be included in the release of version 30.

@pmetzger pmetzger added the wip Work in progress label Jul 30, 2018
@pmetzger
Copy link
Member

BTW, we generally prefer not to leave works in progress in the pull queue indefinitely, so if this might really take a while, it might be best to close this PR and re-open it when you're ready.

@Moisie2000
Copy link
Author

Are you sure you are working on the right branch?

Ah - well - yes, that's a very good question. Silly me - I've been working on the master branch. I'm still getting used to how all this version-control stuff works... ;-)

So, I'll go back and work to the fixes/29 branch and update here when I can; I'm a bit busy over the next few weeks, but hopefully it'll go more smoothly this time.

@pmetzger
Copy link
Member

Any news? I'd like to get this PR cleared out.

@Moisie2000
Copy link
Author

Sorry sorry sorry - I've been tied up with other matters of late!

I'm intending to complete this over this weekend, and once I've had - say - a week of running it on my production machine, it should be ready to roll.

@pmetzger
Copy link
Member

pmetzger commented Sep 9, 2018

The patches are clean now (or so it seems).

@ctreleaven You'll have to test this and report back on whether you think it's correct.

@pmetzger
Copy link
Member

@ctreleaven Can you please have a look? I'd like to finish this up.

@pmetzger
Copy link
Member

pmetzger commented Oct 4, 2018

@ctreleaven, @Moisie2000 spent time and effort creating this enhancement and it seems impolite of us to leave them hanging indefinitely.

@ctreleaven
Copy link
Member

Where are the instructions again on getting this branch reflected in my local git?

@pmetzger
Copy link
Member

pmetzger commented Oct 5, 2018

@ctreleaven
Copy link
Member

I can't get p5.26-dbd-mysql to update:

:info:build /opt/local/include/mariadb/mysql/mysql_version.h:16:31: note: expanded from macro 'MARIADB_BASE_VERSION' :info:build #define MARIADB_BASE_VERSION "mariadb-5.5" :info:build ^ :info:build dbdimp.c:1917:56: error: invalid token at start of a preprocessor expression :info:build #if (MYSQL_VERSION_ID >= 50600) && (MYSQL_VERSION_ID < MARIADB_BASE_VERSION) :info:build ^ :info:build /opt/local/include/mariadb/mysql/mysql_version.h:16:31: note: expanded from macro 'MARIADB_BASE_VERSION' :info:build #define MARIADB_BASE_VERSION "mariadb-5.5" :info:build ^
Investigating...

@ctreleaven
Copy link
Member

Appears to be a bug that was fixed a couple of weeks ago:

perl5-dbi/DBD-mysql#262

@pmetzger
Copy link
Member

@ctreleaven I don't think it's fair to @Moisie2000 to leave this hanging so long. What do we have to do to finish it?

@pmetzger
Copy link
Member

@ctreleaven Thanks for your work in maintaining the MythTV ports. Being a port maintainer gives you the ability to block other people's changes to your work, but it also gives you the obligation to help with merging other people's fixes and improvements in a reasonably rapid manner. Three and a half months is probably not reasonable under the circumstances. Could you make a point of helping to take care of this issue sooner rather than later? If you cannot do that, I want to simply commit this. @Moisie2000's work should not sit in the PR queue forever.

@ctreleaven
Copy link
Member

@Moisie2000 if we commit this as is, will you help with support on https://forum.mythtv.org/index.php and the mythtv-users mailing list? It doesn't look like I'm going to get any free time to test 29.0 for at least a couple of weeks.

@pmetzger I did attempt to test but ran into a road block when one of the perl dependencies failed to install (see above). Anyone trying to install from scratch will run into the same problem. To my knowledge, it hasn't been fixed in the past 24 days.

@ctreleaven
Copy link
Member

Incidentally, @Moisie2000 you need to do a selfupdate and then retest the mythtv build. I suspect the p5.26-dbd-mysql problem will also block you. I believe there may be a patch out there that addresses this problem but I don't know enough about the port to address it. See:

https://trac.macports.org/ticket/57240

@Moisie2000
Copy link
Author

@pmetzger Thanks for staying on top of this, and for your patience with me whilst I sorted out my numerous commit issues early on!

@ctreleaven Please accept my apologies that this has placed a burden on you to deal with - I hadn't realised at the outset what would have been required of you through this process!

will you help with support on https://forum.mythtv.org/index.php and the mythtv-users mailing list?

Of course - very happy to do what I can, though I freely admit my knowledge is probably substantially less than yours.

you need to do a selfupdate and then retest the mythtv build.

Sure - will do that this weekend and see what I can find out. Thanks for trying it - for the record, I've been running this PR on my main system for nearly two months (admittedly primarily as a backend for Kodi), and it's been rock-solid for me.

@pmetzger
Copy link
Member

@Moisie2000 Let me know when you feel comfortable merging this.

@Moisie2000
Copy link
Author

Hello - sorry, real life has got in the way of me doing anything on this yet. I hope to get to it in the next couple of days.

@Moisie2000
Copy link
Author

Hello - sorry for the delay in coming back to you.

I found the same issue as @ctreleaven here, and was looking at ways around it - though I didn't have much of an idea where to start. However, I see that DBD-mysql has now been updated to 4.049 - which includes the fix. We now need the p5.26-dbd-mysql port to be updated to point to the new release - but I see there's no maintainer listed for this. Does this mean anyone is fair game to submit a patch?

Thanks.

@pmetzger
Copy link
Member

It is fine for anyone to submit a patch for any port, not just nomaintainer ones, but if there's no maintainer we don't have to wait for the maintainer to approve it to incorporate it. :)

@Moisie2000
Copy link
Author

Hi - just to post that I haven't abandoned this, but updating the DBD-mysql port doesn't look like the most straightforward thing in the world, and is taking me longer to get my head around! Hope to make some progress over the holiday period...

@brianboonstra
Copy link

The Travis check failures were all timeouts rather than actual build failures, FYI.

@pmetzger
Copy link
Member

@brianboonstra That's pretty standard.

@ctreleaven
Copy link
Member

The stars have aligned and I actually have a little time to spend on this. I've updated p5-dbd-mysql to 4.049 to catch the fix we need.

Trying to build mythtv-core29, it complained that qt5-mysql-plugin is replaced by qt59-mysql-plugin. I've modified @Moisie2000 's Portfile to require qt59 for mysql-plugin, qtscript and qtwebkit. Have a build chugging away now. Now, my copy diverges from the pull request and I still have no understanding of how to handle this with git. Can I get some hand-holding?

@pmetzger
Copy link
Member

pmetzger commented Jan 4, 2019

What git help do you need? I can help. (If needed, you can email me at at macports.org.)

@ctreleaven
Copy link
Member

Something is messed up with Qt5. I got my 10.13 VM running which had a MythTV 29 test from quite a few months ago. When trying to build Myth with the new portfile, I get:

---> Computing dependencies for qt5-qtsvg
The following dependencies will be installed: qt5-qtbase
Continue? [Y/n]:
---> Activating qt5-qtbase @5.12.0_2+openssl
Error: Failed to activate qt5-qtbase: Image error: /opt/local/libexec/qt5/bin/qcollectiongenerator is being used by the active qt5-qttools port. Please deactivate this port first, or use 'port -f activate qt5-qtbase' to force the activation.
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_aqua_qt5/qt5-qtbase/main.log for details.
Error: Unable to execute port: upgrade qt5-qtscript failed

I guess I need to try to decipher the Qt5 portgroup. Again.

@ctreleaven
Copy link
Member

BTW I can see the control for posting "code" on this interface but I apparently can not figure out how it works. Sigh.

@ctreleaven
Copy link
Member

@Moisie2000 Have you updated/tested/used this port recently? I set up a VM running 10.13 and installed. mythtv-setup ran fine for me, mythbackend is running, but when I start mythfrontend, I get a "EXC_BAD_ACCESS (SIGSEGV)" crash.

Note that in the meantime, MacPorts is now installing Qt 5.12 on such a configuration. That may be related...or not!

@Moisie2000
Copy link
Author

Hello!

Sorry - I've not been able to do any work on this lately - but here's some responses.

The stars have aligned and I actually have a little time to spend on this. I've updated p5-dbd-mysql to 4.049 to catch the fix we need.

Amazing - thanks Craig!

Have you updated/tested/used this port recently?

Yes - it's my daily driver on macOS 10.12.6 - though running the successful build I had when I created this PR. I've not tried an updated version of the port since you reported the p5-dbd-mysql problem - but I'll try it again on my 10.12 test VM.

@kencu
Copy link
Contributor

kencu commented Jan 31, 2019

This PR has been in the queue for a very very very very long time...

@ctreleaven
Copy link
Member

PR needs to be closed as "Won't fix" or whatever the equivalent.

I've banged my head on this for quite some time. There are non-trivial problems with Myth 29.x on macOS. Not least is that the front window will loose keyboard focus whenever one enters certain screens. A mouse click will restore focus but that is a problem. Myth is designed and intended to be used in a media centre configuration. Everything should be accessible with a remote control with a limited number of buttons (like the Apple Remote). A mouse should not be required.

Unfortunately, there is no longer a Mac-centric developer on the upstream project. When and if one comes along, perhaps these issues will get addressed. In the longer term, Apple's announced deprecation of OpenGL is likely to be a very significant problem for Myth on Mac.

@ctreleaven ctreleaven closed this Jan 31, 2019
@Moisie2000
Copy link
Author

@ctreleaven Hi Craig - many apologies for the lack of updates here, and very sorry to have wasted your time with this PR. I hope can contribute something positive to the project in the future!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintainer: open Affects an openmaintainer port type: enhancement wip Work in progress
6 participants