8/6/2007
MythTV packaging changes
First a little background on how we package MythTV in Gentoo. The -fixes branch is where Gentoo’s 0.20.1_p##### series of ebuilds come from. Basically mythtv-0.20.1_p13783 means MythTV 0.20.1 + all fixes and patches from 0.20.1 to svn revision 13783 from the -fixes branch. You will however notices that a lot more issues get fixed in trunk, which is Gentoo’s 0.21_pre##### series of ebuilds. A lot of these issues do get backported to -fixes after some time, generally with users begging for the fixes to be backported since most developers use the trunk versions.
Well the issue arose a few weeks ago when the MythTV upstream guys started to revise their default themes and add some additional icons to the -fixes branch. This causes a problem because of how we currently package MythTV, essentially I just svn up and do a svn diff -r 0.20.1:HEAD >mythtv.patch and that file ends up in SRC_URI and is downloaded and automatically applied on top of the tarball. This way users only have to download a few kilobytes of a bzipped patch and keep the base tarball on their system. However, with the binary changes, there is no easy way to create a diff or a changeset, so that leaves us with two options. Create a whole new tarball every single time, or download from svn directly. The tarball every single time involves a little bit of work for me and a lot of downloading for the end user. If I update MythTV every week or every other week, that means about 40mb of downloads everytime. On the other hand, relying on svn means that we’re extending the build time depends but saving on bandwidth. (Yes, there is a third option which is create another tarball of all the binary changes plus the patchset, which is a headache and I’ve done it before for mytharchive and I have no interest in doing that).
Since MythTV upstream constantly tells users “are you at the latest svn? if not upgrade to the latest!”, it seems like they are confident in the svn infrastructure and recommend that to be used so I’ve gone the route of svn. This way the entire tree will only be checked out on everyone’s systems once and only the minor changes will be downloaded each time. This should conserve bandwidth and also ease maintenance requirements which will provide for more frequent updates which seems to be what everyone wants. It’s unfortunate that MythTV does not have better release engineering so that we could avoid this, but unfortunately we’re stuck in between a rock and a hard place on this one.
In closing, it is correct that MythTV beginning with 0.20.1_p14146 depends on subversion.
Filed under: Linux, MythTV
5 Comments
5 Responses to “MythTV packaging changes”
Leave a Reply
August 20th, 2007 at 1:38 am
[...] The Gentoo MythTV package maintainers have changed how the ebuilds work. They used to download a small patch which would be applied on top of the tarball, but they are now changing to using svn directly. You can read a more detailed explanation here. [...]
August 28th, 2007 at 4:43 am
Dear Doug,
I have tried to rebuild mythtv for the upcoming SD conversion. I am running gentoo 2007.0 with 2.6.20-gentoo-r8 kernel.
I added the following to my package.unmask file:
=media-tv/mythtv-0.20.2_p14324
However, emerge mythtv results in:
Calculating dependencies… done!
>>> Verifying ebuild Manifests…
>>> Emerging (1 of 2) media-tv/mythtv-0.20.2_p14324 to /
… [ ok ]
… [ ok ]
… [ ok ]
* checking ebuild checksums
* checking auxfile checksums
* checking miscfile checksums
* This ebuild now uses a heavily stripped down version of your CFLAGS
* Don’t complain because your -momfg-fast-speed CFLAG is being stripped
* Only additional CFLAG issues that will be addressed are for binary
* package building.
>>> Unpacking source…
*
* ERROR: media-tv/mythtv-0.20.2_p14324 failed.
* Call stack:
* ebuild.sh, line 1654: Called dyn_unpack
* ebuild.sh, line 768: Called qa_call ’src_unpack’
* ebuild.sh, line 44: Called src_unpack
* mythtv-0.20.2_p14324.ebuild, line 107: Called subversion_src_unpack
* subversion.eclass, line 254: Called subversion_fetch
* subversion.eclass, line 179: Called die
*
* subversion.eclass: ESVN_REPO_URI (or specified URI) and working copy’s URL are not matched.
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at ‘/var/tmp/portage/media-tv/mythtv-0.20.2_p14324/temp/build.log’.
*
* Messages for package media-tv/mythtv-0.20.2_p14324:
*
* ERROR: media-tv/mythtv-0.20.2_p14324 failed.
* Call stack:
* ebuild.sh, line 1654: Called dyn_unpack
* ebuild.sh, line 768: Called qa_call ’src_unpack’
* ebuild.sh, line 44: Called src_unpack
* mythtv-0.20.2_p14324.ebuild, line 107: Called subversion_src_unpack
* subversion.eclass, line 254: Called subversion_fetch
* subversion.eclass, line 179: Called die
*
* subversion.eclass: ESVN_REPO_URI (or specified URI) and working copy’s URL are not matched.
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at ‘/var/tmp/portage/media-tv/mythtv-0.20.2_p14324/temp/build.log’.
*
Can you tell me what might be wrong?
Please let me know if you need any additional information.
Thanks,
Dick
August 31st, 2007 at 2:36 am
I noticed someone else (on gossamerthreads.com) is having the same problem.
Can someone please help! The zap2it schedules are terminating today!
Thanks for any help offered!
September 5th, 2007 at 9:24 pm
Any chance that the patch by Ian Armstrong described here could be included in the ebuild?
I have a pvr-350 and want since I upgraded to kernel 2.6.22 and the latest ivtv 1.0.2 drivers I can’t play video in myth. This patch says it will fix it but since I’ve used your great myth ebuilds I’d rather not go back and to installing myth manually.
Thanks for a great ebuild!
September 12th, 2007 at 12:03 am
Dick,
Basically something happened to get you out of sync, or you previously tried the 0.21 ebuilds and downgraded to the 0.20 ebuilds (which won’t work due to a limitation of the subversion.eclass currently).
The fix for the above problems is to go into /usr/portage/distfiles/svn-src/ and remove anything mythtv related, so mythtv, mythplugins and myththemes. If you have anything else myth laying in there, I’d nuke it to be safe as well.