RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Pi5 germb compile failed due to python2-dev missing

    Scheduled Pinned Locked Moved Help and Support
    gemrbpython2-devfailedv0.9.4scriptmodule
    3 Posts 2 Posters 171 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 2Play2
      2Play
      last edited by 2Play

      Pi5, arm64
      since python2-dev not being present on newer systems scriptmodule fails

      Original/current scriptmodule is as per below and based on older version v0.8.6

      #!/usr/bin/env bash
      
      # This file is part of The RetroPie Project
      #
      # The RetroPie Project is the legal property of its developers, whose names are
      # too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
      #
      # See the LICENSE.md file at the top-level directory of this distribution and
      # at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
      #
      
      rp_module_id="gemrb"
      rp_module_desc="gemrb - open-source implementation of Infinity Engine"
      rp_module_licence="GPL2 https://raw.githubusercontent.com/gemrb/gemrb/master/COPYING"
      rp_module_repo="git https://github.com/gemrb/gemrb.git v0.8.6"
      rp_module_section="exp"
      rp_module_flags="!mali dispmanx"
      
      function depends_gemrb() {
          getDepends python2-dev libopenal-dev cmake libpng-dev libfreetype6-dev libsdl2-dev libvorbis-dev libvlc-dev libvlccore-dev
      }
      
      function sources_gemrb() {
          gitPullOrClone
      }
      
      function build_gemrb() {
          mkdir -p build
          cd build
          make clean
          cmake .. -DCMAKE_INSTALL_PREFIX="$md_inst" -DCMAKE_BUILD_TYPE=Release -DFREETYPE_INCLUDE_DIRS=/usr/include/freetype2/ -DSDL_BACKEND=SDL2 -DUSE_SDLMIXER=OFF
          make
          md_ret_require="$md_build/build/gemrb/gemrb"
      }
      
      function install_gemrb() {
          cd build
          make install
      }
      
      function configure_gemrb() {
          mkRomDir "ports/baldurs1"
          mkRomDir "ports/baldurs2"
          mkRomDir "ports/icewind1"
          mkRomDir "ports/icewind2"
          mkRomDir "ports/planescape"
          mkRomDir "ports/cache"
      
          addPort "$md_id" "baldursgate1" "Baldurs Gate 1" "$md_inst/bin/gemrb -C $md_conf_root/baldursgate1/GemRB.cfg"
          addPort "$md_id" "baldursgate2" "Baldurs Gate 2" "$md_inst/bin/gemrb -C $md_conf_root/baldursgate2/GemRB.cfg"
          addPort "$md_id" "icewind1" "Icewind Dale 1" "$md_inst/bin/gemrb -C $md_conf_root/icewind1/GemRB.cfg"
          addPort "$md_id" "icewind2" "Icewind Dale 2" "$md_inst/bin/gemrb -C $md_conf_root/icewind2/GemRB.cfg"
          addPort "$md_id" "planescape" "Planescape Torment" "$md_inst/bin/gemrb -C $md_conf_root/planescape/GemRB.cfg"
      
          #create Baldurs Gate 1 configuration
          cat > "$md_conf_root/baldursgate1/GemRB.cfg" << _EOF_
      GameType=bg1
      GameName=Baldurs Gate 1
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/baldurs1/
      CD1=$romdir/ports/baldurs1/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Baldurs Gate 2 configuration
          cat > "$md_conf_root/baldursgate2/GemRB.cfg" << _EOF_
      GameType=bg2
      GameName=Baldurs Gate 2
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/baldurs2/
      CD1=$romdir/ports/baldurs2/data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Icewind 1 configuration
          cat > "$md_conf_root/icewind1/GemRB.cfg" << _EOF_
      GameType=auto
      GameName=Icewind Dale 1
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/icewind1/
      CD1=$romdir/ports/icewind1/Data/
      CD2=$romdir/ports/icewind1/CD2/Data/
      CD3=$romdir/ports/icewind1/CD3/Data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Icewind2 configuration
          cat > "$md_conf_root/icewind2/GemRB.cfg" << _EOF_
      GameType=iwd2
      GameName=Icewind Dale 2
      Width=800
      Height=600
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/icewind2/
      CD1=$romdir/ports/icewind2/data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Planescape configuration
          cat > "$md_conf_root/planescape/GemRB.cfg" << _EOF_
      GameType=pst
      GameName=Planescape Torment
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/planescape/
      CD1=$romdir/ports/planescape/data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          chown "$__user":"$__group" "$md_conf_root/baldursgate1/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/baldursgate2/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/icewind1/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/icewind2/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/planescape/GemRB.cfg"
      }
      
      

      SUGGESTION-FIX
      I have modified and tested below since version v0.9.4 is latest on github and as per dev supports python3.3 and above
      Also on my OS Armbian UBUNTU 24.04 i have installed libstdc++-14-dev instead libstdc++-12-dev
      a928033d-9b2b-445f-9fd3-a79ce505505c-image.png
      If of interested please replace/update current scriptmodule to

      #!/usr/bin/env bash
      
      # This file is part of The RetroPie Project
      #
      # The RetroPie Project is the legal property of its developers, whose names are
      # too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
      #
      # See the LICENSE.md file at the top-level directory of this distribution and
      # at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
      #
      
      rp_module_id="gemrb"
      rp_module_desc="gemrb - open-source implementation of Infinity Engine"
      rp_module_licence="GPL2 https://raw.githubusercontent.com/gemrb/gemrb/master/COPYING"
      rp_module_repo="git https://github.com/gemrb/gemrb.git v0.9.4"
      rp_module_section="exp"
      rp_module_flags="!mali dispmanx"
      
      function depends_gemrb() {
          getDepends python3-dev libopenal-dev cmake libpng-dev libfreetype6-dev libsdl2-dev libvorbis-dev libvlc-dev libvlccore-dev clang libstdc++-12-dev
      }
      
      function sources_gemrb() {
          gitPullOrClone
      }
      
      function build_gemrb() {
          mkdir -p build
          cd build
          make clean
          cmake .. -DCMAKE_INSTALL_PREFIX="$md_inst" -DCMAKE_BUILD_TYPE=Release -DFREETYPE_INCLUDE_DIRS=/usr/include/freetype2/ -DSDL_BACKEND=SDL2 -DUSE_SDLMIXER=OFF -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
          make
          md_ret_require="$md_build/build/gemrb/gemrb"
      }
      
      function install_gemrb() {
          cd build
          make install
      }
      
      function configure_gemrb() {
          mkRomDir "ports/baldurs1"
          mkRomDir "ports/baldurs2"
          mkRomDir "ports/icewind1"
          mkRomDir "ports/icewind2"
          mkRomDir "ports/planescape"
          mkRomDir "ports/cache"
      
          addPort "$md_id" "baldursgate1" "Baldurs Gate 1" "$md_inst/bin/gemrb -C $md_conf_root/baldursgate1/GemRB.cfg"
          addPort "$md_id" "baldursgate2" "Baldurs Gate 2" "$md_inst/bin/gemrb -C $md_conf_root/baldursgate2/GemRB.cfg"
          addPort "$md_id" "icewind1" "Icewind Dale 1" "$md_inst/bin/gemrb -C $md_conf_root/icewind1/GemRB.cfg"
          addPort "$md_id" "icewind2" "Icewind Dale 2" "$md_inst/bin/gemrb -C $md_conf_root/icewind2/GemRB.cfg"
          addPort "$md_id" "planescape" "Planescape Torment" "$md_inst/bin/gemrb -C $md_conf_root/planescape/GemRB.cfg"
      
          #create Baldurs Gate 1 configuration
          cat > "$md_conf_root/baldursgate1/GemRB.cfg" << _EOF_
      GameType=bg1
      GameName=Baldurs Gate 1
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/baldurs1/
      CD1=$romdir/ports/baldurs1/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Baldurs Gate 2 configuration
          cat > "$md_conf_root/baldursgate2/GemRB.cfg" << _EOF_
      GameType=bg2
      GameName=Baldurs Gate 2
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/baldurs2/
      CD1=$romdir/ports/baldurs2/data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Icewind 1 configuration
          cat > "$md_conf_root/icewind1/GemRB.cfg" << _EOF_
      GameType=auto
      GameName=Icewind Dale 1
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/icewind1/
      CD1=$romdir/ports/icewind1/Data/
      CD2=$romdir/ports/icewind1/CD2/Data/
      CD3=$romdir/ports/icewind1/CD3/Data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Icewind2 configuration
          cat > "$md_conf_root/icewind2/GemRB.cfg" << _EOF_
      GameType=iwd2
      GameName=Icewind Dale 2
      Width=800
      Height=600
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/icewind2/
      CD1=$romdir/ports/icewind2/data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          #create Planescape configuration
          cat > "$md_conf_root/planescape/GemRB.cfg" << _EOF_
      GameType=pst
      GameName=Planescape Torment
      Width=640
      Height=480
      Bpp=32
      Fullscreen=0
      TooltipDelay=500
      AudioDriver = openal
      GUIEnhancements = 15
      DrawFPS=0
      CaseSensitive=1
      GamePath=$romdir/ports/planescape/
      CD1=$romdir/ports/planescape/data/
      CachePath=$romdir/ports/cache/
      _EOF_
      
          chown "$__user":"$__group" "$md_conf_root/baldursgate1/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/baldursgate2/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/icewind1/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/icewind2/GemRB.cfg"
          chown "$__user":"$__group" "$md_conf_root/planescape/GemRB.cfg"
      }
      
      

      Your friend,
      2Play!

      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by

        Thanks for reporting, we'll see how to get this fixed. FWIW, it doesn't seem like libstdc++-12-dev needs to be installed, just a recent C++-14 supported libc/gcc.

        2Play2 1 Reply Last reply Reply Quote 0
        • 2Play2
          2Play @mitu
          last edited by

          Dear@mitu
          I needed it cause of the clang compiler use.
          Without it failed on first trial.
          Also didn't compile without the clang compiler that's why Ive used/added it.

          Just some extra info. I have the log(s) that failed if of interest.

          Have a nice weekend

          Your friend,
          2Play!

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

          Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.