[extremetuxracer] version 0.6.0

Nils Philippsen nphilipp at fedoraproject.org
Wed Dec 11 15:42:27 UTC 2013


commit d9d9f7f58dc0d68b129370f70b0f15bd53f4ab14
Author: Nils Philippsen <nils at redhat.com>
Date:   Wed Dec 11 16:41:38 2013 +0100

    version 0.6.0
    
    - use patched tarball cleaned from dubiously licensed font
    - drop obsolete patches, build requirements and age-old compat cruft
    - use %global instead of %define

 .gitignore                                      |    2 +
 etr-0.6.0-clean-tarball.patch                   |   23 ++++
 etr-clean-tarball.sh                            |   86 ++++++++++++++
 etracer.desktop                                 |   11 --
 extremetuxracer-0.4-libpng.patch                |   72 ------------
 extremetuxracer-0.4-memset.patch                |   26 ----
 extremetuxracer-0.4-random-keypress-crash.patch |   26 ----
 extremetuxracer.spec                            |  142 ++++++++++-------------
 sources                                         |    4 +-
 9 files changed, 174 insertions(+), 218 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 7017c64..638548f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 extremetuxracer-0.4.tar.gz
 /extremetuxracer-0.4-7-autoreconf.patch.bz2
+/etr-0.6.0.p.tar.xz
+/etr-0.6.0-1-autofoo.patch.xz
diff --git a/etr-0.6.0-clean-tarball.patch b/etr-0.6.0-clean-tarball.patch
new file mode 100644
index 0000000..07c77c4
--- /dev/null
+++ b/etr-0.6.0-clean-tarball.patch
@@ -0,0 +1,23 @@
+diff -up etr-0.6.0.p/data/fonts/Makefile.am.clean-tarball etr-0.6.0.p/data/fonts/Makefile.am
+--- etr-0.6.0.p/data/fonts/Makefile.am.clean-tarball	2013-06-24 00:29:58.000000000 +0200
++++ etr-0.6.0.p/data/fonts/Makefile.am	2013-12-11 14:25:33.069754443 +0100
+@@ -6,7 +6,6 @@ pkgdata_DATA = \
+ 	std.ttf	\
+ 	stditalic.ttf	\
+ 	stdbold.ttf	\
+-	outline.ttf	\
+ 	pc_20.ttf	\
+ 	pc_outline.ttf
+ 
+diff -up etr-0.6.0.p/data/fonts/fonts.lst.clean-tarball etr-0.6.0.p/data/fonts/fonts.lst
+--- etr-0.6.0.p/data/fonts/fonts.lst.clean-tarball	2013-08-12 14:33:06.000000000 +0200
++++ etr-0.6.0.p/data/fonts/fonts.lst	2013-12-11 14:26:17.514898357 +0100
+@@ -3,6 +3,5 @@
+ *[name] normal [file] std.ttf
+ *[name] italic [file] stditalic.ttf
+ *[name] bold [file] stdbold.ttf
+-*[name] outline [file] outline.ttf
+ *[name] pc20 [file] pc_20.ttf
+-*[name] pcoutline [file] pc_outline.ttf
+\ No newline at end of file
++*[name] pcoutline [file] pc_outline.ttf
diff --git a/etr-clean-tarball.sh b/etr-clean-tarball.sh
new file mode 100755
index 0000000..8f0b534
--- /dev/null
+++ b/etr-clean-tarball.sh
@@ -0,0 +1,86 @@
+#!/bin/bash
+
+name=etr
+delfiles="data/fonts/outline.ttf"
+
+set -e
+
+usage() {
+    cat << EOF >&2
+Usage: $0 $name-<VERSION>.tar.xz $name-<VERSION>.p.tar.xz
+EOF
+    exit 1;
+}
+
+if [ $# -ne 2 ]; then
+    usage
+fi
+
+src="$1"
+dst="$2"
+
+dstregex="^$name-\([0-9]\+\(\.[0-9]\+\)*\.p\)\.tar\.\(gz\|bzip2\|xz\)\$"
+srcregex="$(echo "$dstregex" | sed 's|\\\.p||g')"
+
+fail=0
+if [ -n "$(echo "$src" | sed "s/$srcregex//g")" ]; then
+    echo "Invalid source tarball filename" >&2
+    fail=1
+fi
+if [ -n "$(echo "$dst" | sed "s/$dstregex//g")" ]; then
+    echo "Invalid destination tarball filename" >&2
+    fail=1
+fi
+if [ $fail -ne 0 ]; then
+    usage
+fi
+
+eval `echo "$src" | sed "s/$srcregex/srcver='\1'\;srcext='\3'/g"`
+eval `echo "$dst" | sed "s/$dstregex/dstver='\1'\;dstext='\3'/g"`
+
+case "$srcext" in
+    gz)
+        unpack=zcat
+        ;;
+    bz2)
+        unpack=bzcat
+        ;;
+    xz)
+        unpack=xzcat
+        ;;
+    *)
+        echo "Invalid source extension: $srcext" >&2
+        fail=1
+        ;;
+esac
+
+case "$dstext" in 
+    gz)
+        pack=gzip
+        ;;
+    bz2)
+        pack=bzip2
+        ;;
+    xz)
+        pack=xz
+        ;;
+    *)
+        echo "Invalid destination extension: $dstext" >&2
+        fail=1
+esac
+
+if [ $fail -ne 0 ]; then
+    usage
+fi
+
+tmpdir="$(mktemp -d)"
+trap "rm -rf '$tmpdir'" EXIT
+
+cwd="$PWD"
+"$unpack" "$src" | (cd "$tmpdir" && tar xf -)
+for f in $delfiles; do
+    rm -f "${tmpdir}/${name}-${srcver}/$f"
+done
+mv "${tmpdir}/${name}-${srcver}" "${tmpdir}/${name}-${dstver}"
+(cd "$tmpdir" && tar cvf - "${name}-${dstver}") | \
+    "$pack" > "${name}-${dstver}.tar.${dstext}"
diff --git a/extremetuxracer.spec b/extremetuxracer.spec
index 883a709..bb43717 100644
--- a/extremetuxracer.spec
+++ b/extremetuxracer.spec
@@ -1,73 +1,48 @@
-%define desktop_file_utils_version 0.2.90
+%global desktop_file_utils_version 0.2.90
 
-# Use --without modular_x to rebuild without modular X deps
-%define _modular_x 0%{!?_without_modular_x:1}
+%global patched_tarball 1
 
-%if %{?fedora}%{!?fedora:7} >= 7
-%define _opengl_wrapper 1
+%if %patched_tarball
+%global patch_ext .p
 %else
-%define _opengl_wrapper 0
+%global patch_ext %{nil}
 %endif
 
-Summary: 3D racing game featuring Tux
+Summary: High speed arctic racing game
 Name: extremetuxracer
-Version: 0.4
-Release: 13%{?dist}
+Version: 0.6.0
+Release: 1%{?dist}
 License: GPLv2+
 Group: Amusements/Games
-URL: http://extremetuxracer.com
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-Source0: http://downloads.sourceforge.net/extremetuxracer/extremetuxracer-%{version}.tar.gz
-Source1: etracer.desktop
-
-# ET 0.4 isn't really maintained upstream anymore, therefore patches aren't
-# submitted upstream as the code base has diverged too much
-
-# https://bugzilla.redhat.com/show_bug.cgi?id=652913
-# Fix crash in race selection screen when random keys are pressed
-Patch0: extremetuxracer-0.4-random-keypress-crash.patch
-
-# Build with newer libpng versions, modifies configure.ac
-Patch1: extremetuxracer-0.4-libpng.patch
-
-# Call memset() with correctly ordered parameters
-Patch2: extremetuxracer-0.4-memset.patch
-
-# Changes from rebuilding files with autoreconf
-Patch10: extremetuxracer-0.4-7-autoreconf.patch.bz2
-
-Obsoletes: tuxracer <= 0.61
-Obsoletes: ppracer <= 0.3.1
-
-%if %_modular_x
-BuildRequires: libICE-devel
-BuildRequires: libSM-devel
-BuildRequires: libX11-devel
-BuildRequires: libXi-devel
-BuildRequires: libXext-devel
-BuildRequires: libXmu-devel
-BuildRequires: libXt-devel
-%else
-BuildRequires: xorg-x11-devel
-%endif
+URL: http://extremetuxracer.sourceforge.net
+# This is really
+# http://downloads.sourceforge.net/extremetuxracer/etr-%{version}.tar.xz, but
+# with a badly licensed font file removed. Use etr-clean-tarball.sh to
+# regenerate from the upstream tarball.
+Source0: etr-%{version}%{patch_ext}.tar.xz
+Source1: etr.desktop
+Source2: etr-clean-tarball.sh
+# Don't reference removed files
+Patch0: etr-0.6.0-clean-tarball.patch
+# Recreated files after the above patch
+Patch10: etr-0.6.0-1-autofoo.patch.xz
+
 BuildRequires: libGL-devel
 BuildRequires: libGLU-devel
 BuildRequires: SDL-devel >= 1.2
+BuildRequires: SDL_image-devel >= 1.2
 BuildRequires: SDL_mixer-devel >= 1.2
-BuildRequires: tcl-devel >= 8.4.9
 BuildRequires: freetype-devel
-BuildRequires: libpng-devel
 BuildRequires: pkgconfig
 BuildRequires: desktop-file-utils >= %{desktop_file_utils_version}
 BuildRequires: fontpackages-devel
 BuildRequires: symlinks
 
-%if %_opengl_wrapper
 Requires: opengl-games-utils
-%endif
 Requires: extremetuxracer-common = %{?epoch:%{epoch}:}%{version}-%{release}
 Requires: extremetuxracer-papercuts-fonts = %{?epoch:%{epoch}:}%{version}-%{release}
 Requires: extremetuxracer-papercuts-outline-fonts = %{?epoch:%{epoch}:}%{version}-%{release}
+Requires: gnu-free-sans-fonts
 
 %description
 Extreme Tux Racer is an open-source downhill racing game starring Tux, the
@@ -89,7 +64,7 @@ Requires: extremetuxracer-common = %{?epoch:%{epoch}:}%{version}-%{release}
 This package contains the PaperCuts 2.0 font which is used by Extreme Tux
 Racer.
 
-%_font_pkg -n papercuts PaperCuts20.ttf
+%_font_pkg -n papercuts pc_20.ttf PaperCuts20.ttf
 
 %package papercuts-outline-fonts
 Summary: PaperCuts Outline 2.0 font
@@ -100,67 +75,72 @@ Requires: extremetuxracer-common = %{?epoch:%{epoch}:}%{version}-%{release}
 This package contains the PaperCuts Outline 2.0 font which is used by Extreme
 Tux Racer.
 
-%_font_pkg -n papercuts-outline PaperCuts_outline.ttf
+%_font_pkg -n papercuts-outline pc_outline.ttf PaperCuts_outline.ttf
 
 %prep
-%setup -q
+%setup -q -n etr-%{version}%{?patch_ext}
 
-%patch0 -p1 -b .random-keypress-crash
-%patch1 -p1 -b .libpng
-%patch2 -p1 -b .memset
+%patch0 -p1 -b .clean-tarball
 
-%patch10 -p1 -b .autoreconf
+%patch10 -p1 -b .autofoo
 
 %build
-%configure --with-tcl=%{_libdir}
+%configure
 make %{?_smp_mflags}
 
 %install
-rm -rf %{buildroot}
 make DESTDIR="%{buildroot}" install
 
-mkdir -p %{buildroot}%{_datadir}/pixmaps/
-install -m 0644 etracericon.svg %{buildroot}%{_datadir}/pixmaps/
-
-%if %_opengl_wrapper
-ln -snf opengl-game-wrapper.sh %{buildroot}%{_bindir}/etracer-wrapper
-sed 's:^Exec=\(.*\)$:Exec=\1-wrapper:g' < %{SOURCE1} > etracer.desktop
-%else
-cp -dpf %{SOURCE1} etracer.desktop
-%endif
-
-mkdir -p %{buildroot}%{_datadir}/applications/
-desktop-file-install --dir %{buildroot}%{_datadir}/applications \
-    etracer.desktop
+ln -snf opengl-game-wrapper.sh %{buildroot}%{_bindir}/etr-wrapper
+desktop-file-edit --set-key=Exec --set-value=etr-wrapper \
+    %{buildroot}%{_datadir}/applications/etr.desktop
 
 mkdir -p %{buildroot}%{_fontdir}
-pushd %{buildroot}%{_datadir}/etracer/fonts
+pushd %{buildroot}%{_datadir}/etr/fonts
+rm -f stdbold.ttf stditalic.ttf std.ttf
 for i in *.ttf; do
     mv "$i" %{buildroot}%{_fontdir}/
     ln -s "%{buildroot}%{_fontdir}/$i" "$i"
 done
+# Trick symlinks into making symlinks relative which are dangling in the
+# buildroot
+mkdir -p "%{buildroot}%{_fontbasedir}/gnu-free"
+for i in FreeSansBold.ttf FreeSansOblique.ttf FreeSans.ttf; do
+    touch "%{buildroot}%{_fontbasedir}/gnu-free/$i"
+done
+ln -s "%{buildroot}%{_fontbasedir}/gnu-free/FreeSansBold.ttf" stdbold.ttf
+ln -s "%{buildroot}%{_fontbasedir}/gnu-free/FreeSansOblique.ttf" stditalic.ttf
+ln -s "%{buildroot}%{_fontbasedir}/gnu-free/FreeSans.ttf" std.ttf
 symlinks -c -s .
+rm -rf "%{buildroot}%{_fontbasedir}/gnu-free"
 popd
+# compat symlinks for 3rd party users
+ln -s pc_20.ttf "%{buildroot}%{_fontdir}/PaperCuts20.ttf"
+ln -s pc_outline.ttf "%{buildroot}%{_fontdir}/PaperCuts_outline.ttf"
+# move docs in correct location
+mv -f %{buildroot}%{_docdir}/etr %{buildroot}%{_pkgdocdir}
 
 %clean
 rm -rf %{buildroot}
 
 %files
-%defattr (-, root, root, 755)
-%doc contrib
-%{_bindir}/etracer
-%if %_opengl_wrapper
-%{_bindir}/etracer-wrapper
-%endif
-%{_datadir}/etracer
-%{_datadir}/pixmaps/etracericon.svg
-%{_datadir}/applications/etracer.desktop
+%doc %{_pkgdocdir}/*
+%{_bindir}/etr
+%{_bindir}/etr-wrapper
+%{_datadir}/etr
+%{_datadir}/applications/etr.desktop
+%{_datadir}/pixmaps/etr.png
 
 %files common
-%defattr (-, root, root, 755)
 %doc AUTHORS COPYING ChangeLog
 
 %changelog
+* Wed Dec 11 2013 Nils Philippsen <nils at redhat.com> - 0.6.0-1
+- version 0.6.0
+- use patched tarball cleaned from dubiously licensed font
+- drop obsolete patches, build requirements and age-old compat cruft
+- use %%global instead of %%define
+
 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.4-13
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 
diff --git a/sources b/sources
index 243d8a7..e60f048 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-6830eb4e1ca7c5a541f286ded3853f9f  extremetuxracer-0.4.tar.gz
-f1a72f99308ae14970559d323d283d8a  extremetuxracer-0.4-7-autoreconf.patch.bz2
+ac1c5f06800a38ef65f69803da546f91  etr-0.6.0.p.tar.xz
+f0b97924ca2b88c506e2390979837103  etr-0.6.0-1-autofoo.patch.xz


More information about the scm-commits mailing list