Package Details: iortcw-git 1.51c.r129.g438e7d41-2

Git Clone URL: https://aur.archlinux.org/iortcw-git.git (read-only, click to copy)
Package Base: iortcw-git
Description: Merge of ioquake3 features and fixes into Return to Castle Wolfenstein
Upstream URL: https://github.com/iortcw/iortcw
Keywords: Castle games Return RTCW To Wolfenstein
Licenses: GPL3
Conflicts: iortcw
Provides: iortcw
Submitter: robertfoster
Maintainer: robertfoster
Last Packager: robertfoster
Votes: 14
Popularity: 0.000785
First Submitted: 2015-03-25 11:13 (UTC)
Last Updated: 2025-04-24 14:11 (UTC)

Latest Comments

1 2 Next › Last »

Jonno2002 commented on 2025-09-03 11:51 (UTC)

thanks for the info Caiosama205, it was a little messed up and didnt work but i formatted it and it works perfectly, put this between pkgver() and build():


prepare() { 
  cd "${srcdir}/iortcw"

  # (A) lcc patch: avoid collision with keyword C23 'constexpr'
  for d in SP MP
  do 
    if [[ -d "$d/code/tools/lcc/src" ]]; then
      sed -i 's/\<constexpr>[[:space:]](/constexpr_lcc(/g' "$d/code/tools/lcc/src/c.h" grep -RIl --include='.c' '\<constexpr>[[:space:]](' "$d/code/tools/lcc/src" \ | xargs -r sed -i 's/\<constexpr>[[:space:]](/constexpr_lcc(/g'
    fi
  done

  # (B) ARCH_STRING Fallback in case the Makefile does not propagate it to tools
  for d in SP MP
  do
    f="$d/code/qcommon/q_platform.h"
    if [[ -f "$f" ]]; then 
      tmp="${f}.new" awk 'NR==1{ print "#ifndef ARCH_STRING"; print "# if defined(x86_64) || defined(_M_X64)"; print "# define ARCH_STRING \"x86_64\""; print "# elif defined(i386) || defined(_M_IX86)"; print "# define ARCH_STRING \"x86\""; print "# elif defined(aarch64)"; print "# define ARCH_STRING \"aarch64\""; print "# elif defined(arm)"; print "# define ARCH_STRING \"arm\""; print "# elif defined(ppc64le)"; print "# define ARCH_STRING \"ppc64le\""; print "# elif defined(ppc64)"; print "# define ARCH_STRING \"ppc64\""; print "# elif defined(powerpc)"; print "# define ARCH_STRING \"ppc\""; print "# endif"; print "#endif"; }1' "$f" > "$tmp" && mv "$tmp" "$f"
    fi
  done

  # (C) Force C17 and add lcc ABSOLUTE includes to the tools from the Makefiles
  absroot="$(realpath "${srcdir}/iortcw")" absincs="-I${absroot}/code/tools/lcc/src -I${absroot}/code/tools/lcc/lburg"

  for d in SP MP
  do
    mf="$d/Makefile"
    [[ -f "$mf" ]] || continue

    # avoid duplicates if you've already run prepare() before
    grep -q '^TOOLS_CFLAGS \+= -std=gnu17' "$mf" || echo 'TOOLS_CFLAGS += -std=gnu17' >> "$mf"

    # includes ABSOLUTE for that dagcheck.c find C.h always
    grep -q -- "TOOLS_CFLAGS \+= ${absincs//\//\\/}" "$mf" || echo "TOOLS_CFLAGS += ${absincs}" >> "$mf"
    grep -q -- "CPPFLAGS \+= ${absincs//\//\\/}" "$mf"     || echo "CPPFLAGS += ${absincs}"     >> "$mf"

  done
}

Caiosama205 commented on 2025-08-21 03:33 (UTC) (edited on 2025-08-21 04:06 (UTC) by Caiosama205)

If it throws the gcc error, you can do this in the meantime by modifying the pkgbuild

Copy/paste this below "pkgver {}":


prepare() { cd "${srcdir}/iortcw"

# (A) Parche lcc: evita choque con keyword C23 'constexpr' for d in SP MP; do if [[ -d "$d/code/tools/lcc/src" ]]; then sed -i 's/\<constexpr>[[:space:]](/constexpr_lcc(/g' "$d/code/tools/lcc/src/c.h" grep -RIl --include='.c' '\<constexpr>[[:space:]](' "$d/code/tools/lcc/src" \ | xargs -r sed -i 's/\<constexpr>[[:space:]](/constexpr_lcc(/g' fi done

# (B) Fallback ARCH_STRING por si el Makefile no lo propaga a tools for d in SP MP; do f="$d/code/qcommon/q_platform.h" if [[ -f "$f" ]]; then tmp="${f}.new" awk 'NR==1{ print "#ifndef ARCH_STRING"; print "# if defined(x86_64) || defined(_M_X64)"; print "# define ARCH_STRING \"x86_64\""; print "# elif defined(i386) || defined(_M_IX86)"; print "# define ARCH_STRING \"x86\""; print "# elif defined(aarch64)"; print "# define ARCH_STRING \"aarch64\""; print "# elif defined(arm)"; print "# define ARCH_STRING \"arm\""; print "# elif defined(ppc64le)"; print "# define ARCH_STRING \"ppc64le\""; print "# elif defined(ppc64)"; print "# define ARCH_STRING \"ppc64\""; print "# elif defined(powerpc)"; print "# define ARCH_STRING \"ppc\""; print "# endif"; print "#endif"; }1' "$f" > "$tmp" && mv "$tmp" "$f" fi done

# (C) Forzar C17 y añadir includes ABSOLUTOS de lcc a las tools desde los Makefiles absroot="$(realpath "${srcdir}/iortcw")" absincs="-I${absroot}/code/tools/lcc/src -I${absroot}/code/tools/lcc/lburg"

for d in SP MP; do mf="$d/Makefile" [[ -f "$mf" ]] || continue

# evitar duplicados si ya corriste prepare() antes
grep -q '^TOOLS_CFLAGS \+= -std=gnu17' "$mf" || echo 'TOOLS_CFLAGS += -std=gnu17' >> "$mf"

# incluye ABSOLUTO para que dagcheck.c encuentre c.h siempre
grep -q -- "TOOLS_CFLAGS \+= ${absincs//\//\\/}" "$mf" || echo "TOOLS_CFLAGS += ${absincs}" >> "$mf"
grep -q -- "CPPFLAGS \+= ${absincs//\//\\/}" "$mf"     || echo "CPPFLAGS += ${absincs}"     >> "$mf"

done }

build() { case "${CARCH}" in powerpc) EXTRAOPTS='COMPILE_ARCH=ppc' ;; *) EXTRAOPTS='' ;; esac

cd "${srcdir}/iortcw"

# Build Single Player cd SP make USE_INTERNAL_LIBS=0 BUILD_GAME_QVM=0 $EXTRAOPTS

# Build Multi Player cd ../MP make USE_INTERNAL_LIBS=0 BUILD_GAME_QVM=0 $EXTRAOPTS }

z0mb1e_kgd commented on 2025-05-15 05:44 (UTC)

Won't compile on the current GCC 15.1.1:

LD build/release-linux-x86_64/main/ui.mp.x86_64.so TOOLS_CC code/tools/lcc/etc/lcc.c TOOLS_CC code/tools/lcc/etc/bytecode.c TOOLS_CC code/tools/lcc/src/alloc.c In file included from code/tools/lcc/src/alloc.c:1: code/tools/lcc/src/c.h:648:1: error: 'constexpr' used with 'extern' 648 | extern Tree constexpr(int); | ^~ code/tools/lcc/src/c.h:648:23: error: expected identifier or '(' before 'int' 648 | extern Tree constexpr(int); | ^~~ make[2]: *** [Makefile:1681: build/release-linux-x86_64/tools/rcc/alloc.o] Error 1

This is probably connected to this lcc issue: https://github.com/drh/lcc/issues/56

bobpaul commented on 2025-02-24 22:09 (UTC) (edited on 2025-03-05 19:55 (UTC) by bobpaul)

I was able to play this on ppc64le, ppc64, and ppc.

Anyway, if you'd be willing to add this patch to your PKGBUILD I'd appreciate it

diff --git a/PKGBUILD b/PKGBUILD
index aa8965c..0483f97 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,10 +6,10 @@ pkgname=iortcw-git
 pkgver=1.51c.r129.g438e7d41
 pkgrel=1
 pkgdesc="Merge of ioquake3 features and fixes into Return to Castle Wolfenstein"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'powerpc64le' 'powerpc64' 'powerpc')
 url="https://github.com/iortcw/iortcw"
 license=('GPL3')
-depends=('freetype2' 'graphite' 'harfbuzz' 'iortcw-data' 'libjpeg-turbo' 'libogg' 'openal' 'opus' 'opusfile' 'pcre' 'sdl2-compat' 'zlib')
+depends=('freetype2' 'graphite' 'harfbuzz' 'iortcw-data' 'libjpeg-turbo' 'libogg' 'openal' 'opus' 'opusfile' 'pcre' 'sdl2' 'zlib')
 conflicts=("${pkgname%-git}")
 provides=("${pkgname%-git}")
 makedepends=('git')
@@ -26,27 +26,34 @@ pkgver() {
   git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
 }

+
+case "${CARCH}" in
+  powerpc) EXTRAOPTS='COMPILE_ARCH=ppc' ;;
+  *) EXTRAOPTS='' ;;
+esac
+
+
 build() {
   cd "${srcdir}/iortcw"

   # Build Single Player
   cd SP
-  make USE_INTERNAL_LIBS=0
+  make USE_INTERNAL_LIBS=0 $EXTRAOPTS

   # Build Multi Player
   cd ../MP
-  make USE_INTERNAL_LIBS=0
+  make USE_INTERNAL_LIBS=0 $EXTRAOPTS
 }

 package() {
   cd "${srcdir}/iortcw"

   cd SP
-  make USE_INTERNAL_LIBS=0 \
+  make USE_INTERNAL_LIBS=0 $EXTRAOPTS \
     COPYDIR="${pkgdir}/opt/iortcw" copyfiles

   cd ../MP
-  make USE_INTERNAL_LIBS=0 \
+  make USE_INTERNAL_LIBS=0 $EXTRAOPTS \
     COPYDIR="${pkgdir}/opt/iortcw" copyfiles

   ln -s /opt/iortcw-data/pak0.pk3 \
@@ -93,14 +100,13 @@ package() {
     "${pkgdir}/opt/iortcw/openurl.sh"

   # Modify Launcher Scripts
-  if [ "$CARCH" = "x86_64" ]; then
-
-    # x86_64 Systems
-    TARGET=x86_64
-  else
-    # i686 Systems
-    TARGET=x86
-  fi
+  case "${CARCH}" in
+   "x86_64") TARGET=x86_64 ;;
+   "i686") TARGET=x86 ;;
+   "powerpc") TARGET=ppc ;;
+   "powerpc64") TARGET=ppc64 ;;
+   "powerpc64le") TARGET=ppc64le ;;
+  esac

   sed -i "s:ARCH:$TARGET:" \
     "${srcdir}"/iortcw-sp.*

bobpaul commented on 2025-02-23 15:19 (UTC)

sdl2-compat provides sdl2. This should depend on sdl2 not on sdl2-compat.

r4v3n6101 commented on 2020-08-03 12:24 (UTC)

cmake isn't required while building, remove it plz

alexbrinister commented on 2019-10-27 20:14 (UTC)

libjpeg-turbo should be part of makedepends. When built in a chroot, the package fails to build with an error about missing jpeglib.h.

browniesrgut commented on 2019-10-14 20:12 (UTC)

Hello,

The package failed at the symbolic links parts

ln: cannot create symbolic link '.../iortcw-git/pkg/iortcw-git/opt/realrtcw/main'...

I had to add "mkdir -p $pkgdir/opt/realrtcw/main" before "ln" commands in PKGBUILD. Package builds fine after that.

Neros commented on 2017-08-25 10:53 (UTC)

I can't compile anymore: ``` In file included from code/client/cl_main.c:35:0: code/client/../sys/sys_loadlib.h:42:12: fatal error: SDL.h: No such file or directory # include <SDL.h> ^~~~~~~ compilation terminated. make[2]: *** [Makefile:2502: build/release-linux-x86_64/client/cl_main.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/tmp/yaourt-tmp-neros/aur-iortcw-git/src/iortcw/SP' make[1]: *** [Makefile:1342: targets] Error 2 make[1]: Leaving directory '/tmp/yaourt-tmp-neros/aur-iortcw-git/src/iortcw/SP' make: *** [Makefile:1260: release] Error 2 ==> ERROR: A failure occurred in package(). Aborting... ==> ERROR: Makepkg was unable to build . ```

robertfoster commented on 2015-11-10 16:53 (UTC)

moved to iortcw-git.