[mythtv-users] Compiling myth with build_myth.sh (warning: long)

Harry Orenstein holists at verizon.net
Thu Jul 1 01:18:57 UTC 2010


I compile myth using the RPM build script in trunk/packaging/rpm.  Every time 
I do I have to modify the script and specfile to some degree.  Some of the 
changes are due to trunk changes that affect the build process.  Some of the 
changes are to remove dependencies that don't seem to be needed.  I'd like to 
submit a patch to update the build files in trunk so that any old or wrong 
dependencies or other requirements are updated.

Below I've attached the results of trying to install from my self-built RPMs, 
followed by diffs between my build_myth.sh, mythtv.spec and configure (from 
mythplugins) files compared to trunk.  I'd like to ask some questions about the 
changes I made and the dependencies that caused the install to fail.

First, about the install:

1. Does installing the mythvideo package really require the python bindings?  
I don't follow the commits list, but I haven't seen anything that mentioned 
this as an additional requirement for mythvideo.

2. I have added what seems like a lot of perl modules in order for 
installation to succceed over time.  Is there a list of the perl modules 
required for base mythtv and any plugins, broken out by program (i.e.: base 
mythtv, mythweather, etc.)?

Next, about build_myth.sh:

1. Why is mythgallery not built by default?  It seems that this is a basic 
myth function.  I haven't heard of any problems with mythgallery (like the 
maps problem with mythweather), so is this just an oversight?  The script 
seems to build most other subsystems by default, so why leave out mythgallery?  
The default is supposed to be to build it (based on mythtv.spec), but it won't 
build if I don't have the --with.

2. Pretty much the same question for mythnews, except that mythnews seems to 
be specifically excluded using --without.

3. I'm guessing that mythweather isn't included unless I use --with because of 
the maps problem?

Next, about mythtv.spec:

1. Compiling myth doesn't seem to really require lm_sensors-devel.  The 
mythtv-devel package has it as a dependency.  That also seems odd, as I would 
expect the dependency for the package to be lm_sensors.

2. Compiling myth doesn't seem to really require yasm_devel.  I've never had 
my package building process fail if this package isn't installed.

3. I've removed %{ix86} from the check to require xorg-x11-drv-intel-devel and 
xorg-x11-drv-openchrome-devel since I don't use either for my video.  XvMC has 
a specific check to see if it should be required.  Isn't there another way to 
check if these are required for compilation?  My build process doesn't fail 
without them and I don't need to use the corresponding packages for 
mythfrontend.  This actually will have to be addressed in two places in the 
specfile.

4. Can the packages required for firewire be put inside a conditional 
compilation check?  There is an option to disable firewire in configure but no 
corresponding check in the specfile.  Unless there is some other reason these 
need to be included all the time, I would like to try to make them 
conditional.

5. The configure options --enable-create-dvd and --enable-create-archive don't 
seem to be valid anymore.  There seems to be no reason not to remove them.

6. The python bindings for myth are no longer in the format 'Myth*.py'.  They 
are now just '*.py', as far as I can tell.  I had to update the chmod 
accordingly.

Finally, the configure script for mythplugins:

1. Configure seems to require that the python bindings be installed in order to 
compile mythnetvision.  I don't have any problems if I override this and 
enable building the mythnetvision plugin.  This seems to be an installation 
dependency rather than a compilation requirement.

As an additional exercise I'd like to work with someone more knowledgeable 
than myself to review all the build and install dependencies to try to get rid 
of any that are no longer needed.

Sorry for the length of the post.  TIA for any feedback!


-- Harry O.


-------------------------------------------------------------------------------------------------------------

# rpm -ivh {mythgallery,mythbrowser,mythmusic,mythnews,mythtv-backend,mythtv-
base-themes,mythtv-common,mythtv-docs,mythtv-frontend,mythtv-libs,mythtv-
setup,mythvideo,mythweather,mythweb}-0.24-0.1.svn.r25217.fc12.i386.rpm
error: Failed dependencies:
	perl(HTML::TreeBuilder) is needed by mythtv-
backend-0.24-0.1.svn.r25217.fc12.i386
	perl(XML::RSS) is needed by mythtv-backend-0.24-0.1.svn.r25217.fc12.i386
	python-MythTV = 0.24-0.1.svn.r25217.fc12 is needed by 
mythvideo-0.24-0.1.svn.r25217.fc12.i386

-------------------------------------------------------------------------------------------------------------

$ diff -u build_myth.sh build_myth.sh
--- build_myth.sh	2010-06-30 20:17:14.501802866 -0400
+++ build_myth.sh	2010-06-28 22:49:43.287594007 -0400
@@ -130,10 +130,11 @@
         rpmbuild -bb "$ABSPATH"/mythtv.spec \
             --define "_sourcedir $ABSPATH/mythtv" \
             --with debug            \
-            --without mytharchive   \
-            --without mythgallery   \
+            --with mytharchive   \
+            --with mythgallery   \
             --without mythgame      \
-            --without mythnews      \
+            --with mythnews      \
+            --with mythweather   \
             --without mythzoneminder
     # Error?
         if [ "$?" -ne 0 ]; then

--------------------------------------------------------------------------------------------------------------

$ diff -u mythtv.spec mythtv.spec
--- mythtv.spec	2010-06-30 20:16:50.563878578 -0400
+++ mythtv.spec	2010-06-29 20:42:28.506666895 -0400
@@ -64,7 +64,7 @@
 %define desktop_vendor  xris
 
 # SVN Revision number and branch ID
-%define _svnrev r25143
+%define _svnrev r25217
 %define branch trunk
 
 #
@@ -158,9 +158,10 @@
 BuildRequires:  qt4-devel >= 4.4
 BuildRequires:  phonon-devel
 
-BuildRequires:  lm_sensors-devel
+#BuildRequires:  lm_sensors-devel
 BuildRequires:  lirc-devel
-BuildRequires:  nasm, yasm-devel
+#BuildRequires:  nasm, yasm-devel
+BuildRequires:  nasm
 
 # X, and Xv video support
 BuildRequires:  libXmu-devel
@@ -169,7 +170,8 @@
 BuildRequires:  libXxf86vm-devel
 BuildRequires:  mesa-libGLU-devel
 BuildRequires:  xorg-x11-proto-devel
-%ifarch %{ix86} x86_64
+#%ifarch %{ix86} x86_64
+%ifarch x86_64
 BuildRequires:  xorg-x11-drv-intel-devel
 BuildRequires:  xorg-x11-drv-openchrome-devel
 %endif
@@ -208,9 +210,9 @@
 BuildRequires: kernel-headers
 
 # FireWire cable box support
-BuildRequires:  libavc1394-devel
-BuildRequires:  libiec61883-devel
-BuildRequires:  libraw1394-devel
+#BuildRequires:  libavc1394-devel
+#BuildRequires:  libiec61883-devel
+#BuildRequires:  libraw1394-devel
 
 %if %{with_directfb}
 BuildRequires:  directfb-devel
@@ -389,7 +391,8 @@
 Requires:  libXxf86vm-devel
 Requires:  mesa-libGLU-devel
 Requires:  xorg-x11-proto-devel
-%ifarch %{ix86} x86_64
+#%ifarch %{ix86} x86_64
+%ifarch x86_64
 Requires:  xorg-x11-drv-i810-devel
 Requires:  xorg-x11-drv-openchrome-devel
 %endif
@@ -987,8 +990,6 @@
         --libdir-name=%{_lib} \
     %if %{with_mytharchive}
         --enable-mytharchive \
-        --enable-create-dvd \
-        --enable-create-archive \
     %else
         --disable-mytharchive \
     %endif
@@ -1071,7 +1072,7 @@
     mkdir -p %{buildroot}%{_sysconfdir}/mythtv
 
 # Fix permissions on executable python bindings
-    chmod +x %{buildroot}%{python_sitelib}/MythTV/Myth*.py
+    chmod +x %{buildroot}%{python_sitelib}/MythTV/*.py
 
 # mysql.txt and other config/init files
     install -m 644 %{SOURCE110} %{buildroot}%{_sysconfdir}/mythtv/

----------------------------------------------------------------------------------------------------------

diff -u configure configure
--- configure	2010-06-30 20:17:40.700876690 -0400
+++ configure	2010-06-28 18:10:22.505679741 -0400
@@ -422,7 +422,7 @@
         disable netvision
     }
 
-    check_py_lib MythTV  || disable_netvision "MythTV Python bindings 
(MythTV)"
+#   check_py_lib MythTV  || disable_netvision "MythTV Python bindings 
(MythTV)"
     check_py_lib pycurl  || disable_netvision "Python pycurl library 
(pycurl)"
     check_py_lib lxml    || disable_netvision "Python lxml library (lxml)"
     check_py_lib xml     || disable_netvision "Python XML library (xml)"


More information about the mythtv-users mailing list