Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 676952 - media-tv/mythtv-30.0 version bump
Summary: media-tv/mythtv-30.0 version bump
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Wilson M. Michaels
URL:
Whiteboard:
Keywords: EBUILD, PATCH, PullRequest
: 688084 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-01-30 21:36 UTC by Wilson M. Michaels
Modified: 2019-09-30 17:33 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
mythtv-30.0.ebuild (mythtv-30.0.ebuild,9.89 KB, text/plain)
2019-01-30 21:36 UTC, Wilson M. Michaels
Details
mythtv-30.0-configure-NVCtrl.patch (mythtv-30.0-configure-NVCtrl.patch,939 bytes, patch)
2019-01-30 21:42 UTC, Wilson M. Michaels
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Wilson M. Michaels 2019-01-30 21:36:55 UTC
Created attachment 563334 [details]
mythtv-30.0.ebuild

I have modified the mythtv-29,1 version to build the mythtv-30.0 current release.
I have run ebuild compile to completion.

I have not installed it yet because I use it daily and need VDPAU for my mythfrontend hardware (I ordered a Raspberry Pi instead of a new video card to get around that restriction).  I use mythtv daily and do not want to convert the database until I have new hardware. I plan to test it soon.

There are 2 attachments:
  mythtv-30.0.ebuild  [included]
  files/mythtv-30.0-configure-NVCtrl.patch  [in following post]

The build applies the patch file.  The patch corrects upstream's configure file to handle gentoo configurations that do not include x11-drivers/nvidia-drivers

Signed-off-by: Mac Michaels <thebitpit@earthlink.net>
Comment 1 Wilson M. Michaels 2019-01-30 21:42:24 UTC
Created attachment 563336 [details, diff]
mythtv-30.0-configure-NVCtrl.patch

Patch for upstream configure file for mythtv-30.0 source code.
This is the file I mentioned in the initial new ebuild comment.
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2019-02-01 09:16:02 UTC
Comment on attachment 563334 [details]
mythtv-30.0.ebuild

--- mythtv-29.1-r1.ebuild       2019-01-05 14:33:06.392079052 +0100
+++ -   2019-02-01 10:15:00.676826342 +0100
@@ -5,13 +5,17 @@
 PYTHON_COMPAT=( python2_7 )

 # git diff --relative=mythtv v0.27.6.. > ~/mythtv-0.27.6/patches/mythtv.patch
-BACKPORTS="d8a2db77f5731cf32c6d31127452391c6cf7f91f"
+#BACKPORTS="d8a2db77f5731cf32c6d31127452391c6cf7f91f"
 MY_P=${P%_p*}
 MY_PV=${PV%_p*}

+PATCHES=(
+       "${FILESDIR}"/${P}-configure-NVCtrl.patch
+)
+
 inherit flag-o-matic python-single-r1 qmake-utils user readme.gentoo-r1 systemd vcs-snapshot

-MYTHTV_BRANCH="fixes/29"
+MYTHTV_BRANCH="fixes/30"

 DESCRIPTION="Homebrew PVR project"
 HOMEPAGE="https://www.mythtv.org"
@@ -23,11 +27,10 @@

 IUSE_INPUT_DEVICES="input_devices_joystick"
 IUSE="alsa altivec autostart bluray cec crystalhd debug dvb dvd egl fftw +hls \
-       ieee1394 jack lcd libass lirc mythlogserver perl pulseaudio python systemd +theora \
-       vaapi vdpau +vorbis +wrapper +xml xmltv +xvid zeroconf ${IUSE_INPUT_DEVICES}"
+       ieee1394 jack lcd libass lirc perl pulseaudio python systemd \
+       vaapi vdpau +wrapper +xml xmltv +xvid zeroconf ${IUSE_INPUT_DEVICES}"
 REQUIRED_USE="${PYTHON_REQUIRED_USE}
        bluray? ( xml )
-       theora? ( vorbis )
 "

 COMMON="
@@ -56,6 +59,13 @@
        x11-libs/libXrandr
        x11-libs/libXxf86vm
        x11-misc/wmctrl
+
+       >=media-libs/libbluray-0.9.3
+       media-libs/libsamplerate
+       media-libs/libhdhomerun
+       sys-libs/zlib
+       dev-libs/lzo
+
        alsa? ( >=media-libs/alsa-lib-1.0.24 )
        bluray? (
                dev-libs/libcdio:=
@@ -103,10 +113,7 @@
                dev-python/requests-cache
        )
        systemd? ( sys-apps/systemd:= )
-       theora? ( media-libs/libtheora media-libs/libogg )
        vaapi? ( x11-libs/libva:=[opengl] )
-       vdpau? ( x11-libs/libvdpau )
-       vorbis? ( >=media-libs/libvorbis-1.0 media-libs/libogg )
        xml? ( >=dev-libs/libxml2-2.6.0 )
        xvid? ( >=media-libs/xvid-1.1.0 )
        zeroconf? (
@@ -176,6 +183,8 @@
        echo "BRANCH=\"${MYTHTV_BRANCH}\"" >> "${S}"/EXPORTED_VERSION

        echo "setting.extra -= -ldconfig" >> "${S}"/programs/mythfrontend/mythfrontend.pro
+       PATCHES=(
+       )
 }

 src_configure() {
@@ -205,8 +214,6 @@
        myconf="${myconf} --enable-libmp3lame" # lame is not optional it is required for some broadcasts for silence detection of commercials
        use cec || myconf="${myconf} --disable-libcec"
        use zeroconf || myconf="${myconf} --disable-libdns-sd"
-       myconf="${myconf} $(use_enable theora libtheora)"
-       myconf="${myconf} $(use_enable vorbis libvorbis)"

        if use hls; then
                myconf="${myconf} --enable-libx264"
@@ -267,9 +274,8 @@

        myconf="${myconf} $(use_enable systemd systemd_notify)"
        myconf="${myconf} $(use_enable systemd systemd_journal)"
-       use systemd || myconf="${myconf} $(use_enable mythlogserver)"

-       chmod +x ./external/FFmpeg/version.sh
+#??    chmod +x ./external/FFmpeg/version.sh

        einfo "Running ./configure ${myconf}"
        ./configure \
Comment 3 Preston Crow 2019-03-09 18:29:07 UTC
FYI: I've created an ebuild in bug 674216 based in part on the one here that merges the mythplugins build into the mythtv build.  The sources for mythtv and mythplugins are distributed together, and users who use the plugins will want to install both together, so it may make sense to have a single ebuild.
Comment 4 Tom Dexter 2019-04-15 19:34:12 UTC
Thanks for this Wilson! I was just starting to look into the changes needed for version 30 when I found this. Most notably I was looking into the new prerequisite for libXNVCtrl. I was concerned about that because I have the tools USE flag off for nvidia-drivers ever since that started requiring dbus (don't get me started), and thus I do in fact have nvidia-drivers but don't have nvidia-settings and, as a result, don't have libXNVCtrl.

I see you have a patch related to that. I'm confused as to you original comment around vdpau. Is there some issue regarding vdpau, and it is related to that patch? I also noticed that you're test in the configure script is looking for a non-zero length /proc/drivers/nvidia/version. On my frontend it appears that the  path is actually /proc/driver/nvidia/version and in addition, it reports a zero length even though it reports a version:

ls -al /proc/driver/nvidia/version
-r--r--r-- 1 root root 0 Apr 15 15:22 /proc/driver/nvidia/version

cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86 Kernel Module  390.116  Sun Jan 27 06:01:56 PST 2019
GCC version:  gcc version 7.3.0 (Gentoo 7.3.0-r3 p1.4) 

I'm confused as to the whole requirement actually. I've yet to get a look at the source and the configure script itself. Does that "disable xnvctrl_external" mean that it's using it's own source for that (as it did in 29.1) or does it mean it's actually missing that support...and does that affect vdpau etc?

Thanks!
Tom
Comment 5 Tom Dexter 2019-04-15 21:20:39 UTC
Just an update on what I've found: In the configure, if that xnvctrl_external ends up disabled, it does in fact cause it to use the internal libXNVCtrl in the mythtv source, which is identical to that in version 29.1.

However any check in the configure actually needs to check for the existence of nvidia-settings as apposed to nvidia-drivers in order to handle the case of nvidia-drivers with -tools. I'm not sure what the best means is to do that.

I think the check in that patch as it stands now will always assume that nvidia-drivers aren't installed and would disable xnvctrl itself...though I'm unclear as to what that affects.
Comment 6 Tom Dexter 2019-04-15 21:41:56 UTC
A few other things I've noticed on the version 30 ebuild itself:

The addition of the ">=media-libs/libbluray-0.9.3" line is currently ignoring the bluray use flag and could probably just replace the existing "media-libs/libbluray:=" in the "bluray?" section.

Also, I think the new requirement for libminizip requires that this addition in the ebuild:

sys-libs/zlib

...actually use:

sys-libs/zlib[minizip]

That is, with the minizip USE flag.
Comment 7 Wilson M. Michaels 2019-04-17 22:02:20 UTC
I resolved this bug by marking it as a duplicate of Bug 674216.  That bug has a more complete ebuild for mythtv. 

The mythtv-30.0-configure-NVCtrl.patch attached to this bug report is broken. I have a better mythtv-30.0-configure-NVCtrl.patch that I will add as an attachment to Bug 674216.

*** This bug has been marked as a duplicate of bug 674216 ***
Comment 8 Wilson M. Michaels 2019-08-31 14:22:55 UTC
I reopened this bug for reference by a pull request to add a mythtv-30.0.ebuild from the fixes/30 branch.  I decided to become a proxy maintainer.
Comment 9 Jeroen Roovers (RETIRED) gentoo-dev 2019-09-08 09:00:31 UTC
*** Bug 688084 has been marked as a duplicate of this bug. ***
Comment 10 Amel Hodzic 2019-09-21 09:19:07 UTC
This ebuild fails to build with the crystalhd USE flag enabled.
Comment 11 Joonas Niilola gentoo-dev 2019-09-21 11:56:19 UTC
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb34a5497be5bc3642f0fc05b59bab53ca7e0ca1

(In reply to Amel Hodzic from comment #10)
> This ebuild fails to build with the crystalhd USE flag enabled.

Please open a new bug with full build.log about the issue, resolving this one.
Comment 12 Wilson M. Michaels 2019-09-21 22:44:23 UTC
(In reply to Amel Hodzic from comment #10)
> This ebuild fails to build with the crystalhd USE flag enabled.

Mythtv 30.0 may support crystalhd but it is not in portage yet. If you install crystalhd manually it might allow compilation of mythtv. I have not tested this. 

I'll add creating an ebuild for crystalhd to my TODO list.
Comment 13 Joonas Niilola gentoo-dev 2019-09-22 06:57:53 UTC
Truthfully you should try to replicate the error and remove IUSE="crystalhd" from mythtv-30.0_p20190808.ebuild if it doesn't work. It doesn't need revbumping. 

I now see 'crystalhd' doesn't pull any deps either.
Comment 14 thomas 2019-09-22 12:40:35 UTC
I have this package not allowed, but it tries to force the installation. Currently installed is 29.1-r1(0/29.1).

# emerge --quiet --ask --update --deep --newuse --keep-going --backtrack=100 --with-bdeps=y --verbose-conflicts world        

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by @__auto_slot_operator_replace_installed__ (argument)
=media-tv/mythtv-30.0_p20190808 ~amd64

The following mask changes are necessary to proceed:
 (see "package.unmask" in the portage(5) man page for more details)
# required by @__auto_slot_operator_replace_installed__ (argument)
# /etc/portage/package.mask/migrated:
=media-tv/mythtv-30.0_p20190808

package.keywords:
<media-tv/mythtv-30.0 ~amd64

package.mask:
>=media-tv/mythtv-30.0

How can I workaround this problem?
Comment 15 Wilson M. Michaels 2019-09-22 13:38:35 UTC
(In reply to thomas from comment #14)
> I have this package not allowed, but it tries to force the installation.
> Currently installed is 29.1-r1(0/29.1).
> 
> # emerge --quiet --ask --update --deep --newuse --keep-going --backtrack=100
> --with-bdeps=y --verbose-conflicts world        
> 
> The following keyword changes are necessary to proceed:
>  (see "package.accept_keywords" in the portage(5) man page for more details)
> # required by @__auto_slot_operator_replace_installed__ (argument)
> =media-tv/mythtv-30.0_p20190808 ~amd64
> 
> The following mask changes are necessary to proceed:
>  (see "package.unmask" in the portage(5) man page for more details)
> # required by @__auto_slot_operator_replace_installed__ (argument)
> # /etc/portage/package.mask/migrated:
> =media-tv/mythtv-30.0_p20190808
> 
> package.keywords:
> <media-tv/mythtv-30.0 ~amd64
> 
> package.mask:
> >=media-tv/mythtv-30.0
> 
> How can I workaround this problem?
Do you already have media-tv/mythtv-30.0_p20190808 installed?
Check with:
Comment 16 Wilson M. Michaels 2019-09-22 13:43:08 UTC
(In reply to Wilson M. Michaels from comment #15)
> (In reply to thomas from comment #14)
> > I have this package not allowed, but it tries to force the installation.
> > Currently installed is 29.1-r1(0/29.1).
> > 
> > # emerge --quiet --ask --update --deep --newuse --keep-going --backtrack=100
> > --with-bdeps=y --verbose-conflicts world        
> > 
> > The following keyword changes are necessary to proceed:
> >  (see "package.accept_keywords" in the portage(5) man page for more details)
> > # required by @__auto_slot_operator_replace_installed__ (argument)
> > =media-tv/mythtv-30.0_p20190808 ~amd64
> > 
> > The following mask changes are necessary to proceed:
> >  (see "package.unmask" in the portage(5) man page for more details)
> > # required by @__auto_slot_operator_replace_installed__ (argument)
> > # /etc/portage/package.mask/migrated:
> > =media-tv/mythtv-30.0_p20190808
> > 
> > package.keywords:
> > <media-tv/mythtv-30.0 ~amd64
> > 
> > package.mask:
> > >=media-tv/mythtv-30.0
> > 
> > How can I workaround this problem?
> Do you already have media-tv/mythtv-30.0_p20190808 installed?
> Check with:

Oops - I hit wrong key and sent before I was ready.
      Check with: 
equery l media-tv/mythtv

If it lists mythtv-30.0_p20190808 then uninstall it with:
Comment 17 Wilson M. Michaels 2019-09-22 13:49:57 UTC
(In reply to Wilson M. Michaels from comment #16)
> (In reply to Wilson M. Michaels from comment #15)
> > (In reply to thomas from comment #14)
> > > I have this package not allowed, but it tries to force the installation.
> > > Currently installed is 29.1-r1(0/29.1).
> > > 
> > > # emerge --quiet --ask --update --deep --newuse --keep-going --backtrack=100
> > > --with-bdeps=y --verbose-conflicts world        
> > > 
> > > The following keyword changes are necessary to proceed:
> > >  (see "package.accept_keywords" in the portage(5) man page for more details)
> > > # required by @__auto_slot_operator_replace_installed__ (argument)
> > > =media-tv/mythtv-30.0_p20190808 ~amd64
> > > 
> > > The following mask changes are necessary to proceed:
> > >  (see "package.unmask" in the portage(5) man page for more details)
> > > # required by @__auto_slot_operator_replace_installed__ (argument)
> > > # /etc/portage/package.mask/migrated:
> > > =media-tv/mythtv-30.0_p20190808
> > > 
> > > package.keywords:
> > > <media-tv/mythtv-30.0 ~amd64
> > > 
> > > package.mask:
> > > >=media-tv/mythtv-30.0
> > > 
> > > How can I workaround this problem?
> > Do you already have media-tv/mythtv-30.0_p20190808 installed?
> > Check with:
> 
> Oops - I hit wrong key and sent before I was ready.
>       Check with: 
> equery l media-tv/mythtv
> 
> If it lists mythtv-30.0_p20190808 then uninstall it with:

Oops, I did it again sorry.

Do not do the following unless mythtv-30.0_p20190808 is installed.
    Uninstall it and reinstall it like this:
emerge --unmerge media-tv/mythtv
emerge  media-tv/mythtv

It should restore version 29 for you.
Comment 18 Wilson M. Michaels 2019-09-22 14:13:26 UTC
(In reply to Joonas Niilola from comment #13)
> Truthfully you should try to replicate the error and remove IUSE="crystalhd"
> from mythtv-30.0_p20190808.ebuild if it doesn't work. It doesn't need
> revbumping. 
> 
> I now see 'crystalhd' doesn't pull any deps either.

Verified bug. Will remove crystalhd USE flag in mythtv-30.0_p20190808-r1.
Comment 19 thomas 2019-09-22 14:25:06 UTC
# equery list mythtv
 * Searching for mythtv ...
[IP-] [  ] acct-group/mythtv-0:0
[IP-] [  ] acct-user/mythtv-0:0
[IP-] [  ] media-tv/mythtv-29.1-r1:0/29.1

30.0 is not installed yet.
Comment 20 thomas 2019-09-22 16:13:52 UTC
(In reply to thomas from comment #19)
> # equery list mythtv
>  * Searching for mythtv ...
> [IP-] [  ] acct-group/mythtv-0:0
> [IP-] [  ] acct-user/mythtv-0:0
> [IP-] [  ] media-tv/mythtv-29.1-r1:0/29.1
> 
> 30.0 is not installed yet.

I think that was my mistake. I think I had not keyworded mythtv correctly earlier and so it installed newer libvpx and firefox, then failed mythtv 0.30 for other reasons. And now it NEEDS newer mythtv because of new libvpx. After uninstalling libvpx, it allows my to reinstall mythtv 29.1. Sorry for the noise.
Comment 21 Wilson M. Michaels 2019-09-24 12:54:51 UTC
(In reply to Wilson M. Michaels from comment #18)
> (In reply to Joonas Niilola from comment #13)
> > Truthfully you should try to replicate the error and remove IUSE="crystalhd"
> > from mythtv-30.0_p20190808.ebuild if it doesn't work. It doesn't need
> > revbumping. 
> > 
> > I now see 'crystalhd' doesn't pull any deps either.
> 
> Verified bug. Will remove crystalhd USE flag in mythtv-30.0_p20190808-r1.

Leave crystalhd USE flag in ebuild. I might still be used with old Apple TV 1.
Add note to flag that it crystalhd lib and headers already be installed on system.  It is still in mythtv.
Comment 22 thomas 2019-09-29 07:32:23 UTC
Why does the ebuild change the home directory of my existing user "mythtv"? That is not good IMHO.
Comment 23 Wilson M. Michaels 2019-09-29 14:26:32 UTC
(In reply to thomas from comment #22)
> Why does the ebuild change the home directory of my existing user "mythtv"?
> That is not good IMHO.

The build does not change the location of your existing mythtv user home directory. Version 30.0 works fine using your old home directory. If there is no mythtv user then is creates one with a home directory in the new location.

The default home directory location for new installs is /var/lib/mythtv. It changed to be consistent with the Filesystem Hierarchy Standard https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard. The gentoo standard is to warn about using /home as a home directory because it is reserved for real people. In large organizations the /home directory may be mounted late in the boot process. The mythtv user is for the mythbackend daemon.

Gentoo has recently added acct-user/<name> and acct-group/<name> packages to sutomatically create <name> user or group as required by any package. This allows packages to share a user or group and to remove them from the system when no installed package depends on them. These <name> users are usually run as a daemon.

The autostart USE flag is a convenience to start/restart mythfrontend. It adds 2 hidden files to mythtv home directory wherever it is located when the emerge is successful. This is an appropriate use of the mythtv user because mythfrontend is being used as a daemon that runs when the system is started.

A bug in mythtv-30.0 autostart fails to add these 2 files. It is fixed when the very busy gentoo developers get my pull request merged into the gentoo tree.
Comment 24 thomas 2019-09-29 16:07:14 UTC
I had a user mythtv and its home dir in /home/mythtv.

Then I installed and uninstalled acct-user/mythtv.

Then I installed this ebuild (which again installed acct-user/mythtv) and then the home dir had changed to /var/lib/mythtv.

So, if the ebuild does not change the home dir of an existing user, then uninstalling acct-user/mythtv must have deleted the user?
Comment 25 Wilson M. Michaels 2019-09-30 13:29:44 UTC
(In reply to thomas from comment #24)
> I had a user mythtv and its home dir in /home/mythtv.
> 
> Then I installed and uninstalled acct-user/mythtv.
> 
> Then I installed this ebuild (which again installed acct-user/mythtv) and
> then the home dir had changed to /var/lib/mythtv.
> 
> So, if the ebuild does not change the home dir of an existing user, then
> uninstalling acct-user/mythtv must have deleted the user?

Correct. Mythtv depends on acct-user/mythtv. Emerge acct-user/mythtv does not alter the home directory of an existing mythtv user. Manually uninstalling acct-user removes the mythtv user. The old home directory is not deleted, but its association with mythtv user is removed. Emerge --depclean uninstalls acct-user when no installed packages depend on it. Reinstalling/upgrading >=mythtv-30.0 does not uninstall acc-user.
Comment 26 Joonas Niilola gentoo-dev 2019-09-30 17:33:38 UTC
(There might be a way to set custom home directory by making a local copy of acct-user ebuild, like you'd operate in local overlay with ebuild bumps)