Opened 13 years ago
Closed 12 years ago
#33906 closed request (duplicate)
Request MythTV port
Reported by: | ctreleaven (Craig Treleaven) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.4 |
Keywords: | Cc: | ||
Port: |
Description
Have attempted to develop a MythTV (version 0.25-RC) port without success.
Attachments (1)
Change History (7)
Changed 13 years ago by ctreleaven (Craig Treleaven)
comment:1 Changed 13 years ago by ctreleaven (Craig Treleaven)
More details
Why
For a full-featured backend on OS X. MythTV is developed 'Linux-first'. The current OS X packaging method puts the backend and all required libraries, etc, in an .app bundle. (Even though the backend .app bundle is *not* a double-clickable Mac application.) Features, like metadata lookup, don't work because they depend on the Python bindings. These bindings, Perl and Python, aren't installed in a usable fashion.
Also, a MacPorts installation would be able to automatically create a userid to run the backend, install the launchd plist for automatic running and otherwise simplify the install process.
Status Attached Portfile is broken. It fails at the build phase with "ld: -L must be immediately followed by a directory path (no space)". Unable to determine why configure creates these illegal blank -L parameters. Tried to do mass search and replace to eliminate them but qmake is also run during the build phase and creates more Makefiles with the same problem. Was able to patch manually once the resulting binaries did at least display a help message.
To do
I believe mythtv/configure is probably looking in the wrong place (under MacPorts) for some expected library and thus creating the blank -L path. If this can be fixed, then the port should be extended as follows.
Ideally
Ports - There should be three ports in short term: myth25, myth25-fixes, and myth-devel. Myth25 should build the tagged MythTV 0.25 release (expected 9 April 2012). It would be updated to 0.25.1/0.25.2 when they are released. (Major releases happen slowly. Myth has taken 5+ years to go from 0.21 to 0.25.) Several additional libraries will be required as dependents in order to activate the Perl and Python bindings. Output from configure lists the currently missing requirements.
A myth25-fixes port would build off the git fixes/0.25 branch (when created, shortly after 0.25 release). The myth project regularly fixes bugs and applies them to the fixes branches. Users are strongly encouraged to use up-to-date versions of the fixes branch. Note that this would involve using a git.fetch which is currently very inefficient as it clones the entire git repository each time.
A variant should be developed to install mysql5-server. If the user wants to run the backend, the most common configuration is to have the database server on the same machine. A further variant would be to install MythWeb.
Note--myth backends and frontends must be on the same major release. IE all 0.24.x or 0.25.x. The mysql database (mythconverg) schema virtually always changes during a major release and older clients are refused access to the newer database. Myth provides provides automatic schema upgrades but the only way to revert is to drop the database and restore from a pre-upgrade backup.
Finally, a myth-devel port may also be desirable. It would also need to pull from git. Note that pre-requisite libraries have been added and dropped in the last couple of releases so the dependants may vary quite a bit from myth25 over time.
Another issue to think about is mythtv's plug-ins. In 0.25, the following plugins may make sense for Mac users: MythGallery, MythMusic, MythNews, MythWeather and maybe MythNetvision (which also relies on the Python bindings). I think these would be additional ports (myth25-plugins, myth25-fixes-plugins, myth-devel-plugins) that depend on the corresponding myth core ports. MythWeather especially requires several additional Perl dependencies.
Resources
There is an OS X MythTV buildbot that regularly tests the build of the master branch, currently Snow Leopard. Right now (April 2012), the buildbot provides a very close parallel to what we want to achieve with MacPorts. See: http://code.mythtv.org/buildbot/builders/master-osx-snow-leopard
Buildbot notable differences: building against Qt 4.6.3 v. our 4.7.4. Buildbot configure output indicates "# Video Output Support: Quartz video - yes". Unable to determine why Quartz video is not enabled under MacPorts.
Craig Treleaven
comment:2 follow-up: 3 Changed 13 years ago by pixilla (Bradley Giesbrecht)
myth25-fixes
It may be better to find or create patches of the "fixes" branch against 0.25 release.
comment:3 follow-up: 4 Changed 13 years ago by ctreleaven (Craig Treleaven)
Replying to pixilla@…:
myth25-fixes
It may be better to find or create patches of the "fixes" branch against 0.25 release.
Is that practical? There have been hundreds of commits in the Fixes/0.24 branch over the last 18 months.
comment:4 Changed 13 years ago by pixilla (Bradley Giesbrecht)
Replying to ctreleaven@…:
Replying to pixilla@…:
myth25-fixes
It may be better to find or create patches of the "fixes" branch against 0.25 release.
Is that practical? There have been hundreds of commits in the Fixes/0.24 branch over the last 18 months.
Use a tagged version from GitHub for the MacPorts mythtv 0.24.2 port. v0.24.2-jya
Each time you want add fixes you will make a new patch from the GitHub mythtv fixes/0.24 branch and increase the port revision.
$ cd ~/misc/github/mythtv/ $ git branch --list fixes/0.24 * fixes/0.24 $ git tag --list v0.24.2-jya v0.24.2-jya $ git log -n1 --oneline 91a06b9 Fixes #10534. Reenable the DB settings cache after the schema check. $ git diff v0.24.2-jya 91a06b908b > patch-mythtv-v0.24.2-jya-91a06b908b.diff
I am more familiar with mercurial and subversion then git but I think the above commands create the patch files we want.
comment:5 Changed 12 years ago by ctreleaven (Craig Treleaven)
Please close: see https://trac.macports.org/ticket/34900 for working port.
comment:6 Changed 12 years ago by mf2k (Frank Schima)
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Fails at build phase