Building Mythtv 31/32 with Ansible

For discussion of topics specific to MythTV on OSX
crowston
Newcomer
Posts: 5
Joined: Mon Jun 15, 2020 7:12 pm
Canada

Re: Building Mythtv 31 with Ansible

Post by crowston » Mon Jun 15, 2020 7:18 pm

Thanks for your efforts in building and distributing the app. I have been using an old laptop as a front end but it can only run El Capitan, not High Sierra. I am wondering if I could follow these instructions to compile for that OS version or if there was a new prerequisite in v31 that requires a newer OS. I guess the later, since otherwise you wouldn't have built it for 10.13, but thought I'd ask since I haven't seen it discussed.

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31 with Ansible

Post by jhoyt » Mon Jun 15, 2020 11:57 pm

To be honest - I don't know. I actually was originally building on Catalina but there was a very vocal crowd on the mythtv users mailing list requesting a build for High Sierra - so I installed a VM and gave it a whirl. To my surprise, once I got a High Sierra version of Xcode installed, everything just worked.

On High Sierra I was building with Xcode 10. A quick internet search (non-definitive) tells me El Capitan supports only up to Xcode 9. I am unsure what the differences between the two versions are.

I'd suggest giving it a try. The most likely two failures are that macports reports it can't install a necessary port or that mythtv won't compile. Either way we'll all get to learn something new.

crowston
Newcomer
Posts: 5
Joined: Mon Jun 15, 2020 7:12 pm
Canada

Re: Building Mythtv 31 with Ansible

Post by crowston » Tue Jun 16, 2020 12:44 pm

Following your instructions, it seems that the file hosts.macports isn't included in the git repo, so installing the prerequisites didn't work.

I did a bit of research. It seems that you can tell clang to compile for an earlier OS version by adding the command line option "-mmacosx-version-min=xxx". However, that seems to depend on whether the right SDK is available. It also seems that the latest version of Qt requires 10.13. Qt 5.9 seems to be the last version that supported 10.11. I don't know whether that would work for v31.

Rather than cross-compiling, I will try building on the target laptop, if someone can provide the hosts.macports file.

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31 with Ansible

Post by jhoyt » Tue Jun 16, 2020 1:55 pm

You're right - Bill and I made some tweaks to the compile - you now only need the following:

Code: Select all

ansible-playbook-3.8 qt5.yml --ask-become-pass
I'll fix the instructions.

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31 with Ansible

Post by jhoyt » Tue Jun 16, 2020 2:09 pm

BTW - here is a highly experimental updated version of my script (that actually runs as a script). I've been slowly updating it with the intention of posting once I finish testing it (got sidetracked with the 1/4 screen issues). I believe it is missing the commenting out of the packaging filter lines (I do this on my system with a pactch file now...).

You'll need to save the script into a file named "compileMythtvAnsible.zsh" and make it executable.

To run it, just run

Code: Select all

./compileMythtvAnsible.zsh
There are some input flags - run the following to print the flags

Code: Select all

./compileMythtvAnsible.zsh --help

Code: Select all

#!/bin/zsh

### Note - macports must be installed on your system for this script to work!!!!!
if ! [ -x "$(command -v port)" ]; then
  echo 'Error: Macports is not installed.' >&2
  exit 1
fi

show_help(){
    cat <<EOF
Usage: compileMythtvAnsible.sh [options]
Options: [defaults in brackets after descriptions]

Standard options:
  --help                                 Print this message
  --build-plugins=BUILD_PLUGINS          Build Mythtvplugins (false)
  --python-version=PYTHON_VERS           Desired Python 3 Version (38)
  --version=MYTHTV_VERS                  Requested mythtv git repo (fixes/31)
Patch Options
  --apply-patches=APPLY_PATCHES          Apply patches specified in additional arguments (false)
  --mythtv-patch-dir=MYTHTV_PATCH_DIR    Directory containing patch files to be applied to Mythtv
  --packaging-patch-dir=PACK_PATCH_DIR   Directory containing patch files to be applied to Packaging
  --plugins-patch-dir=PLUGINS_PATCH_DR   Directory containing patch files to be applied to Mythplugins
Support Ports Options
  --skip-ansible=SKIP_ANSIBLE            Skip downloading ports with ansible (false)
                                         NOTE: Only do this if you are sure you have installed ALL dependencies
  --update-ports=UPDATE_PORTS            Update macports (false)
EOF

  exit 0
}

# set flag for building plugins
BUILD_PLUGINS=false
PYTHON_VERS="38"
UPDATE_PORTS=false
MYTHTV_VERS="fixes/31"
SKIP_ANSIBLE=false
APPLY_PATCHES=false
MYTHTV_PATCH_DIR=""
PACK_PATCH_DIR=""
PLUGINS_PATCH_DIR=""

for i in "$@"
do
  case $i in
      -h|--help)
        show_help
        exit 0
      ;;
      --build-plugins=*)
        BUILD_PLUGINS="${i#*=}"
      ;;
      --python-version=*)
        PYTHON_VERS="${i#*=}"
      ;;
      --update-ports=*)
        UPDATE_PORTS="${i#*=}"
      ;;
      --skip-ansible=*)
        SKIP_ANSIBLE="${i#*=}"
      ;;
      --version=*)
        MYTHTV_VERS="${i#*=}"
      ;;
      --apply-patches=*)
        APPLY_PATCHES="${i#*=}"
      ;;
      --mythtv-patch-dir=*)
        MYTHTV_PATCH_DIR="${i#*=}"
      ;;
      --packaging-patch-dir=*)
        PACK_PATCH_DIR="${i#*=}"
      ;;
      --plugins-patch-dir=*)
        PLUGINS_PATCH_DIR="${i#*=}"
        
      ;;
      *)
        echo "Unknown option $i"
              # unknown option
        exit 1
      ;;
  esac
done

# Specify mythtv version to pull from git
VERS=${MYTHTV_VERS: -2}
REPO_DIR=~/mythtv-$VERS
INSTALL_DIR=$REPO_DIR/$VERS-osx-64bit
PYTHON_DOT_VERS="${PYTHON_VERS:0:1}.${PYTHON_VERS:1:4}"
ANSIBLE_PLAYBOOK="ansible-playbook-$PYTHON_DOT_VERS"

# setup some paths to make the following commands easier to understand
SRC_DIR=$REPO_DIR/mythtv/mythtv
APP_DIR=$SRC_DIR/programs/mythfrontend
PLUGINS_DIR=$REPO_DIR/mythtv/mythplugins
THEME_DIR=$REPO_DIR/mythtv/myththemes
PKGING_DIR=$REPO_DIR/mythtv/packaging/
OSX_PKGING_DIR=$PKGING_DIR/OSX/build/
PKG_CONFIG_SYSTEM_INCLUDE_PATH=/opt/local/include
export PATH=/opt/local/lib/mysql57/bin:$PATH
OS_VERS=$(/usr/bin/sw_vers -productVersion)

echo "------------ Setting Up Directory Structure ------------"
# setup the working directory structure
mkdir -p $REPO_DIR
cd $REPO_DIR
# create the install temporary directory
mkdir -p $INSTALL_DIR

# install and configure ansible and gsed
# ansible to install the missing required ports,
# gsed for the makebundle.sh fix later
echo "------------ Setting Up Initial Ports for Ansible ------------"
if $UPDATE_PORTS; then
  sudo port selfupdate
  sudo port upgrade
fi
$ check if ansible is installed
if ! [ -x "$(command -v $ANSIBLE_PLAYBOOK)" ]; then
  echo Installing python and ansilble
  sudo port -N install py$PYTHON_VERS-ansible
  sudo port select --set python python$PYTHON_VERS
  sudo port select --set python3 python$PYTHON_VERS
  sudo port select --set ansible py$PYTHON_VERS-ansible
else
  echo "skipping ansible install - it is already installed"
fi
# check is gsed is installed (for patching the .plist file)
if ! [ -x "$(command -v gsed)" ]; then
  sudo port -N install gsed
else
    echo "skipping gsed install - it is already installed"
fi

echo "------------ Running Ansible ------------"
if $SKIP_ANSIBLE; then
  echo "Skipping port installation via ansible"
else
  # get mythtv's ansible playbooks, and install required ports
  if [ -d "$REPO_DIR/ansible" ]; then
    echo "updating mythtv-anisble git repo"
    cd $REPO_DIR/ansible
    git stash
    git reset
    git pull
  else
    echo "cloning mythtv-anisble git repo"
    git clone https://github.com/MythTV/ansible.git
  fi
  cd $REPO_DIR/ansible
  DISPLAY_SKIPPED_HOSTS=0 
  ANSIBLE_PLAYBOOK qt5.yml --ask-become-pass
fi

echo "------------ Cloning / Updating Mythtv Git Repository ------------"
# setup mythtv source from git
cd $REPO_DIR
if [ -d "$REPO_DIR/mythtv" ]; then
  echo "updating mythtv git repo"
  cd $REPO_DIR/mythtv
  git stash
  git reset
  git pull
else
  echo "cloning mythtv git repo"
  git clone -b $MYTHTV_VERS git://github.com/MythTV/mythtv.git
fi
# apply specified patches
if [ $APPLY_PATCHES ] && [ ! -z $MYTHTV_PATCH_DIR ]; then
  cd $REPO_DIR/mythtv
  for file in $MYTHTV_PATCH_DIR
    do
    if [ -f "$file" ]; then
      echo "Applying Mythtv patch: $file"
      patch -p1 < $f
    fi
  done
fi

echo "------------ Cloning / Updating Packaging Git Repository ------------"
# get packaging
cd $REPO_DIR/mythtv
if [ -d $PKGING_DIR ]; then
  echo "updating mythtv-packaging git repo"
  cd $PKGING_DIR
  git stash
  git reset
  git pull
else
  echo "cloning mythtv-packaging git repo"
  git clone -b $MYTHTV_VERS https://github.com/MythTV/packaging.git
fi

if [ $APPLY_PATCHES ] && [ ! -z $PACK_PATCH_DIR ]; then
  cd $PKGING_DIR
  for file in $PACK_PATCH_DIR
    do
    if [ -f "$file" ]; then
      echo "Applying Packaging patch: $file"
      patch -p1 < $f
    fi
  done
fi

echo "------------ Configuring Mythtv ------------"
# configure mythfrontend
cd $SRC_DIR
GIT_VERS=$(git rev-parse --short HEAD)
./configure --prefix=$INSTALL_DIR \
			--runprefix=../Resources \
			--enable-mac-bundle \
			--qmake=/opt/local/libexec/qt5/bin/qmake \
			--cc=clang \
			--cxx=clang++ \
			--extra-cxxflags=-I/opt/local/include \
			--extra-ldflags=-L/opt/local/lib \
			--disable-backend \
			--disable-distcc \
			--disable-firewire \
			--enable-libmp3lame \
			--enable-libxvid \
			--enable-libx264 \
			--enable-libx265 \
			--enable-libvpx \
			--enable-bdjava \
	 		--python=/opt/local/bin/python3.8

echo "------------ Coompiling Mythtv ------------"
#compile mythfrontend
make
echo "------------ Installing Mythtv ------------"
# need to do a make install or macdeployqt will not copy everything in and makebundle.sh will fail.
make install

if $BUILD_PLUGINS; then
  echo "------------ Configuring Mythplugins ------------"
  # apply specified patches
  if [ $APPLY_PATCHES ] && [ ! -z $PLUGINS_PATCH_DIR ]; then
    cd $PLUGINS_DIR
    for file in $PLUGINS_PATCH_DIR
      do
      if [ -f "$file" ]; then
        echo "Applying Plugins patch: $file"
        patch -p1 < $f
      fi
    done
  fi

  # configure plugins
  cd $PLUGINS_DIR
  ./configure --prefix=$INSTALL_DIR \
  			--runprefix=../Resources \
  			--qmake=/opt/local/libexec/qt5/bin/qmake \
  			--cc=clang \
  			--cxx=clang++ \
  			--enable-mythgame \
  			--enable-mythmusic \
   			--enable-fftw \
  			--enable-cdio \
  			--enable-mythnews \
  			--enable-mythweather \
  			--disable-mytharchive \
  			--disable-mythnetvision \
  			--disable-mythzoneminder \
  			--disable-mythzmserver \
  	 		--python=/opt/local/bin/python3.8

  echo "------------ Compiling Mythplugins ------------"
  #compile mythfrontend
  /opt/local/libexec/qt5/bin/qmake  mythplugins.pro
  make
  echo "------------ Installing Mythplugins ------------"
  make install
fi

echo "------------ Deploying QT to Mythfrontend Executable ------------"
# Package up the executable
cd $APP_DIR
# run macdeployqt
/opt/local/libexec/qt5/bin/macdeployqt $APP_DIR/mythfrontend.app

echo "------------ Update Mythfrontend.app to use internal dylibs ------------"
# run makebundle to copy all of the libraries into the bundle as Frameworks
$OSX_PKGING_DIR/makebundle.sh $APP_DIR/mythfrontend.app

echo "------------ Installing libcec and libmythbase into Mythfrontend.app ------------"
# copy in libcec (missing for some reason...)
cp /opt/local/lib/libcec.4.*.dylib $APP_DIR/mythfrontend.app/Contents/Frameworks/
install_name_tool -add_rpath "@executable_path/../Frameworks/libcec.4.0.5.dylib" $APP_DIR/mythfrontend.app/Contents/MacOS/mythfrontend
cp /opt/local/lib/libcec.4.dylib $APP_DIR/mythfrontend.app/Contents/Frameworks
install_name_tool -add_rpath "@executable_path/../Frameworks/libcec.4.dylib" $APP_DIR/mythfrontend.app/Contents/MacOS/mythfrontend
cp /opt/local/lib/libcec.dylib $APP_DIR/mythfrontend.app/Contents/Frameworks
install_name_tool -add_rpath "@executable_path/../Resources/libcec.dylib" $APP_DIR/mythfrontend.app/Contents/MacOS/mythfrontend
# copy in libmythbase (missing for some reason...)
cp $INSTALL_DIR/lib/libmythbase-31.31.0.0.dylib $APP_DIR/mythfrontend.app/Contents/Frameworks
install_name_tool -add_rpath "@executable_path/../Frameworks/libmythbase-31.31.0.0.dylib" $APP_DIR/mythfrontend.app/Contents/MacOS/mythfrontend
cp $INSTALL_DIR/lib/libmythbase-31.31.0.dylib $APP_DIR/mythfrontend.app/Contents/Frameworks
install_name_tool -add_rpath "@executable_path/../Frameworks/libmythbase-31.31.0.dylib" $APP_DIR/mythfrontend.app/Contents/MacOS/mythfrontend
cp $INSTALL_DIR/lib/libmythbase-31.31.dylib $APP_DIR/mythfrontend.app/Contents/Frameworks
install_name_tool -add_rpath "@executable_path/../Frameworks/libmythbase-31.31.dylib" $APP_DIR/mythfrontend.app/Contents/MacOS/mythfrontend
cp $INSTALL_DIR/lib/libmythbase-31.dylib $APP_DIR/mythfrontend.app/Contents/Frameworks
install_name_tool -add_rpath "@executable_path/../Frameworks/libmythbase-31.dylib" $APP_DIR/mythfrontend.app/Contents/MacOS/mythfrontend

echo "------------ Installing additional mythtv utility executables intoe Mtntend.app  ------------"
# copy in mythpreviewgen and mythavtest (for good measure...)
cp -r $INSTALL_DIR/bin/mythmetadatalookup.app/Contents/MacOS/mythmetadatalookup $APP_DIR/mythfrontend.app/Contents/MacOS
cp -r $INSTALL_DIR/bin/mythreplex.app/Contents/MacOS/mythreplex $APP_DIR/mythfrontend.app/Contents/MacOS
cp -r $INSTALL_DIR/bin/mythutil.app/Contents/MacOS/mythutil $APP_DIR/mythfrontend.app/Contents/MacOS
cp -r $INSTALL_DIR/bin/mythpreviewgen.app/Contents/MacOS/mythpreviewgen $APP_DIR/mythfrontend.app/Contents/MacOS
cp -r $INSTALL_DIR/bin/mythavtest.app/Contents/MacOS/mythavtest $APP_DIR/mythfrontend.app/Contents/MacOS

echo "------------ Copying mythtv share directory into executable  ------------"
# copy in i18n, fonts, themes, plugin resources, etc from the install directory (share)
mkdir -p $APP_DIR/mythfrontend.app/Contents/Resources/share/mythtv
cp -r $INSTALL_DIR/share/mythtv/* $APP_DIR/mythfrontend.app/Contents/Resources/share/mythtv/

echo "------------ Copying in dejavu and liberation fonts into Mythfrontend.app   ------------"
# copy in missing fonts
cp /opt/local/share/fonts/dejavu-fonts/*.ttf $APP_DIR/mythfrontend.app/Contents/Resources/share/mythtv/fonts/
cp /opt/local/share/fonts/liberation-fonts/*.ttf $APP_DIR/mythfrontend.app/Contents/Resources/share/mythtv/fonts/

echo "------------ Copying in Mythfrontend.app icon  ------------"
# copy in the icon
cp mythfrontend.icns $APP_DIR/mythfrontend.app/Contents/Resources/application.icns

echo "------------ Add symbolic link structure for copied in files  ------------"
# make some symbolic links to match past working copies
cd $APP_DIR/mythfrontend.app/Contents/MacOS
if $BUILD_PLUGINS; then
  ln -s ../PlugIns/sqldrivers .
fi
cd $APP_DIR/mythfrontend.app/Contents/Resources
ln -s ../MacOS bin
if $BUILD_PLUGINS; then
  mkdir -p $APP_DIR/mythfrontend.app/Contents/Resources/lib/mythtv
  cd $APP_DIR/mythfrontend.app/Contents/Resources/lib/mythtv
  ln -s ../../../PlugIns plugins
fi

echo "------------ Updating application plist  ------------"
# Update the plist
gsed -i "8c\	<string>application.icns</string>" $APP_DIR/mythfrontend.app/Contents/Info.plist
gsed -i "10c\	<string>org.osx-bundler.mythfrontend</string>\n	<key>CFBundleInfoDictionaryVersion</key>\n	<string>6.0</string>" $APP_DIR/mythfrontend.app/Contents/Info.plist
gsed -i "14a\	<key>CFBundleShortVersionString</key>\n	<string>31</string>" $APP_DIR/mythfrontend.app/Contents/Info.plist
gsed -i "18c\	<string>osx-bundler</string>\n	<key>NSAppleScriptEnabled</key>\n	<string>NO</string>\n	<key>CFBundleGetInfoString</key>\n	<string></string>\n	<key>CFBundleVersion</key>\n	<string>1.0</string>\n	<key>NSHumanReadableCopyright</key>\n	<string>MythTV Team</string>" $APP_DIR/mythfrontend.app/Contents/Info.plist

echo "------------ Generating .dmg file  ------------"
# Package up the build
cd $APP_DIR
VOL_NAME=MythFrontend-$VERS-intel-$OS_VERS-v$VERS-$GIT_VERS
if [ -f $APP_DIR/$VOL_NAME.dmg ] ; then
    mv $APP_DIR/$VOL_NAME.dmg $APP_DIR/$VOL_NAME$(date +'%d%m%Y%H%M%S').dmg 
fi
hdiutil create $APP_DIR/$VOL_NAME.dmg -fs HFS+ -srcfolder $APP_DIR/Mythfrontend.app -volname $VOL_NAME

crowston
Newcomer
Posts: 5
Joined: Mon Jun 15, 2020 7:12 pm
Canada

Re: Building Mythtv 31 with Ansible

Post by crowston » Wed Jun 17, 2020 11:37 am

FYI, I figured out an alternative solution to my problem: a hack that let me install 10.13 on the old laptop, which lets me run your version.

acediac
Newcomer
Posts: 4
Joined: Sun May 23, 2021 8:51 pm
Australia

Re: Building Mythtv 31/32 with Ansible

Post by acediac » Sun May 23, 2021 9:06 pm

Thanks @jhoyt for your extensive work on the mythtv frontend on the latest Macs. I'm upgrading my system from El Capitan to Big Sur, and I've only used the macports prebuilt mythtv.28 (the only version available on macports) until now but I'd like to jump straight to release 31.

Are there any corresponding prebuilts or compilation scripts for mythbackend 31 on OSX? Or is it relatively easy to just compile the source package?

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31/32 with Ansible

Post by jhoyt » Sun May 23, 2021 9:31 pm

The build script actually does compile mythbackend - but I've never tested it since I have an Ubuntu based backend. I also don't bundle the application (like I do for mythfrontend). The current build script could be modified to get mythbackend wrapped.

If you grab the latest copy of the build script from the sourceforge site:
master:
https://sourceforge.net/p/mythtvformaco ... nsible.zsh
v31:
https://sourceforge.net/p/mythtvformaco ... 31/~/tree/
Then edit line 123 from:

Code: Select all

INSTALL_DIR=$REPO_DIR/$VERS-osx-64bit
to

Code: Select all

INSTALL_DIR=/opt/local/
Then run the script with

Code: Select all

./compileMythfrontendAnsible.zsh --build-plugins=true
Everything "should" compile and install into /opt/local/

Also, I know Craig (the macports maintainer for mythtv v28) was working on getting a port put together for v31, but I'm not sure how far he's gotten with his work.
Last edited by jhoyt on Fri May 28, 2021 12:37 pm, edited 4 times in total.

acediac
Newcomer
Posts: 4
Joined: Sun May 23, 2021 8:51 pm
Australia

Re: Building Mythtv 31/32 with Ansible

Post by acediac » Mon May 24, 2021 2:26 am

Thanks so much for the detailed and prompt response @jhoyt! I'll give it a go.

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31/32 with Ansible

Post by jhoyt » Mon May 24, 2021 9:38 am

One thing I forgot to mention - there's a bug in the current Xcode on Big Sur (12.5). The quick work around is to rename in VERSION file in the mythtv git repo.

If compiling for v31 run the following command after the script fails to build:

Code: Select all

mv ~/mythtv-31/mythtv/mythtv/VERSION ~/mythtv-31/mythtv/mythtv/VERSION.bak
The re-run the script. I'd probably also add the skip-=ansible flag since you don't need to go through that wait time again:

Code: Select all

./compileMythfrontendAnsible.zsh --build-plugins=true --skip-ansible=true

acediac
Newcomer
Posts: 4
Joined: Sun May 23, 2021 8:51 pm
Australia

Re: Building Mythtv 31/32 with Ansible

Post by acediac » Mon May 24, 2021 12:04 pm

jhoyt wrote:
Mon May 24, 2021 9:38 am
One thing I forgot to mention - there's a bug in the current Xcode on Big Sur (12.5). The quick work around is to rename in VERSION file in the mythtv git repo.
...
Thanks @jhoyt, actually I'm running into problems with linking to Qt at the moment. From my brief research, the older Qts will not compile with XCode 12.5 as it needs macOS 11.0 SDK, but the latest Portfile in github will compile Qt 5.15, and that version runs better on Big Sur anyway.

In fact I saw in the trac comments you did exactly that a few months ago. So I am thinking I should patch the portfile with the latest and get Qt 5.15 installed first?

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31/32 with Ansible

Post by jhoyt » Mon May 24, 2021 10:29 pm

I just pushed an update to the sourceforge repo that puts in a temp fix for the Xcode 12.5/VERSION issue.

Patching the portfile to go to qt 5.15.2 probably makes sense. There were a ton of issues/changes when Apple rolled out Big Sur. Most were on the M1 side, but there were still a few that needed some help for qt 5.15. The prebuilt-binaries in the macports server currently work for me on both intel and arm.

I haven't tried compiling qt5 since the upgrade to Xcode 12.5 - but suspect there may be some new gremlins hidden in there. As such, I'd suggest going the prebuilt route if possible

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31/32 with Ansible

Post by jhoyt » Fri May 28, 2021 12:40 pm

Just a note - I updated my post from Sun May 23, 2021 4:31 pm to fix to issues:

1) the install directory should be /opt/local
2) I added links to both master and v31 build scripts on sourceforge. The only difference to the two scripts is whatever version they point to in git.
BTW - you can manually set this with the --version flag (e.g. --version=master or --version=fixes/31)

acediac
Newcomer
Posts: 4
Joined: Sun May 23, 2021 8:51 pm
Australia

Re: Building Mythtv 31/32 with Ansible

Post by acediac » Wed Jun 09, 2021 11:08 am

Finally got around to doing this, and I was able to successfully compile mythtv v31, thanks to jhoyt's ansible script.

This was on Big Sur 11.3.1 and Xcode 12.5 on intel arch

The latest macports will install qt 5.15.2 so I didn't need to patch anything.
I tried to use py39 but there is no py39-requests-cache port
Tried to use mariadb10.5 but it requires py39
So in the end had to go with mariadb10.3 and py38

Had a problem with p5-dbd-mysql and had to rebuild perl5.28 with

Code: Select all

sudo port -ns upgrade --force perl5.28
then install it with mariadb10.3 variant

Code: Select all

sudo port install p5-dbd-mysql +mariadb10_3
Took a while but it compiled everything in the end! Haven't done a thorough test run yet though.
Have not tried compiling the master tree.

Thanks to @jhoyt for all the tips and assistance.

Andrew

jhoyt
Junior
Posts: 98
Joined: Thu Aug 27, 2015 10:11 am
United States of America

Re: Building Mythtv 31/32 with Ansible

Post by jhoyt » Wed Jun 09, 2021 11:46 pm

Glad to know you got it compiling. This bodes well for an eventual port for v31. My guess is you'll be fine building master as I just did a build last weekend with a similar setup.

BTW - the VERSION file work around is no longer necessary. The "fix" renaming the file was committed to both master and fixes/31 a few days ago.

Post Reply