[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