Skip to content

Building pvr.nextpvr-21.3.2-Omega release on Arch Linux fails with CMake < 3.5 compatibility error #298

@wmarler

Description

@wmarler

Ages ago I created an Arch Linux package of this plugin on the AUR. I didn't really think anyone was using it, I stopped keeping up with it, and it was marked outdated today. I went to fix it and found that I can't build it.

I am using the 21.3.2-Omega release b/c on Arch, Kodi is version 21 (21.2-9).

My cmake completes successfully:

/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build% cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DADDONS_TO_BUILD=pvr.nextpvr -DPACKAGE_ZIP=1 ../../xbmc-21.0-Omega/cmake/addons
-- Addon source tarball caching is enabled
-- ZIP packaging enabled (destination: /tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build/build/zips)
-- Building following addons: pvr.nextpvr
cmake -E touch: failed to update "/usr/lib/kodi/.cmake-inst-test".
cmake -E touch: failed to update "/usr/share/kodi/.cmake-inst-test".
-- check_install_permissions /usr: failed to create files
-- NEED_SUDO: TRUE (no write permission for /usr)
-- 
-- ---- Preparing general dependencies ----
-- No platform specific file /tmp/makepkg/kodi-addon-pvr-nextpvr/src/xbmc-21.0-Omega/cmake/addons/depends/linux/CMakeLists.txt found
-- Exclusion list: 
-- Exact Match list: pvr.nextpvr
-- Regex list: 
-- Exact match pvr.nextpvr, building addon
-- 
-- ---- Configuring addon /tmp/makepkg/kodi-addon-pvr-nextpvr/src/xbmc-21.0-Omega/cmake/addons/addons/pvr.nextpvr/pvr.nextpvr.txt ----
-- pvr.nextpvr: git branch/tag Omega resolved to hash: fd66eb66091059c52de0954da09040375e0b98cc
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/.github/
...
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/src/utilities/GenreMapper.h
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/src/utilities/SettingsMigration.cpp
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/src/utilities/SettingsMigration.h
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/src/utilities/XMLUtils.h
-- Processing /tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build/build/pvr.nextpvr/depends/common/tinyxml2/tinyxml2.txt
-- tinyxml2 url: https://github.com/leethomason/tinyxml2/archive/7.1.0.tar.gz
-- pvr.nextpvr DEPENDENCIES: tinyxml2
-- 
CMake Warning at CMakeLists.txt:505 (message):
  sudo rights needed to install to /usr


-- 
please type "make sudo-install"


-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build

However when I go to make I get an error that Compatibility with CMake < 3.5 has been removed from CMake.:

/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build% make
[  5%] Creating directories for 'tinyxml2'
[ 11%] Performing download step (download, verify and extract) for 'tinyxml2'
-- Downloading...
   dst='/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build/build/download/7.1.0.tar.gz'
   timeout='none'
   inactivity timeout='none'
-- Using src='https://github.com/leethomason/tinyxml2/archive/7.1.0.tar.gz'
-- verifying file...
       file='/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build/build/download/7.1.0.tar.gz'
-- Downloading... done
-- extracting...
     src='/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build/build/download/7.1.0.tar.gz'
     dst='/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build/build/tinyxml2/src/tinyxml2'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 17%] No update step for 'tinyxml2'
[ 23%] Performing patch step for 'tinyxml2'
[ 29%] Performing configure step for 'tinyxml2'
CMake Warning:
  Ignoring extra path from command line:

   "/usr"


CMake Warning:
  Ignoring extra path from command line:

   "/usr"


CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 has been removed from CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.


-- Configuring incomplete, errors occurred!
make[2]: *** [CMakeFiles/tinyxml2.dir/build.make:92: build/tinyxml2/src/tinyxml2-stamp/tinyxml2-configure] Error 1
make[1]: *** [CMakeFiles/Makefile2:181: CMakeFiles/tinyxml2.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

I think this is because the Omega branch is still using tinyxml7.1, which has a very old cmake_minimum_required(VERSION 2.6 FATAL_ERROR) in its CMakeLists.txt .

/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega% grep cmake_minimum_required ./build/build/tinyxml2/src/tinyxml2/CMakeLists.txt                      
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

In the Piers branch you've updated to using tinyxml2-9.0.0 -- can the Omega branch be similarly updated?

I tried to test this to see if it would work, but I'm missing something with cmake -- Even though I modify the files in depends/common/tinyxml2 to use the 9.0.0 archive, when I run cmake it looks for git and uses the latest Omega branch, ignoring my local changes:

/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build% ls ../depends/common/tinyxml2 
flags.txt  tinyxml2.sha256  tinyxml2.txt

/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build% md5sum ../depends/common/tinyxml2/*
f42952a707f1fe5eeddead956f0f1497  ../depends/common/tinyxml2/flags.txt
2a2279adec71b1659a9b47f773a5f37a  ../depends/common/tinyxml2/tinyxml2.sha256
1ddccc1cb11872a7570678ee09111680  ../depends/common/tinyxml2/tinyxml2.txt

/tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build% cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DADDONS_TO_BUILD=pvr.nextpvr -DPACKAGE_ZIP=1 ../../xbmc-21.0-Omega/cmake/addons
-- The C compiler identification is GNU 14.2.1
-- The CXX compiler identification is GNU 14.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
...
-- Exact match pvr.nextpvr, building addon
-- 
-- ---- Configuring addon /tmp/makepkg/kodi-addon-pvr-nextpvr/src/xbmc-21.0-Omega/cmake/addons/addons/pvr.nextpvr/pvr.nextpvr.txt ----
-- Found Git: /usr/bin/git (found version "2.49.0")
-- pvr.nextpvr: git branch/tag Omega resolved to hash: fd66eb66091059c52de0954da09040375e0b98cc
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/.github/

...
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/src/utilities/SettingsMigration.h
x pvr.nextpvr-fd66eb66091059c52de0954da09040375e0b98cc/src/utilities/XMLUtils.h
-- Processing /tmp/makepkg/kodi-addon-pvr-nextpvr/src/pvr.nextpvr-21.3.2-Omega/build/build/pvr.nextpvr/depends/common/tinyxml2/tinyxml2.txt
-- tinyxml2 url: https://github.com/leethomason/tinyxml2/archive/7.1.0.tar.gz
-- pvr.nextpvr DEPENDENCIES: tinyxml2
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions