Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The EW Ebuilds for MythTV came about to satisfy the following needs and desires (mine), and have simply continued evolving from there.
Up-to-date. Sync, emerge, and go! Just have a look... MythTV's stable
-fixestree has a remarkable rate of stable releases. The ebuilds you'll find here are farm-fresh and keep up closely, while also being historically deterministic (meaning you can always emerge any specific build in the history of the repo).
- Easy to customize. Want portage to install using a different git revision or branch? Copy an ebuild, give it a sensible name and version, and simply edit its branch, commit hash, and keywords. Done!
Sensible version numbers. Numeric and increasing version scheme, based on MythTV's versioning, and consistently mappable to MythTV's git commit hashes (using
- Easy reverting. Did a recent MythTV change cause problems for you? Instantly restore WAF by simply emerging the specific version that worked well (within database schemas of course; across them, simply use your DB backups).
ONE mythplugins ebuild. Select your plugins with USE flags, the normal portage way for a build that has optional components selected in its
configure. This is why there aren't separate mythfrontend and mythbackend ebuilds; it only makes sense that the plugins work the same way. Plus, it's much less tedious to only need one.
Portage "sets" support. Use
emerge -av @mythtvto get everything in one go.
- Readable code. Clean, readable, and well organized code benefits everyone. Contributions in this area are just as welcome as any other. Also, please visit the issues section if you'd like to share any improvement.
- No config shenanigans. The name of an ebuild file maps the Gentoo version number to the corresponding MythTV version specification contained inside. Then, all of the common logic (the bulk of the ebuild, in fact) is shared for all of the version ebuilds in an eclass, which has the side benefit of keeping them tiny -- nothing but the configurables.
Stable/unstable consistency. MythTV's
-fixesscheme is brilliant, but portage's ebuilds don't recognize it. So let's use the
~archkeywording in the ebuilds to indicate the actual MythTV stability level for a version, whether it's release (stable), fixes (stable patchlevel), or "trunk" (unstable).