Hello, I've written an updated version of the PKGBUILD for redeclipse-svn.
I've tested it only briefly on a headless system, more poking is welcome.
First time writing for AUR, input welcome.
Diff quoted, plain file attached.

I've sent it to the maintainer as well, but I thought it might fare well from more sets of eyes.

- arand


PKGBUILD | 107 ++++++++++++++++++++++++++++++++++++++-------------------------
  1 file changed, 65 insertions(+), 42 deletions(-)

--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,60 +1,83 @@
  # Contributor: J.W. Birdsong <jwbirdsongATgmailDOTcom>
+# Updated by Arand Nash <[email protected]>
+# Based on the AUR package for version 1.0 by Massimiliano Torromeo <[email protected]>
  pkgname=redeclipse-svn
-pkgver=2168
+# svn automagic seems to override the $pkgver anyways..
+pkgver=1.01SVN
  pkgrel=1
pkgdesc="A single-player and multi-player first-person ego-shooter, built as a total conversion of Cube Engine 2, "
  arch=('i686' 'x86_64')
  url="http://redeclipse.net";
  license=('custom' 'ZLIB')
  depends=('sdl_image'  'libgl' 'sdl_mixer')
-makedepends=('subversion' 'mesa')
+makedepends=('subversion'  'mesa')
  provides=(redeclipse)
  conflicts=(redeclipse)
-source=(redeclipse.desktop 'redeclipse.patch')

  _svntrunk=https://redeclipse.svn.sourceforge.net/svnroot/redeclipse
  _svnmod=redeclipse
-md5sums=('d905ff937b097fd946e9e5b3113aee3c'
-         '09d8edaab64a382d3a818c210e423894')
-
+
  build() {
-  cd "$srcdir"
+       cd "$srcdir"

-  if [ -d $_svnmod/.svn ]; then
-    (cd $_svnmod && svn up -r $pkgver)
-  else
-    svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-  fi
-
-  msg "SVN checkout done or server timeout"
-  msg "Starting make..."
-
-  rm -rf "$srcdir/$_svnmod-build"
-  cp -r "$srcdir/$_svnmod" "$srcdir/$_svnmod-build"
-  cd "$srcdir/$_svnmod-build"
-
-  #
-  # BUILD
-  #
- cd "$srcdir"/${_svnmod}-build/src
-  make
-  make DESTDIR="$srcdir/" clean install
-
-cd ..
-install -d "$pkgdir"/usr/{share/$_svnmod/,}bin/
-  sed -i "s|RE_DATA=.|RE_DATA=/usr/share/$_svnmod|" $_svnmod.sh
-  patch -p2 < ../redeclipse.patch
-  install -m755 $_svnmod.sh "$pkgdir/usr/bin/$_svnmod"
-  install -m755 bin/re{server*,client*} "$pkgdir/usr/share/$_svnmod/bin/"
-  cp -rf  data/ "$pkgdir/usr/share/$_svnmod"
-
-  #  license and icons
- install -Dm644 "$srcdir/$_svnmod.desktop" $pkgdir/usr/share/applications/$pkgname.desktop - install -Dm644 src/redeclipse.ico "$pkgdir/usr/share/pixmaps/$_svnmod.png" - install -Dm644 "$srcdir/$_svnmod-build/license.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-  rm -rf ${pkgdir}/usr/share/${_svnmod}/bin/re{server,client}_freebsd*
-  rm -rf ${pkgdir}/usr/share/${_svnmod}/bin/re{server,client}.exe
+       # update/checkout svn
+       if [ -d "$_svnmod"/.svn ]; then
+               msg "Updating existing SVN checkout"
+               (cd "$_svnmod" && svn up -r "$pkgver")
+       else
+               msg "New checkout from SVN"
+               svn co "$_svntrunk" --config-dir ./ -r "$pkgver" "$_svnmod"
+       fi
+
+       msg "SVN checkout done (or server timeout)"
+       msg "SVN export to clean build directory"
+
+       # export to get rid of .svn metadata
+       rm -rf "$srcdir/$pkgname"
+       svn export "$srcdir/$_svnmod" "$srcdir/$pkgname"
+
+       msg "Starting make..."
+
+       # build in exported directory
+       cd "$srcdir/$pkgname/src"
+       make
  }

-# vim:set ts=2 sw=2 et:
+package() {
+       cd "$srcdir/$pkgname"

+       # create directories
+       install -d "$pkgdir"/usr/{share/"$pkgname",}/bin
+       # this isn't really necessary since we use a custom script anyways
+       sed -i "s|RE_DATA=.|RE_DATA=/usr/share/$pkgname|" "redeclipse.sh"
+
+       # install binaries
+       install -m755 src/re{server,client} "$pkgdir/usr/share/$pkgname/bin/"
+       # install data
+       cp -rf  data/ "$pkgdir/usr/share/$pkgname"
+
+       # create wrapper scripts for client and server
+       cat <<EOF > "$pkgdir/usr/bin/$pkgname"
+#!/bin/sh
+RE_OPTIONS="-r"
+cd "/usr/share/$pkgname"
+exec bin/reclient ${RE_OPTIONS} ${1+"$@"}
+# ${1+"$@"} is a portability hack, keyword "wrapper script"
+EOF
+
+       cat <<EOF > "$pkgdir/usr/bin/$pkgname-server"
+#!/bin/sh
+RE_OPTIONS=""
+cd "/usr/share/$pkgname"
+exec bin/reserver ${RE_OPTIONS} ${1+"$@"}
+# ${1+"$@"} is a portability hack, keyword "wrapper script"
+EOF
+
+       chmod 755 "$pkgdir/usr/bin/$pkgname"
+       chmod 755 "$pkgdir/usr/bin/$pkgname-server"
+
+       # install desktop file, icon, license
+ install -Dm644 src/install/nix/redeclipse.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
+       install -Dm644 src/redeclipse.ico 
"$pkgdir/usr/share/pixmaps/$pkgname.png"
+       install -Dm644 license.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}

# Contributor: J.W. Birdsong <jwbirdsongATgmailDOTcom>
# Updated by Arand Nash <[email protected]>
# Based on the AUR package for version 1.0 by Massimiliano Torromeo 
<[email protected]>
pkgname=redeclipse-svn
# svn automagic seems to override the $pkgver anyways..
pkgver=1.01SVN
pkgrel=1
pkgdesc="A single-player and multi-player first-person ego-shooter, built as a 
total conversion of Cube Engine 2, "
arch=('i686' 'x86_64')
url="http://redeclipse.net";
license=('custom' 'ZLIB')
depends=('sdl_image'  'libgl' 'sdl_mixer')
makedepends=('subversion'  'mesa')
provides=(redeclipse)
conflicts=(redeclipse)

_svntrunk=https://redeclipse.svn.sourceforge.net/svnroot/redeclipse
_svnmod=redeclipse

build() {
        cd "$srcdir"

        # update/checkout svn
        if [ -d "$_svnmod"/.svn ]; then
                msg "Updating existing SVN checkout"
                (cd "$_svnmod" && svn up -r "$pkgver")
        else
                msg "New checkout from SVN"
                svn co "$_svntrunk" --config-dir ./ -r "$pkgver" "$_svnmod"
        fi

        msg "SVN checkout done (or server timeout)"
        msg "SVN export to clean build directory"

        # export to get rid of .svn metadata
        rm -rf "$srcdir/$pkgname"
        svn export "$srcdir/$_svnmod" "$srcdir/$pkgname"

        msg "Starting make..."

        # build in exported directory
        cd "$srcdir/$pkgname/src"
        make
}

package() {
        cd "$srcdir/$pkgname"

        # create directories
        install -d "$pkgdir"/usr/{share/"$pkgname",}/bin
        # this isn't really necessary since we use a custom script anyways
        sed -i "s|RE_DATA=.|RE_DATA=/usr/share/$pkgname|" "redeclipse.sh"

        # install binaries
        install -m755 src/re{server,client} "$pkgdir/usr/share/$pkgname/bin/"
        # install data
        cp -rf  data/ "$pkgdir/usr/share/$pkgname"

        # create wrapper scripts for client and server
        cat <<EOF > "$pkgdir/usr/bin/$pkgname"
#!/bin/sh
RE_OPTIONS="-r"
cd "/usr/share/$pkgname"
exec bin/reclient ${RE_OPTIONS} ${1+"$@"}
# ${1+"$@"} is a portability hack, keyword "wrapper script"
EOF

        cat <<EOF > "$pkgdir/usr/bin/$pkgname-server"
#!/bin/sh
RE_OPTIONS=""
cd "/usr/share/$pkgname"
exec bin/reserver ${RE_OPTIONS} ${1+"$@"}
# ${1+"$@"} is a portability hack, keyword "wrapper script"
EOF

        chmod 755 "$pkgdir/usr/bin/$pkgname"
        chmod 755 "$pkgdir/usr/bin/$pkgname-server"

        # install desktop file, icon, license
        install -Dm644 src/install/nix/redeclipse.desktop  
"$pkgdir/usr/share/applications/$pkgname.desktop"
        install -Dm644 src/redeclipse.ico  
"$pkgdir/usr/share/pixmaps/$pkgname.png"
        install -Dm644 license.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

Reply via email to