[mythtv] [mythtv-users] setting up an env

Dan Littlejohn dan.littlejohn at gmail.com
Fri Apr 1 20:45:13 UTC 2016


On Wed, Mar 23, 2016 at 5:38 PM, Roger Siddons <dizygotheca at ntlworld.com>
wrote:

> On 23/03/16 04:05, Dan Littlejohn wrote:
>
>>
>> Thanks for the suggestion.  I downloaded QT Creator and have it setup,
>> but if you have a tip or there is a tutorial somewhere on how to create
>> a myth project in it that would be appreciated.  I will likely take a
>> guess at it with the "new project" options or to poke around, but I
>> thought I would just ask.  Not sure if the qmake file comment was a hint.
>>
>>
> I don't know of any tutorials.
>
> The projects already exist in git - QtCreator will use the same ones as
> the official build script, which makes things easy.
>
> You'll find that each library and app has a *.pro file alongside its
> sources. The top-level Makefile runs qmake on each one to generate the
> sub-project Makefile, which is then built. QtCreator will do the same when
> you open one of the *.pro files. (Theoretically qmake is run in a different
> environment but I've never had any problems, so I've never investigated.)
>
> So:
>
> 1. configure, build and install as usual, in order to build FFmpeg etc and
> install themes etc.
>
> 2. From QtC open mythfrontend.pro and mythbackend.pro. The first time it
> will 'configure' it. I just use a Debug build with *.o files in the source
> dir (to be compatible with the build script). Use defaults for everything
> else.
>
> 3. You should then see the sources and be able to build. QtC should
> automatically detect your compiler, debugger and Qt libs ("kits") but the
> settings allow you to fix/adjust them.
>
> 4. Installing conventionally is problematic because QtC needs sudo
> privileges. You could use ssh-askpass in a deployment step or blat your
> permissions. I skip deployment by symbolically linking the relevant
> apps/libs in /usr/local back to the source tree so that I can just build,
> then run.
>
> 5. Select each project and run/debug it. It helps to have multiple
> monitors.
>
> Be wary of project dependencies. Myth project files don't usually specify
> them (the top-level Makefile dictates them). So if you modify libmythui
> code, re-building mythfrontend won't automatically re-link against it. If
> you hunt around the Projects tab, you'll find a Dependencies tab where you
> can set them.
>
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
> http://lists.mythtv.org/mailman/listinfo/mythtv-dev
>
> http://wiki.mythtv.org/Mailing_List_etiquette
> MythTV Forums: https://forum.mythtv.org
>


Hi Roger:

Thanks for this, it took me a while to sort out a virtual machine dev env
and I still has some to figure out.  I documented it in case it might be
useful for someone else.

I have a couple more questions:

   - I used a prefix so that configure would install the files in
   /usr/local/mythtv.  Per your notes you are building in place and then
   linking back?

ln -s /opt/mythtv/mythtv /usr/local/mythtv

If so does this not cause a problem with commits?  Currently, I can build
projects like the mythbackend, but when I am trying to run I am getting a
weird error about it not being able to attach as a slave and it being
protocol version 77 instead of 88.  There is no other backend running on
the vm.

   - I am not quite understanding the .pro files.  If the mythfrontend uses
   a lib that is causing the problem (like the function GetPlaybackURL in
   libmythmetadata) then you cannot find it in the code if you use the
   mythfrontend.pro file?  How do you sort out problems if this is the
   case, do you have to have all these projects open and just know where stuff
   is?  I found a mythtv.pro file in the top level and it does have
   everything so that is what I was looking through the code with.

Dan


MythTV Virtual Machine Dev Env Setup

+++

install vmware workstation player

Mint 17.3 Rosa - x86_64

run vmware and choose "create a new virtual machine".  After boots click on
cdrom to run installer and follow instructions

reboot virtual machine

shut down and in vmware player tool set network adapter for the new vm to
bridged

install vmware tools

  sudo apt-get install open-vm-tools

install ssh

  sudo apt-get install openssh-server
  sudo apt-get install openssh-client

set static ip and dns server

  From the menu, System Settings > Network. Click Configure
  ip address should be the same as regular network (since using bridged)

if copying vm need to update hostname

  vi /etc/hostname
  vi /etc/hosts

install git

  sudo apt-get install git

 install dependencies

    sudo apt-get install build-essential
    sudo apt-get install libtool
    sudo apt-get install autoconf

    sudo apt-get install python-dev
    sudo apt-get install python-pip
    sudo apt-get install perl
    sudo apt-get install qt5-default
    sudo apt-get install libqt5webkit5-dev
    sudo apt-get install qtscript5-dev
    sudo apt-get install qtdeclarative5-qtquick2-plugin

    sudo apt-get install yasm
    sudo apt-get install libtag1-dev
    sudo apt-get install libglew-dev
    sudo apt-get install freetype*
    sudo apt-get install libmp3lame-dev
    sudo apt-get install libexiv2-dev
    sudo apt-get install libXinerama-dev

    sudo apt-get install mysql-server
    sudo apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev
    sudo apt-get install libqt5sql5-mysql

configure mysql

    update-rc.d -f mysql defaults
    # comment out this line from /etc/mysql/my.cnf
    #bind-address           = 127.0.0.1
    mysql -u root -p
    create database mythconverg;
    CREATE USER 'mythtv'@'%' IDENTIFIED BY 'mythtv';
    GRANT ALL PRIVILEGES ON * . * TO 'mythtv'@'%';
    FLUSH PRIVILEGES;
    mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

install python modules

    pip install mysql
    pip install urlgrabber

install perl modules

    cpan
    install DBI
    install DBD::mysql
    install Net::UPnP::QueryResponse
    install Net::UPnP::ControlPoint

re-source profile or open a new xterm

    source ~/.profile

pull mythtv repo

  mkdir /opt/mythtv
  cd /opt/mythtv
  git clone https://github.com/MythTV/mythtv

manually build mythtv

    cd /opt/mythtv/mythtv
    mkdir /usr/local/mythtv
    ./configure --prefix=/usr/local/mythtv
    make
    make test
    make install

install qt creator (http://doc.qt.io/qtcreator/creator-coding.html)

  apt-get install qtcreator

import into qt creator

    open /opt/mythtv/mythtv/programs/mythbackend/mythbackend.pro
    in the project configure screen choose debug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mythtv.org/pipermail/mythtv-dev/attachments/20160401/637b9a1f/attachment.html>


More information about the mythtv-dev mailing list