diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index e69de29..0000000
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6ffc351
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+vavoom-1.23.tar.bz2
diff --git a/Makefile b/Makefile
deleted file mode 100644
index f0b8757..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for source rpm: vavoom
-# $Id$
-NAME := vavoom
-SPECFILE = $(firstword $(wildcard *.spec))
-
-define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
-endef
-
-MAKEFILE_COMMON := $(shell $(find-makefile-common))
-
-ifeq ($(MAKEFILE_COMMON),)
-# attept a checkout
-define checkout-makefile-common
-test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
-endef
-
-MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
-endif
-
-include $(MAKEFILE_COMMON)
diff --git a/doom-logo.png b/doom-logo.png
new file mode 100644
index 0000000..29c168f
Binary files /dev/null and b/doom-logo.png differ
diff --git a/doom-shareware.desktop b/doom-shareware.desktop
new file mode 100644
index 0000000..6e994ea
--- /dev/null
+++ b/doom-shareware.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Doom
+Comment=Doom Shareware launcher, will automatically download the needed data-files
+Exec=doom-shareware
+Icon=doom-logo.png
+Terminal=false
+Type=Application
+Categories=Game;ActionGame;
diff --git a/doom-shareware.sh b/doom-shareware.sh
new file mode 100644
index 0000000..b7c11ab
--- /dev/null
+++ b/doom-shareware.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+set -e
+
+if [ ! -f ~/.vavoom/doom-shareware/doom1.wad ]; then
+ set +e
+ /usr/share/autodl/AutoDL.py /usr/share/vavoom/doom.autodlrc
+ STATUS=$?
+ set -e
+ # status 2 means download was ok, but the user choice not to start the game
+ if [ "$STATUS" = "0" -o "$STATUS" = "2" ]; then
+ cd ~/.vavoom/doom-shareware
+ unzip -u doom19s.zip 'DOOMS_19.?'
+ cat DOOMS_19.1 DOOMS_19.2 > doom.zip
+ unzip -u -L doom.zip doom1.wad
+ rm doom19s.zip DOOMS_19.1 DOOMS_19.2 doom.zip
+ fi
+ if [ "$STATUS" != "0" ]; then
+ exit $STATUS
+ fi
+fi
+
+exec /usr/bin/vavoom -iwaddir ~/.vavoom/doom-shareware -doom "$@"
diff --git a/doom.autodlrc b/doom.autodlrc
new file mode 100644
index 0000000..0ed372f
--- /dev/null
+++ b/doom.autodlrc
@@ -0,0 +1,47 @@
+[MESSAGELIST]
+[MESSAGE]
+ [TITLE]Please click 'Accept' to allow internet access.[/TITLE]
+ [TEXT]In order to play Doom, an ID software game, the original Doom datafiles are needed.
+
+Click Accept, to download the shareware version of the Doom datafiles, which can be freely downloaded from the internet.
+
+If you posess the registered version you can use that instead, by using the following command: "vavoom -iwaddir
". Where is a directory containing the datafiles of the registered version.
+
+Please click Accept to allow access to the internet to download the necessary datafiles.[/TEXT]
+[/MESSAGE]
+[MESSAGE]
+ [TITLE]License Information[/TITLE]
+ [TEXT] LIMITED USE SOFTWARE LICENSE AGREEMENT
+
+This Limited Use Software License Agreement (the "Agreement") is a legal agreement between you, the end-user, and Id Software, Inc. ("ID"). By continuing the installation of this game program, by loading or running the game, or by placing or copying the game program onto your computer hard drive, you are agreeing to be bound by the terms of this Agreement.
+
+ID SOFTWARE LICENSE
+
+ 1. Grant of License. ID grants to you the right to use the Id Software game program (the "Software"), which is the shareware version or episode one of the game program. For purposes of this section, "use" means loading the Software into RAM, as well as installation on a hard disk or other storage device. You may not: modify, translate, disassemble, decompile, reverse engineer, or create derivative works based upon the Software. You agree thatd the Software will not be shipped, transferred or exported into any country in violation of the U.S. Export Administration Act and that you will not utilize, in any other manner, the Software in violation of any applicable law.
+
+ 2. Copyright. The Software is owned by ID and is protected by United States copyright laws and international treaty provisions. You must treat the Software like any other copyrighted material, except that you may make copies of the Software to give to other persons. You may not charge or receive any consideration from any other person for the receipt or use of the Software without receiving ID's prior written consent as specified in the VENDOR.DOC file. You agree to use your best efforts to see that any user of the Software licensed hereunder complies with this Agreement.
+
+ 3. Limited Warranty. ID warrants that if properly installed and operated on a computer for which it is designed, the Software will perform substantially in accordance with its designed purpose for a period of ninety (90) days from the date the Software is first obtained by an end-user. ID's entire liability and your exclusive remedy shall be, at ID's option, either (a) return of the retail price paid, if any, or (b) repair or replacement of the Software that does not meet ID's Limited Warranty. To make a warranty claim, return the Software to the point of purchase, accompanied by proof of purchase, your name, your address, and a statement of defect, or return the Software with the above information to ID. This Limited Warranty is void if failure of the Software has resulted in whole or in part from accident, abuse, misapplication or violation of this Agreement. Any replacement Software will be warranted for the remainder of the original warranty period or thirty (30) days, whichever is longer. This warranty allocates risks of product failure between Licensee and ID. ID's product pricing reflects this allocation of risk and the limitations of liability contained in this warranty.
+
+ 4. NO OTHER WARRANTIES. ID DISCLAIMS ALL OTHER WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE SOFTWARE AND THE ACCOMPANYING WRITTEN MATERIALS, IF ANY. THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. YOU MAY HAVE OTHERS WHICH VARY FROM JURISDICTION TO JURISDICTION. ID DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED, ERROR FREE OR MEET LICENSEE'S SPECIFIC REQUIREMENTS. THE WARRANTY SET FORTH ABOVE IS IN LIEU OF ALL OTHER EXPRESS WARRANTIES WHETHER ORAL OR WRITTEN. THE AGENTS, EMPLOYEES, DISTRIBUTORS, AND DEALERS OF ID ARE NOT AUTHORIZED TO MAKE MODIFICATIONS TO THIS WARRANTY, OR ADDITIONAL WARRANTIES ON BEHALF OF ID. ADDITIONAL STATEMENTS SUCH AS DEALER ADVERTISING OR PRESENTATIONS, WHETHER ORAL OR WRITTEN, DO NOT CONSTITUTE WARRANTIES BY ID AND SHOULD NOT BE RELIED UPON.
+
+ 5. Exclusive Remedies. You agree that your exclusive remedy against ID, its affiliates, contractors, suppliers, and agents for loss or damage caused by any defect or failure in the Software regardless of the form of action, whether in contract, tort, including negligence, strict liability or otherwise, shall be the return of the retail purchase price paid, if any, or replacement of the Software. This Agreement shall be construed in accordance with and governed by the laws of the State of Texas. Copyright and other proprietary matters will be governed by United States laws and international treaties. IN ANY CASE, ID SHALL NOT BE LIABLE FOR LOSS OF DATA, LOSS OF PROFITS, LOST SAVINGS, SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT OR OTHER SIMILAR DAMAGES ARISING FROM BREACH OF WARRANTY, BREACH OF CONTRACT, NEGLIGENCE, OR OTHER LEGAL THEORY EVEN IF ID OR ITS AGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you.
+
+ 6. General Provisions. Neither this Agreement nor any part or portion hereof shall be assigned or sublicensed, except as described herein. Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby. If any provision is determined to be unenforceable, you agree to a modification of such provision to provide for enforcement of the provision's intent, to the extent permitted by applicable law. Failure of a party to enforce any provision of this Agreement shall not constitute or be construed as a waiver of such provision or of the right to enforce such provision. If you fail to comply with any terms of this Agreement, YOUR LICENSE IS AUTOMATICALLY TERMINATED.
+
+ YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, YOU UNDERSTAND THIS AGREEMENT, AND UNDERSTAND THAT BY CONTINUING THE INSTALLATION OF THE SOFTWARE, BY LOADING OR RUNNING THE SOFTWARE, OR BY PLACING OR COPYING THE SOFTWARE ONTO YOUR COMPUTER HARD DRIVE, YOU AGREE TO BE BOUND BY THIS AGREEMENT'S TERMS AND CONDITIONS. YOU FURTHER AGREE THAT, EXCEPT FOR WRITTEN SEPARATE AGREEMENTS BETWEEN ID AND YOU, THIS AGREEMENT IS A COMPLETE AND EXCLUSIVE STATEMENT OF THE RIGHTS AND LIABILITIES OF THE PARTIES. THIS AGREEMENT SUPERSEDES ALL PRIOR ORAL AGREEMENTS, PROPOSALS OR UNDERSTANDINGS, AND ANY OTHER COMMUNICATIONS BETWEEN ID AND YOU RELATING TO THE SUBJECT MATTER OF THIS AGREEMENT.[/TEXT]
+[/MESSAGE]
+[/MESSAGELIST]
+
+[FILELIST]
+[FILE]
+ [FILENAME]doom19s.zip[/FILENAME]
+ [MD5]244d181457c9be5f28b91b488e67e042[/MD5]
+ [PATH]$HOME/.vavoom/doom-shareware[/PATH]
+ [MIRRORS]
+ [URL]http://www.parkerinfo.com/dmdo/downloads/doom19s.zip[/URL]
+ [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/doom/doom19s.zip[/URL]
+ [URL]ftp://ftp.idsoftware.com/idstuff/doom/doom19s.zip[/URL]
+ [/MIRRORS]
+[/FILE]
+[/FILELIST]
diff --git a/heretic-shareware.desktop b/heretic-shareware.desktop
new file mode 100644
index 0000000..cfaf645
--- /dev/null
+++ b/heretic-shareware.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Heretic
+Comment=Heretic Shareware launcher, will automatically download the needed data-files
+Exec=heretic-shareware
+Icon=tux-b2f.png
+Terminal=false
+Type=Application
+Categories=Game;ActionGame;
diff --git a/heretic-shareware.sh b/heretic-shareware.sh
new file mode 100644
index 0000000..e89eb09
--- /dev/null
+++ b/heretic-shareware.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+set -e
+
+if [ ! -f ~/.vavoom/heretic-shareware/heretic1.wad ]; then
+ set +e
+ /usr/share/autodl/AutoDL.py /usr/share/vavoom/heretic.autodlrc
+ STATUS=$?
+ set -e
+ # status 2 means download was ok, but the user choice not to start the game
+ if [ "$STATUS" = "0" -o "$STATUS" = "2" ]; then
+ cd ~/.vavoom/heretic-shareware
+ unzip -u htic_v12.zip 'HTIC_V12.?'
+ cat HTIC_V12.1 HTIC_V12.2 > heretic.zip
+ unzip -u -L heretic.zip heretic1.wad
+ rm htic_v12.zip HTIC_V12.1 HTIC_V12.2 heretic.zip
+ fi
+ if [ "$STATUS" != "0" ]; then
+ exit $STATUS
+ fi
+fi
+
+exec /usr/bin/vavoom -iwaddir ~/.vavoom/heretic-shareware -heretic "$@"
diff --git a/heretic.autodlrc b/heretic.autodlrc
new file mode 100644
index 0000000..a28140b
--- /dev/null
+++ b/heretic.autodlrc
@@ -0,0 +1,63 @@
+[MESSAGELIST]
+[MESSAGE]
+ [TITLE]Please click 'Accept' to allow internet access.[/TITLE]
+ [TEXT]In order to play Heretic, a Raven & ID software game, the original Heretic datafiles are needed.
+
+Click Accept, to download the shareware version of the Heretic datafiles, which can be freely downloaded from the internet.
+
+If you posess the registered version you can use that instead, by using the following command: "vavoom -heretic -iwaddir ". Where is a directory containing the datafiles of the registered version.
+
+Please click Accept to allow access to the internet to download the necessary datafiles.[/TEXT]
+[/MESSAGE]
+[MESSAGE]
+ [TITLE]License Information[/TITLE]
+ [TEXT] LIMITED USE SOFTWARE LICENSE AGREEMENT
+
+This Limited Use Software License Agreement (the "Agreement") is a legal agreement between you, the end-user, and Id Software, Inc. ("ID"). By continuing the installation of this game program, by loading or running the game, or by placing or copying the game program onto your computer hard drive, you are agreeing to be bound by the terms of this Agreement.
+
+ID SOFTWARE LICENSE
+
+ 1. Grant of License. ID grants to you the right to use the Id Software game program (the "Software"), which is the shareware version or episode one of the game program. For purposes of this section, "use" means loading the Software into RAM, as well as installation on a hard disk or other storage device. You shall not: rent, lease, sell, distribute for money or other consideration, modify, translate, disassemble, decompile, reverse engineer, or create derivative works based upon the Software. You agree that the Software will not be shipped, transferred or exported into any country in violation of the U.S. Export Administration Act (or any other law governing such matters) and that you will not utilize, in any other manner, the Software in violation of any applicable law.
+
+ 2. Commercial Use is Prohibited: Under no circumstances shall you, the end user, be permitted, allowed or authorized to commercially exploit the Software. Neither you nor anyone at your direction shall do the following acts:
+
+a. Rent the Software;
+
+b. Sell the Software;
+
+c. Lease the Software;
+
+d. Offer the Software on a pay-per-play basis;
+
+e. Distribute the Software for money or other consideration; or
+
+f. In any manner and through any medium whatsoever commercially exploit the software or use the software for any commercial purpose.;
+
+ 3. Electronic Distribution is Permitted: ID grants to you the right to distribute, royalty free and by electronic means only, the Software; provided, however the Software must be so distributed only in compressed format.
+
+ 4. Copyright. The Software is owned by Raven Software, Inc. and exclusively licensed to id Software for distribution and is protected by United States copyright laws and international treaty provisions. You must treat the Software like any other copyrighted material, except that you may make copies of the Software to give to other persons. You may not charge or receive any consideration from any other person for the receipt or use of the Software without receiving ID's prior written consent as specified in the VENDOR.DOC file. You agree to use your best efforts to see that any user of the Software licensed hereunder complies with this Agreement.
+
+ 5. Limited Warranty. ID warrants that if properly installed and operated on a computer for which it is designed, the Software will perform substantially in accordance with its designed purpose for a period of ninety (90) days from the date the Software is first obtained by an end-user. ID's entire liability and your exclusive remedy shall be, at ID's option, either (a) return of the retail price paid, if any, or (b) repair or replacement of the Software that does not meet ID's Limited Warranty. To make a warranty claim, return the Software to the point of purchase, accompanied by proof of purchase, your name, your address, and a statement of defect, or return the Software with the above information to ID. This Limited Warranty is void if failure of the Software has resulted in whole or in part from accident, abuse, misapplication or violation of this Agreement. Any replacement Software will be warranted for the remainder of the original warranty period or thirty (30) days, whichever is longer. This warranty allocates risks of product failure between Licensee and ID. ID's product pricing reflects this allocation of risk and the limitations of liability contained in this warranty.
+
+ 6. NO OTHER WARRANTIES. ID DISCLAIMS ALL OTHER WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE SOFTWARE AND THE ACCOMPANYING WRITTEN MATERIALS, IF ANY. THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. YOU MAY HAVE OTHERS WHICH VARY FROM JURISDICTION TO JURISDICTION. ID DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED, ERROR FREE OR MEET LICENSEE'S SPECIFIC REQUIREMENTS. THE WARRANTY SET FORTH ABOVE IS IN LIEU OF ALL OTHER EXPRESS WARRANTIES WHETHER ORAL OR WRITTEN. THE AGENTS, EMPLOYEES, DISTRIBUTORS, AND DEALERS OF ID ARE NOT AUTHORIZED TO MAKE MODIFICATIONS TO THIS WARRANTY, OR ADDITIONAL WARRANTIES ON BEHALF OF ID. ADDITIONAL STATEMENTS SUCH AS DEALER ADVERTISING OR PRESENTATIONS, WHETHER ORAL OR WRITTEN, DO NOT CONSTITUTE WARRANTIES BY ID AND SHOULD NOT BE RELIED UPON.
+
+ 7. Exclusive Remedies. You agree that your exclusive remedy against ID, its affiliates, contractors, suppliers, and agents for loss or damage caused by any defect or failure in the Software regardless of the form of action, whether in contract, tort, including negligence, strict liability or otherwise, shall be the return of the retail purchase price paid, if any, or replacement of the Software. This Agreement shall be construed in accordance with and governed by the laws of the State of Texas. Copyright and other proprietary matters will be governed by United States laws and international treaties. IN ANY CASE, ID SHALL NOT BE LIABLE FOR LOSS OF DATA, LOSS OF PROFITS, LOST SAVINGS, SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT OR OTHER SIMILAR DAMAGES ARISING FROM BREACH OF WARRANTY, BREACH OF CONTRACT, NEGLIGENCE, OR OTHER LEGAL THEORY EVEN IF ID OR ITS AGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you.
+
+ 8. General Provisions. Neither this Agreement nor any part or portion hereof shall be assigned or sublicensed, except as described herein. Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby. If any provision is determined to be unenforceable, you agree to a modification of such provision to provide for enforcement of the provision's intent, to the extent permitted by applicable law. Failure of a party to enforce any provision of this Agreement shall not constitute or be construed as a waiver of such provision or of the right to enforce such provision. If you fail to comply with any terms of this Agreement, YOUR LICENSE IS AUTOMATICALLY TERMINATED.
+
+ YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, YOU UNDERSTAND THIS AGREEMENT, AND UNDERSTAND THAT BY CONTINUING THE INSTALLATION OF THE SOFTWARE, BY LOADING OR RUNNING THE SOFTWARE, OR BY PLACING OR COPYING THE SOFTWARE ONTO YOUR COMPUTER HARD DRIVE, YOU AGREE TO BE BOUND BY THIS AGREEMENT'S TERMS AND CONDITIONS. YOU FURTHER AGREE THAT, EXCEPT FOR WRITTEN SEPARATE AGREEMENTS BETWEEN ID AND YOU, THIS AGREEMENT IS A COMPLETE AND EXCLUSIVE STATEMENT OF THE RIGHTS AND LIABILITIES OF THE PARTIES. THIS AGREEMENT SUPERSEDES ALL PRIOR ORAL AGREEMENTS, PROPOSALS OR UNDERSTANDINGS, AND ANY OTHER COMMUNICATIONS BETWEEN ID AND YOU RELATING TO THE SUBJECT MATTER OF THIS AGREEMENT.[/TEXT]
+[/MESSAGE]
+[/MESSAGELIST]
+
+[FILELIST]
+[FILE]
+ [FILENAME]htic_v12.zip[/FILENAME]
+ [MD5]420b23b3d8f2cbd164c121369eaa2b09[/MD5]
+ [PATH]$HOME/.vavoom/heretic-shareware[/PATH]
+ [MIRRORS]
+ [URL]http://www.parkerinfo.com/dmdo/downloads/htic_v12.zip[/URL]
+ [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/heretic/htic_v12.zip[/URL]
+ [URL]ftp://ftp.idsoftware.com/idstuff/heretic/htic_v12.zip[/URL]
+ [/MIRRORS]
+[/FILE]
+[/FILELIST]
diff --git a/hexen-demo.desktop b/hexen-demo.desktop
new file mode 100644
index 0000000..b4f44b2
--- /dev/null
+++ b/hexen-demo.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Hexen
+Comment=Hexen Demo launcher, will automatically download the needed data-files
+Exec=hexen-demo
+Icon=tux-b2f.png
+Terminal=false
+Type=Application
+Categories=Game;ActionGame;
diff --git a/hexen-demo.sh b/hexen-demo.sh
new file mode 100644
index 0000000..215ef45
--- /dev/null
+++ b/hexen-demo.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+set -e
+
+if [ ! -f ~/.vavoom/hexen-demo/hexen.wad ]; then
+ set +e
+ /usr/share/autodl/AutoDL.py /usr/share/vavoom/hexen.autodlrc
+ STATUS=$?
+ set -e
+ # status 2 means download was ok, but the user choice not to start the game
+ if [ "$STATUS" = "0" -o "$STATUS" = "2" ]; then
+ cd ~/.vavoom/hexen-demo
+ unzip -u -L hexndemo.zip hexen.wad
+ rm hexndemo.zip
+ fi
+ if [ "$STATUS" != "0" ]; then
+ exit $STATUS
+ fi
+fi
+
+exec /usr/bin/vavoom -iwaddir ~/.vavoom/hexen-demo -hexen "$@"
diff --git a/hexen.autodlrc b/hexen.autodlrc
new file mode 100644
index 0000000..2cae36d
--- /dev/null
+++ b/hexen.autodlrc
@@ -0,0 +1,46 @@
+[MESSAGELIST]
+[MESSAGE]
+ [TITLE]Please click 'Accept' to allow internet access.[/TITLE]
+ [TEXT]In order to play Hexen, a Raven & ID software game, the original Heretic datafiles are needed.
+
+Click Accept, to download the demo version of the Hexen datafiles, which can be freely downloaded from the internet.
+
+If you posess the full version you can use that instead, by using the following command: "vavoom -hexen -iwaddir ". Where is a directory containing the datafiles of the full version.
+
+Please click Accept to allow access to the internet to download the necessary datafiles.[/TEXT]
+[/MESSAGE]
+[MESSAGE]
+ [TITLE]License Information[/TITLE]
+ [TEXT]Hexen: Beyond Heretic DEMO
+Re-released October 18th, 1995
+--------------------------------------
+Created by Raven Software (C) 1995
+Published by id Software
+Distributed by GT Interactive Software
+--------------------------------------
+Worldwide retail release date: Oct 30th
+Hexen is NOT a shareware product.
+
+Please direct all bug reports to support@gtinteractive.com. Do NOT email id Software or Raven Software with bug reports.
+
+This is a 4-level demo of the new action-adventure Hexen: Beyond Heretic, the sequel to the original Heretic first-person action-adventure. Besides the storyline, the major differences between Heretic and Hexen are numerous.
+
+Enjoy the demo. Then rush out and get the game when it hits the stores! You won't be sorry. But your friends will be when they think they can take you on in a Deathmatch and they find a Maulotaur you just summoned bashing their brains into the dirt with you laughing at them behind its back.
+
+John Romero
+id Software, inc.[/TEXT]
+[/MESSAGE]
+[/MESSAGELIST]
+
+[FILELIST]
+[FILE]
+ [FILENAME]hexndemo.zip[/FILENAME]
+ [MD5]b30672df8b41fd35fafe40ce0c3855c3[/MD5]
+ [PATH]$HOME/.vavoom/hexen-demo[/PATH]
+ [MIRRORS]
+ [URL]http://www.parkerinfo.com/dmdo/downloads/hexndemo.zip[/URL]
+ [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/hexen/hexndemo.zip[/URL]
+ [URL]ftp://ftp.idsoftware.com/idstuff/hexen/hexndemo.zip[/URL]
+ [/MIRRORS]
+[/FILE]
+[/FILELIST]
diff --git a/sources b/sources
index e69de29..f273716 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+f27b5bd75939f7f139d521b48bb0a1d4 vavoom-1.23.tar.bz2
diff --git a/strife-demo.desktop b/strife-demo.desktop
new file mode 100644
index 0000000..c23af96
--- /dev/null
+++ b/strife-demo.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Strife
+Comment=Strife Demo launcher, will automatically download the needed data-files
+Exec=strife-demo
+Icon=tux-b2f.png
+Terminal=false
+Type=Application
+Categories=Game;ActionGame;
diff --git a/strife-demo.sh b/strife-demo.sh
new file mode 100644
index 0000000..2739d07
--- /dev/null
+++ b/strife-demo.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+set -e
+
+if [ ! -f ~/.vavoom/strife-demo/strife0.wad ]; then
+ set +e
+ /usr/share/autodl/AutoDL.py /usr/share/vavoom/strife.autodlrc
+ STATUS=$?
+ set -e
+ # status 2 means download was ok, but the user choice not to start the game
+ if [ "$STATUS" = "0" -o "$STATUS" = "2" ]; then
+ cd ~/.vavoom/strife-demo
+ unzip -u -L strife11.zip strife0.wad
+ rm strife11.zip
+ fi
+ if [ "$STATUS" != "0" ]; then
+ exit $STATUS
+ fi
+fi
+
+exec /usr/bin/vavoom -iwaddir ~/.vavoom/strife-demo -strife "$@"
diff --git a/strife.autodlrc b/strife.autodlrc
new file mode 100644
index 0000000..e030b9e
--- /dev/null
+++ b/strife.autodlrc
@@ -0,0 +1,26 @@
+[MESSAGELIST]
+[MESSAGE]
+ [TITLE]Please click 'Accept' to allow internet access.[/TITLE]
+ [TEXT]In order to play Strife, a Rogue Entertainment game, the original Strife datafiles are needed.
+
+Click Accept, to download the demo version of the Strife datafiles, which can be freely downloaded from the internet.
+
+If you posess the full version you can use that instead, by using the following command: "vavoom -strife -iwaddir ". Where is a directory containing the datafiles of the full version.
+
+Please click Accept to allow access to the internet to download the necessary datafiles.[/TEXT]
+[/MESSAGE]
+[/MESSAGELIST]
+
+[FILELIST]
+[FILE]
+ [FILENAME]strife11.zip[/FILENAME]
+ [MD5]972070afb30c96fc3c69d954dfab2424[/MD5]
+ [PATH]$HOME/.vavoom/strife-demo[/PATH]
+ [MIRRORS]
+ [URL]http://www.gamers.org/pub/games/strife/strife11.zip[/URL]
+ [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/roguestuff/strife11.zip[/URL]
+ [URL]http://downloads.planetmirror.com/pub/idgames/roguestuff/strife11.zip[/URL]
+ [URL]ftp://archives.3dgamers.com/pub/games/strife/strife11.zip[/URL]
+ [/MIRRORS]
+[/FILE]
+[/FILELIST]
diff --git a/tux-b2f.png b/tux-b2f.png
new file mode 100644
index 0000000..712e036
Binary files /dev/null and b/tux-b2f.png differ
diff --git a/vavoom-1.21-datadir.patch b/vavoom-1.21-datadir.patch
new file mode 100644
index 0000000..dd3d9ed
--- /dev/null
+++ b/vavoom-1.21-datadir.patch
@@ -0,0 +1,21 @@
+diff -Naur vavoom-1.21.bak/source/files.cpp vavoom-1.21/source/files.cpp
+--- vavoom-1.21.bak/source/files.cpp 2006-06-27 12:47:24.000000000 -0700
++++ vavoom-1.21/source/files.cpp 2006-07-15 12:31:34.000000000 -0700
+@@ -336,7 +336,7 @@
+ const char* p;
+
+ // Set up base directory (main data files).
+- fl_basedir = ".";
++ fl_basedir = FL_BASEDIR;
+ p = GArgs.CheckValue("-basedir");
+ if (p)
+ {
+diff -Naur vavoom-1.21.bak/source/files.h vavoom-1.21/source/files.h
+--- vavoom-1.21.bak/source/files.h 2006-06-27 12:47:24.000000000 -0700
++++ vavoom-1.21/source/files.h 2006-07-15 12:30:51.000000000 -0700
+@@ -47,3 +47,5 @@
+ extern VStr fl_basedir;
+ extern VStr fl_savedir;
+ extern VStr fl_gamedir;
++
++#define FL_BASEDIR "."
diff --git a/vavoom-1.23-64bit.patch b/vavoom-1.23-64bit.patch
new file mode 100644
index 0000000..6825235
--- /dev/null
+++ b/vavoom-1.23-64bit.patch
@@ -0,0 +1,90 @@
+--- vavoom-1.23/source/vclass.cpp.64bit 2007-05-16 12:01:33.000000000 +0200
++++ vavoom-1.23/source/vclass.cpp 2007-05-16 12:01:57.000000000 +0200
+@@ -27,6 +27,20 @@
+ #include "progdefs.h"
+ #include "network.h"
+
++class DummyClass1 : public VVirtualObjectBase
++{
++public:
++ void* Pointer;
++ vuint8 Byte1;
++ virtual void Dummy() = 0;
++};
++
++class DummyClass2 : public DummyClass1
++{
++public:
++ vuint8 Byte2;
++};
++
+ bool VMemberBase::GObjInitialised;
+ VClass* VMemberBase::GClasses;
+ TArray VMemberBase::GMembers;
+@@ -2353,6 +2367,7 @@
+ , LinkNext(0)
+ , ParentClass(0)
+ , ClassSize(0)
++, ClassUnalignedSize(0)
+ , ClassFlags(0)
+ , ClassVTable(0)
+ , ClassConstructor(0)
+@@ -2388,6 +2403,7 @@
+ , LinkNext(0)
+ , ParentClass(AParent)
+ , ClassSize(ASize)
++, ClassUnalignedSize(ASize)
+ , ClassFlags(AClassFlags)
+ , ClassVTable(0)
+ , ClassConstructor(ACtor)
+@@ -2849,10 +2865,7 @@
+ return;
+ }
+
+- int PrevSize = ClassSize;
+- int size = ParentClass ? ParentClass->ClassSize : 0;
+ int numMethods = ParentClass ? ParentClass->ClassNumMethods : 0;
+- VField* PrevField = NULL;
+ for (int i = 0; i < GMembers.Num(); i++)
+ {
+ if (GMembers[i]->MemberType != MEMBER_Method ||
+@@ -2877,6 +2890,21 @@
+ }
+ M->VTableIndex = MOfs;
+ }
++
++ VField* PrevField = NULL;
++ int PrevSize = ClassSize;
++ int size = 0;
++ if (ParentClass)
++ {
++ // GCC has a strange behavior of starting to add fields in subclasses
++ // in a class that has virtual methods on unaligned parent size offset.
++ // In other cases and in other compilers it starts on aligned parent
++ // class size offset.
++ if (sizeof(DummyClass1) == sizeof(DummyClass2))
++ size = ParentClass->ClassUnalignedSize;
++ else
++ size = ParentClass->ClassSize;
++ }
+ for (VField* fi = Fields; fi; fi = fi->Next)
+ {
+ if (fi->Type.Type == ev_bool && PrevField &&
+@@ -2904,6 +2932,7 @@
+ }
+ PrevField = fi;
+ }
++ ClassUnalignedSize = size;
+ size = (size + sizeof(void*) - 1) & ~(sizeof(void*) - 1);
+ ClassSize = size;
+ ClassNumMethods = numMethods;
+--- vavoom-1.23/source/vclass.h.64bit 2007-05-16 12:01:39.000000000 +0200
++++ vavoom-1.23/source/vclass.h 2007-05-16 12:01:54.000000000 +0200
+@@ -375,6 +375,7 @@
+ VClass* ParentClass;
+
+ vint32 ClassSize;
++ vint32 ClassUnalignedSize;
+ vuint32 ClassFlags;
+ VMethod** ClassVTable;
+ void (*ClassConstructor)();
diff --git a/vavoom-1.23-fixes.patch b/vavoom-1.23-fixes.patch
new file mode 100644
index 0000000..ba2a59b
--- /dev/null
+++ b/vavoom-1.23-fixes.patch
@@ -0,0 +1,13 @@
+--- vavoom-1.21.2/source/d_local.h~ 2007-05-14 22:47:14.000000000 +0200
++++ vavoom-1.21.2/source/d_local.h 2007-05-14 22:47:14.000000000 +0200
+@@ -425,8 +425,10 @@
+ extern spritespanfunc_t D_DrawAltFuzzSpriteSpans;
+ extern particle_func_t D_DrawParticle;
+
++extern "C" {
+ extern float xscaleshrink;
+ extern float yscaleshrink;
++}
+
+ extern byte *colormaps;
+
diff --git a/vavoom-1.24-CVE-2007-4533-5.patch b/vavoom-1.24-CVE-2007-4533-5.patch
new file mode 100644
index 0000000..23d1b21
--- /dev/null
+++ b/vavoom-1.24-CVE-2007-4533-5.patch
@@ -0,0 +1,131 @@
+--- trunk/vavoom/source/p_acs.cpp 2007/08/29 22:11:13 2684
++++ trunk/vavoom/source/p_acs.cpp 2007/08/31 16:30:40 2685
+@@ -2486,7 +2486,7 @@
+ }
+ else
+ {
+- BroadcastCentrePrintf(*PrintStr);
++ BroadcastCentrePrint(*PrintStr);
+ }
+ ACSVM_BREAK;
+
+@@ -2649,7 +2649,7 @@
+ ACSVM_CASE(PCD_EndPrintBold)
+ //FIXME yellow message
+ PrintStr = PrintStr.EvalEscapeSequences();
+- BroadcastCentrePrintf(*PrintStr);
++ BroadcastCentrePrint(*PrintStr);
+ ACSVM_BREAK;
+
+ // Extended P-Code commands.
+@@ -2974,7 +2974,7 @@
+ }
+ else
+ {
+- BroadcastCentrePrintf(*PrintStr);
++ BroadcastCentrePrint(*PrintStr);
+ }
+ sp = optstart - 6;
+ ACSVM_BREAK;
+--- trunk/vavoom/source/p_thinker.cpp 2007/08/29 22:11:13 2684
++++ trunk/vavoom/source/p_thinker.cpp 2007/08/31 16:30:40 2685
+@@ -294,6 +294,21 @@
+
+ //==========================================================================
+ //
++// VThinker::BroadcastPrint
++//
++//==========================================================================
++
++void VThinker::BroadcastPrint(const char *s)
++{
++ guard(VThinker::BroadcastPrint);
++ for (int i = 0; i < svs.max_clients; i++)
++ if (Level->Game->Players[i])
++ Level->Game->Players[i]->eventClientPrint(s);
++ unguard;
++}
++
++//==========================================================================
++//
+ // VThinker::BroadcastPrintf
+ //
+ //==========================================================================
+@@ -308,9 +323,22 @@
+ vsprintf(buf, s, v);
+ va_end(v);
+
++ BroadcastPrint(buf);
++ unguard;
++}
++
++//==========================================================================
++//
++// VThinker::BroadcastCentrePrint
++//
++//==========================================================================
++
++void VThinker::BroadcastCentrePrint(const char *s)
++{
++ guard(VThinker::BroadcastCentrePrint);
+ for (int i = 0; i < svs.max_clients; i++)
+ if (Level->Game->Players[i])
+- Level->Game->Players[i]->eventClientPrint(buf);
++ Level->Game->Players[i]->eventClientCentrePrint(s);
+ unguard;
+ }
+
+@@ -330,9 +358,7 @@
+ vsprintf(buf, s, v);
+ va_end(v);
+
+- for (int i = 0; i < svs.max_clients; i++)
+- if (Level->Game->Players[i])
+- Level->Game->Players[i]->eventClientCentrePrint(buf);
++ BroadcastCentrePrint(buf);
+ unguard;
+ }
+
+@@ -444,7 +470,7 @@
+ {
+ VStr Msg = PF_FormatString();
+ P_GET_SELF;
+- Self->BroadcastPrintf(*Msg);
++ Self->BroadcastPrint(*Msg);
+ }
+
+ IMPLEMENT_FUNCTION(VThinker, AllocDlight)
+--- trunk/vavoom/source/sv_main.cpp 2007/08/29 22:11:13 2684
++++ trunk/vavoom/source/sv_main.cpp 2007/08/31 16:30:40 2685
+@@ -1624,7 +1624,7 @@
+ Text += " ";
+ Text += Args[i];
+ }
+- GLevelInfo->BroadcastPrintf(*Text);
++ GLevelInfo->BroadcastPrint(*Text);
+ GLevelInfo->StartSound(TVec(0, 0, 0), 0,
+ GSoundManager->GetSoundID("misc/chat"), 0, 1.0, 0);
+ unguard;
+--- trunk/vavoom/source/p_thinker.h 2007/08/29 22:11:13 2684
++++ trunk/vavoom/source/p_thinker.h 2007/08/31 16:30:40 2685
+@@ -76,7 +76,9 @@
+ void AddSoundSequenceChoice(vint32, VName);
+ void StopSoundSequence(vint32);
+
++ void BroadcastPrint(const char*);
+ void BroadcastPrintf(const char*, ...);
++ void BroadcastCentrePrint(const char*);
+ void BroadcastCentrePrintf(const char*, ...);
+
+ DECLARE_FUNCTION(Spawn)
+--- trunk/vavoom/source/str.h 2007/08/31 16:30:40 2685
++++ trunk/vavoom/source/str.h 2007/08/31 17:25:55 2686
+@@ -345,6 +345,8 @@
+ {
+ vint32 Len;
+ Strm << STRM_INDEX(Len);
++ if (Len < 0)
++ Len = 0;
+ S.Resize(Len);
+ if (Len)
+ Strm.Serialise(S.Str, Len + 1);
diff --git a/vavoom.spec b/vavoom.spec
new file mode 100644
index 0000000..f01f59f
--- /dev/null
+++ b/vavoom.spec
@@ -0,0 +1,169 @@
+Name: vavoom
+Version: 1.24
+Release: 3%{?dist}
+Summary: Enhanced Doom, Heretic, Hexen and Strife source port
+Source0: http://downloads.sourceforge.net/vavoom/%{name}-%{version}.tar.bz2
+Source1: doom.autodlrc
+Source2: heretic.autodlrc
+Source3: hexen.autodlrc
+Source4: strife.autodlrc
+Source5: doom-shareware.sh
+Source6: heretic-shareware.sh
+Source7: hexen-demo.sh
+Source8: strife-demo.sh
+Source9: doom-shareware.desktop
+Source10: heretic-shareware.desktop
+Source11: hexen-demo.desktop
+Source12: strife-demo.desktop
+Source13: doom-logo.png
+Source14: tux-b2f.png
+Patch0: vavoom-1.21-datadir.patch
+Patch1: vavoom-1.23-fixes.patch
+Patch2: vavoom-1.24-CVE-2007-4533-5.patch
+URL: http://vavoom-engine.com/
+Group: Amusements/Games
+License: GPLv2+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: SDL_mixer-devel SDL_net-devel libpng-devel libjpeg-devel
+BuildRequires: libvorbis-devel mikmod-devel flac-devel openal-devel
+BuildRequires: libGLU-devel desktop-file-utils
+Requires: timidity++ hicolor-icon-theme autodownloader
+
+%description
+Vavoom is an enhanced open-source port of Doom. Allowing you to play not only
+the classic 3D first-person shooter Doom, but also the Doom derived classics
+Heretic, Hexen and Strife. Compared to the original games it adds extra
+features such as translucency and freelook support and ofcourse the capability
+to play these classics under Linux.
+
+
+%prep
+%setup -q
+%patch0 -p1 -b .datadir
+%patch1 -p1 -b .fix
+%patch2 -p2 -b .CVE
+
+
+%build
+# Disable allegro, we can use either SDL or allegro. Since SDL is used more
+# widely we use that. We could in the future build both versions.
+%configure --without-allegro --enable-debug
+
+# This one line sed command is easier than trying to muck with the Makefile
+# to add the proper -D definition.
+sed -i "s|#define FL_BASEDIR.*|#define FL_BASEDIR \"%{_datadir}/%{name}\"|" source/files.h
+sed -i "s|#define CONFIG_FILE.*|#define CONFIG_FILE \"%{_sysconfdir}/timidity.cfg\"|" source/timidity/config.h
+
+# The Makefile doesn't do parallel builds correctly. Don't add smp_mflags.
+make
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install \
+ DESTDIR=$RPM_BUILD_ROOT \
+ INSTALL_PARMS="-m 0755" \
+ INSTALL_EXEPARMS="-m 0755" \
+ INSTALL_DIRPARMS="-m 0755 -d"
+
+mv $RPM_BUILD_ROOT%{_bindir}/%{name}.* $RPM_BUILD_ROOT%{_bindir}/%{name}
+mv $RPM_BUILD_ROOT%{_bindir}/%{name}-dedicated.* $RPM_BUILD_ROOT%{_bindir}/%{name}-dedicated
+
+# install autodl files and wrapper scripts
+install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/%{name}
+install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/%{name}
+install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/%{name}
+install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/%{name}
+
+install -p -m 755 %{SOURCE5} $RPM_BUILD_ROOT%{_bindir}/doom-shareware
+install -p -m 755 %{SOURCE6} $RPM_BUILD_ROOT%{_bindir}/heretic-shareware
+install -p -m 755 %{SOURCE7} $RPM_BUILD_ROOT%{_bindir}/hexen-demo
+install -p -m 755 %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}/strife-demo
+
+# below is the desktop file and icon stuff.
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
+desktop-file-install --vendor fedora \
+ --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+ %{SOURCE9}
+desktop-file-install --vendor fedora \
+ --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+ %{SOURCE10}
+desktop-file-install --vendor fedora \
+ --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+ %{SOURCE11}
+desktop-file-install --vendor fedora \
+ --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+ %{SOURCE12}
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps
+install -p -m 644 %{SOURCE13} %{SOURCE14} \
+ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%post
+touch --no-create %{_datadir}/icons/hicolor || :
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+fi
+
+%postun
+touch --no-create %{_datadir}/icons/hicolor || :
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+fi
+
+
+%files
+%defattr(-,root,root,-)
+%doc docs/*.log docs/gnu.txt docs/vavoom.txt
+%{_bindir}/*
+%{_datadir}/%{name}
+%{_datadir}/applications/fedora-*.desktop
+%{_datadir}/icons/hicolor/48x48/apps/*.png
+
+
+%changelog
+* Fri Aug 31 2007 Hans de Goede 1.24-3
+- Fix some security issues in the server: CVE-2007-4533, CVE-2007-4534,
+ CVE-2007-4535 (bz 256621)
+
+* Wed Aug 15 2007 Hans de Goede 1.24-2
+- Update License tag for new Licensing Guidelines compliance
+
+* Thu Jun 14 2007 Hans de Goede 1.24-1
+- New upstream release 1.24
+- This also fixes bug 241611
+
+* Sat May 19 2007 Hans de Goede 1.23-2
+- Add missing libjpeg-devel BuildRequires
+
+* Wed May 16 2007 Hans de Goede 1.23-1
+- Update to 1.23
+- No longer require freedoom, it doesn't seem to work with vavoom
+- No longer require vavoom-vmdl, it has license issues
+- Add --enable-debug to ./configure flags so that the bins don't get stripped
+- Add .desktop files, wrapper scripts and autodownloader files for:
+ doom-shareware, heretic-shareware, hexen-demo and strife-demo
+- Submit for FE inclusion
+
+* Sun Jul 23 2006 Wart 1.21.1-1
+- Update to 1.21.1
+
+* Sat Jul 16 2006 Wart 1.21-2
+- Remove some comments from the spec file
+- Remove shell script wrappers from /usr/bin
+- Update datadir patch to 1.21
+
+* Sat Jul 15 2006 Wart 1.21-1
+- Update to 1.21
+
+* Fri Jun 16 2006 Wart 1.20-2
+- Added various fixes to conform to FHS.
+- Added upstream patch to prevent cross-filesystem links when building
+ glvis files.
+
+* Sat Jun 3 2006 Wart 1.20-1
+- Initial Fedora Extras package