aur updates

This commit is contained in:
Kevin Mihelich 2015-09-16 02:33:15 +00:00
parent 8d850d5b5d
commit 920009ac24
16 changed files with 34 additions and 944 deletions

View file

@ -1,46 +0,0 @@
From bed0ff13bf09b3c6190f9ff0cf6f7182a96a0faf Mon Sep 17 00:00:00 2001
From: Simon Howard <fraggle@soulsphere.org>
Date: Wed, 10 Jun 2015 22:38:19 -0400
Subject: [PATCH 01/13] setup: Fix help URL for level warp menu.
The help URL for the warp menu was linking to the multiplayer start
game menu.
---
src/setup/multiplayer.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/setup/multiplayer.c b/src/setup/multiplayer.c
index a36f4da..3fe6a82 100644
--- a/src/setup/multiplayer.c
+++ b/src/setup/multiplayer.c
@@ -37,6 +37,7 @@
#define MULTI_START_HELP_URL "http://www.chocolate-doom.org/setup-multi-start"
#define MULTI_JOIN_HELP_URL "http://www.chocolate-doom.org/setup-multi-join"
#define MULTI_CONFIG_HELP_URL "http://www.chocolate-doom.org/setup-multi-config"
+#define LEVEL_WARP_HELP_URL "http://www.chocolate-doom.org/setup-level-warp"
#define NUM_WADS 10
#define NUM_EXTRA_PARAMS 10
@@ -715,9 +716,17 @@ static void StartGameMenu(char *window_title, int multiplayer)
txt_widget_t *iwad_selector;
window = TXT_NewWindow(window_title);
- TXT_SetWindowHelpURL(window, MULTI_START_HELP_URL);
- TXT_AddWidgets(window,
+ if (multiplayer)
+ {
+ TXT_SetWindowHelpURL(window, MULTI_START_HELP_URL);
+ }
+ else
+ {
+ TXT_SetWindowHelpURL(window, LEVEL_WARP_HELP_URL);
+ }
+
+ TXT_AddWidgets(window,
gameopt_table = TXT_NewTable(2),
TXT_NewSeparator("Monster options"),
TXT_NewInvertedCheckBox("Monsters enabled", &nomonsters),
--
2.5.0

View file

@ -1,107 +0,0 @@
From 432d121c862679f5d9af43dcfa3ef7d0f586104c Mon Sep 17 00:00:00 2001
From: Simon Howard <fraggle@soulsphere.org>
Date: Wed, 10 Jun 2015 23:04:18 -0400
Subject: [PATCH 02/13] Update README.Strife.
The legal status is a lot clearer now that Strife: Veteran Edition has
been released. Remove the "New in v2.0 Release" section as this is
unlikely to be kept up to date, and these updates are covered by the NEWS
file that serves this purpose.
---
README.Strife | 70 ++++++++---------------------------------------------------
1 file changed, 9 insertions(+), 61 deletions(-)
diff --git a/README.Strife b/README.Strife
index 84be6b4..0bd8e77 100644
--- a/README.Strife
+++ b/README.Strife
@@ -28,29 +28,21 @@ have to the code is the binary executable file. Tools such as IDA Pro have
been employed to disassemble and decompile the executable, which was cross-
referenced against the Linux DOOM and DOS Heretic sources and painstakingly
combed over multiple times, instruction-by-instruction, to ensure that the
-resulting Chocolate-Doom-based executable is as close as possible to the
+resulting Chocolate Doom-based executable is as close as possible to the
original.
* Is it Legal? *
-Reverse engineering is a protected activity so long as the original code is
-not used directly in the product. Due to the vast amount of information lost
-through the process of compilation, and the need to refactor large portions
-of code in order to eliminate non-portable idioms or to adapt them properly to
-Chocolate Doom's framework, the resulting code behaves the same, but is not
-the *same* code.
+Chocolate Strife was originally reverse-engineered from the DOS Strife
+binaries. Although reverse engineering is legally a protected activity, this
+nonetheless left some open questions about its legal status.
-In addition, James Monroe and John Carmack have both stated that they have no
-objections to the project. Because they are the original authors of the code,
-and neither Rogue nor their publisher, Velocity, Inc., exist any longer as legal
-entities, this is as close to legal permission as can be obtained.
-
-The transformed results of the disassembly have been combined with the
-raven-branch version of the Chocolate Doom source port by Simon 'fraggle'
-Howard, with his direct assistance, and have been released for the benefit of
-the community under the GNU General Public License v2.0. See the file "COPYING"
-for more details
+In 2014, a new commercial release of Strife was published (Strife: Veteran
+Edition) based on the Chocolate Strife code, and developed by the authors of
+Chocolate Strife under commercial license. The release of Strife: Veteran
+Edition, along with its GPL-licensed source code, constitutes tacit approval
+for the legal status of Chocolate Strife by its current copyright holder.
* Is it Perfect? *
@@ -127,47 +119,3 @@ program is available from the same location where you downloaded this package.
Aside from Chocolate Doom, portions of the code are derived from the Eternity
Engine, Copyright 2011 Team Eternity, as published under the GNU GPL.
-
-* New in v2.0 Release *
-
-+ No infinite loop if menus are up during a screen fade.
-
-+ Peasant death sound during intro plays at normal volume level.
-
-+ Torches no longer produce pipping sounds (special thanks to fraggle).
-
-+ Fade to black occurs at the start of slideshow sequences as in vanilla.
-
-+ Network game support, with up to 8 players.
-
-+ No more infinite horizon effect if screen is resized while looking up or
- down.
-
-+ Corrected default internal Acolyte and Beggar dialogue strings.
-
-+ Proper save game directory behavior (same as other Choco ports).
-
-+ Vanilla behavior for crush-and-raise floor types (special thanks to Gez).
-
-+ Bug fix for all crushing floor types.
-
-+ Broken power coupling awards erroneous quest flag #32, as in vanilla.
-
-+ Complete support for emulation of Strife v1.31, including abililty to save
- on multiple save slots.
-
-+ Telefrags insta-kill as in vanilla (player cannot heal 10000 damage even with
- a full inventory of health items).
-
-+ Frags are displayed on the keys popup during deathmatch.
-
-+ Multiplayer chat features, including ability to set player names, now match
- vanilla behavior.
-
-+ Support for -random parameter.
-
-+ Vanilla behavior when pressing pause on menus with scroll bars (special
- thanks to fraggle and Alexandre Xavier).
-
-+ Merged into Chocolate Doom trunk for v2.0 release.
-
--
2.5.0

View file

@ -1,22 +0,0 @@
From af09900bad738208b3228d9fed8bd3a0619e2638 Mon Sep 17 00:00:00 2001
From: Mike Swanson <mikeonthecomputer@gmail.com>
Date: Sat, 13 Jun 2015 13:35:54 -0700
Subject: [PATCH 03/13] setup.desktop: Add a missing semicolon to Categories
---
src/setup/setup.desktop.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/setup/setup.desktop.in b/src/setup/setup.desktop.in
index 91decb4..cf127d8 100644
--- a/src/setup/setup.desktop.in
+++ b/src/setup/setup.desktop.in
@@ -4,4 +4,4 @@ Exec=@PROGRAM_PREFIX@setup
Icon=@PROGRAM_PREFIX@setup
Type=Application
Comment=Setup tool for @PACKAGE_SHORTNAME@
-Categories=Settings
+Categories=Settings;
--
2.5.0

View file

@ -1,21 +0,0 @@
From 7c192af0d17f3f45d4208bc15cb1225b811aab74 Mon Sep 17 00:00:00 2001
From: Fabian Greffrath <fabian@greffrath.com>
Date: Mon, 15 Jun 2015 09:16:44 +0200
Subject: [PATCH 04/13] Add Keywords to the setup.desktop file
---
src/setup/setup.desktop.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/setup/setup.desktop.in b/src/setup/setup.desktop.in
index cf127d8..2a5e71f 100644
--- a/src/setup/setup.desktop.in
+++ b/src/setup/setup.desktop.in
@@ -5,3 +5,4 @@ Icon=@PROGRAM_PREFIX@setup
Type=Application
Comment=Setup tool for @PACKAGE_SHORTNAME@
Categories=Settings;
+Keywords=first;person;shooter;doom;heretic;hexen;strife;vanilla;
--
2.5.0

View file

@ -1,62 +0,0 @@
From 7d884d24adff82c020c2663c9142b38ee189ddef Mon Sep 17 00:00:00 2001
From: Simon Howard <fraggle@soulsphere.org>
Date: Sat, 11 Jul 2015 03:38:49 -0400
Subject: [PATCH 05/13] doom: Avoid overflow for spawn angle calculation.
Integer overflow is undefined and this breaks when using Clang with
-O2 optimization turned on. This fixes #572 (thanks to David Majnemer
for insight into fixing this bug).
---
src/doom/g_game.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/doom/g_game.c b/src/doom/g_game.c
index bc582a5..3001e03 100644
--- a/src/doom/g_game.c
+++ b/src/doom/g_game.c
@@ -1168,26 +1168,26 @@ G_CheckSpot
fixed_t xa, ya;
signed int an;
- an = (ANG45 * ((signed int) mthing->angle / 45));
- // Right-shifting a negative signed integer is implementation-defined,
- // so divide instead.
- an /= 1 << ANGLETOFINESHIFT;
+ // This calculation overflows in Vanilla Doom, but here we deliberately
+ // avoid integer overflow as it is undefined behavior, so the value of
+ // 'an' will always be positive.
+ an = (ANG45 >> ANGLETOFINESHIFT) * ((signed int) mthing->angle / 45);
switch (an)
{
- case -4096:
+ case 4096: // -4096:
xa = finetangent[2048]; // finecosine[-4096]
ya = finetangent[0]; // finesine[-4096]
break;
- case -3072:
+ case 5120: // -3072:
xa = finetangent[3072]; // finecosine[-3072]
ya = finetangent[1024]; // finesine[-3072]
break;
- case -2048:
+ case 6144: // -2048:
xa = finesine[0]; // finecosine[-2048]
ya = finetangent[2048]; // finesine[-2048]
break;
- case -1024:
+ case 7168: // -1024:
xa = finesine[1024]; // finecosine[-1024]
ya = finetangent[3072]; // finesine[-1024]
break;
@@ -1195,7 +1195,6 @@ G_CheckSpot
case 1024:
case 2048:
case 3072:
- case 4096:
xa = finecosine[an];
ya = finesine[an];
break;
--
2.5.0

View file

@ -1,46 +0,0 @@
From c6e66393ba5ed91b02f0bfbf7367771ce7ba819c Mon Sep 17 00:00:00 2001
From: Simon Howard <fraggle@soulsphere.org>
Date: Sun, 12 Jul 2015 02:52:57 -0400
Subject: [PATCH 06/13] osx: Add CFBundleIdentifier to Info.plist.
The preferences for the OS X launcher are currently stored in a file
ambiguously named "launcher.plist" that could conflict with any other
app on the system that chose to use the same moniker. Use the more
specific identifier of org.chocolate-doom.launcher to avoid conflicts.
Also set NSHumanReadableCopyright so that we get more detail on the
"About" window in the launcher app.
This fixes #570. Thanks to Xeriphas1994 for the suggestion to tweak
the identifier.
---
pkg/osx/Info.plist.in | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/pkg/osx/Info.plist.in b/pkg/osx/Info.plist.in
index 5ea4f32..a648ed8 100644
--- a/pkg/osx/Info.plist.in
+++ b/pkg/osx/Info.plist.in
@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
+ <key>CFBundleIdentifier</key>
+ <string>org.chocolate-doom.launcher</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
@@ -26,6 +28,10 @@
<string>NSApplication</string>
<key>NSMainNibFile</key>
<string>launcher</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Copyright (C) 1993-2015, id Software and Raven Software, Simon Howard, James Haley, Samuel Villarreal and other contributors.
+
+Licensed under the GNU GPL v2.</string>
<!-- file associations: -->
--
2.5.0

View file

@ -1,27 +0,0 @@
From 750aa95aad7d924b879dce60aa8abdd9c281af6e Mon Sep 17 00:00:00 2001
From: linguica <github@andrewstine.org>
Date: Wed, 22 Jul 2015 11:06:50 -0700
Subject: [PATCH 07/13] Added deh_bexstr.c to MSVC project
---
msvc/doom.vcproj | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/msvc/doom.vcproj b/msvc/doom.vcproj
index 7f98d3a..7446ede 100644
--- a/msvc/doom.vcproj
+++ b/msvc/doom.vcproj
@@ -859,6 +859,10 @@
>
</File>
<File
+ RelativePath="..\src\doom\deh_bexstr.c"
+ >
+ </File>
+ <File
RelativePath="..\src\doom\deh_cheat.c"
>
</File>
--
2.5.0

View file

@ -1,55 +0,0 @@
From 1325cde4859ca54eed3e1da2c1d226ae96b62c00 Mon Sep 17 00:00:00 2001
From: linguica <github@andrewstine.org>
Date: Thu, 23 Jul 2015 12:27:00 -0700
Subject: [PATCH 08/13] Fixed Heretic / Hexen vcproj files
Removed nonexistent files
---
msvc/heretic.vcproj | 4 ----
msvc/hexen.vcproj | 8 --------
2 files changed, 12 deletions(-)
diff --git a/msvc/heretic.vcproj b/msvc/heretic.vcproj
index 3b80ce3..b3e150c 100644
--- a/msvc/heretic.vcproj
+++ b/msvc/heretic.vcproj
@@ -469,10 +469,6 @@
>
</File>
<File
- RelativePath="..\src\heretic\i_sound.c"
- >
- </File>
- <File
RelativePath="..\src\heretic\in_lude.c"
>
</File>
diff --git a/msvc/hexen.vcproj b/msvc/hexen.vcproj
index 1b1e3b4..5c2d201 100644
--- a/msvc/hexen.vcproj
+++ b/msvc/hexen.vcproj
@@ -426,10 +426,6 @@
>
</File>
<File
- RelativePath="..\src\hexen\i_sound.c"
- >
- </File>
- <File
RelativePath="..\src\hexen\in_lude.c"
>
</File>
@@ -438,10 +434,6 @@
>
</File>
<File
- RelativePath="..\src\hexen\m_misc.c"
- >
- </File>
- <File
RelativePath="..\src\hexen\m_random.c"
>
</File>
--
2.5.0

View file

@ -1,81 +0,0 @@
From 2da2ddd3777ee5ab35b197786677eb3e0df27030 Mon Sep 17 00:00:00 2001
From: Simon Howard <fraggle@soulsphere.org>
Date: Sat, 15 Aug 2015 13:59:19 -0400
Subject: [PATCH 09/13] Remove duplicate variable definitions.
gametic and singletics are defined in d_loop.c, but there were still
some duplicate definitions of these variables left over from before
the game code was factored out.
This fixed #561 (thanks edward-san).
---
src/heretic/d_main.c | 1 -
src/heretic/g_game.c | 1 -
src/hexen/g_game.c | 1 -
src/hexen/h2_main.c | 1 -
src/strife/g_game.c | 1 -
5 files changed, 5 deletions(-)
diff --git a/src/heretic/d_main.c b/src/heretic/d_main.c
index beb876c..6521aff 100644
--- a/src/heretic/d_main.c
+++ b/src/heretic/d_main.c
@@ -62,7 +62,6 @@ boolean respawnparm; // checkparm of -respawn
boolean debugmode; // checkparm of -debug
boolean ravpic; // checkparm of -ravpic
boolean cdrom; // true if cd-rom mode active
-boolean singletics; // debug flag to cancel adaptiveness
boolean noartiskip; // whether shift-enter skips an artifact
skill_t startskill;
diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index 1154925..6ad3860 100644
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -102,7 +102,6 @@ player_t players[MAXPLAYERS];
int consoleplayer; // player taking events and displaying
int displayplayer; // view being displayed
-int gametic;
int levelstarttic; // gametic at level start
int totalkills, totalitems, totalsecret; // for intermission
diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c
index e0a7afa..fd72d44 100644
--- a/src/hexen/g_game.c
+++ b/src/hexen/g_game.c
@@ -88,7 +88,6 @@ int RebornPosition;
int consoleplayer; // player taking events and displaying
int displayplayer; // view being displayed
-int gametic;
int levelstarttic; // gametic at level start
char demoname[32];
diff --git a/src/hexen/h2_main.c b/src/hexen/h2_main.c
index 1e60c84..47c5e28 100644
--- a/src/hexen/h2_main.c
+++ b/src/hexen/h2_main.c
@@ -103,7 +103,6 @@ boolean debugmode; // checkparm of -debug
boolean ravpic; // checkparm of -ravpic
boolean cdrom = false; // true if cd-rom mode active
boolean cmdfrag; // true if a CMD_FRAG packet should be sent out
-boolean singletics; // debug flag to cancel adaptiveness
boolean artiskip; // whether shift-enter skips an artifact
int maxzone = 0x800000; // Maximum allocated for zone heap (8meg default)
skill_t startskill;
diff --git a/src/strife/g_game.c b/src/strife/g_game.c
index 906d3c9..c12e856 100644
--- a/src/strife/g_game.c
+++ b/src/strife/g_game.c
@@ -124,7 +124,6 @@ boolean turbodetected[MAXPLAYERS];
int consoleplayer; // player taking events and displaying
int displayplayer; // view being displayed
-int gametic;
int levelstarttic; // gametic at level start
int totalkills, /*totalitems,*/ totalsecret; // for intermission
--
2.5.0

View file

@ -1,24 +0,0 @@
From 525a7b0d071b146221498a13275c5db206a437e3 Mon Sep 17 00:00:00 2001
From: Mike Swanson <mikeonthecomputer@gmail.com>
Date: Fri, 14 Aug 2015 00:42:31 -0700
Subject: [PATCH 10/13] setup-manifest: Add compatibility GUID for Windows 10
---
src/setup/setup-manifest.xml.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/setup/setup-manifest.xml.in b/src/setup/setup-manifest.xml.in
index 7db56e8..111ad0f 100644
--- a/src/setup/setup-manifest.xml.in
+++ b/src/setup/setup-manifest.xml.in
@@ -32,6 +32,7 @@
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <!-- Vista -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <!-- 8 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <!-- 8.1 -->
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> <!-- 10 -->
</application>
</compatibility>
--
2.5.0

View file

@ -1,30 +0,0 @@
From 87db726b9a9ae61caf2ff167450625ce8f4076c3 Mon Sep 17 00:00:00 2001
From: Fabian Greffrath <fabian@greffrath.com>
Date: Mon, 24 Aug 2015 19:14:05 +0200
Subject: [PATCH 11/13] Apply gcc_struct tag to packed structs
GCC fails to properly pack structs although they are tagged with
__attribute__((__packed__)) if called with -mms-bitfields which has
become the default on Windows at some point:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991
---
src/doomtype.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/doomtype.h b/src/doomtype.h
index 10820c1..5377c8c 100644
--- a/src/doomtype.h
+++ b/src/doomtype.h
@@ -51,7 +51,7 @@
//
#ifdef __GNUC__
-#define PACKEDATTR __attribute__((packed))
+#define PACKEDATTR __attribute__((packed,gcc_struct))
#else
#define PACKEDATTR
#endif
--
2.5.0

View file

@ -1,210 +0,0 @@
From 69faefcab4f8ac6599f47173b9a0eba80aaa10a6 Mon Sep 17 00:00:00 2001
From: Simon Howard <fraggle@soulsphere.org>
Date: Sun, 23 Aug 2015 16:08:58 -0400
Subject: [PATCH 12/13] Make IWAD search paths compliant with XDG spec.
The XDG Base Directory Specification defines standard directories
that are searched for data files via the XDG_DATA_HOME and
XDG_DATA_DIRS environment variables:
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
To make Chocolate Doom a good citizen, use these directories to
determine some of the locations in which to look for IWAD files. This
includes /usr/share/games/doom, which is absorbed under the default
value of the XDG_DATA_DIRS variable. We also now support the alternative
~/.local/share/games/doom as a user-writeable path in the user's home
directory that doesn't require root privileges.
This is part of #597 (thanks to @chungy for the suggestion).
---
src/d_iwad.c | 128 ++++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 82 insertions(+), 46 deletions(-)
diff --git a/src/d_iwad.c b/src/d_iwad.c
index 2d6460b..3777bab 100644
--- a/src/d_iwad.c
+++ b/src/d_iwad.c
@@ -509,55 +509,96 @@ static GameMission_t IdentifyIWADByName(char *name, int mask)
return mission;
}
-//
-// Add directories from the list in the DOOMWADPATH environment variable.
-//
-
-static void AddDoomWadPath(void)
+// Add IWAD directories parsed from splitting a path string containing
+// paths separated by PATH_SEPARATOR. 'suffix' is a string to concatenate
+// to the end of the paths before adding them.
+static void AddIWADPath(char *path, char *suffix)
{
- char *doomwadpath;
- char *p;
-
- // Check the DOOMWADPATH environment variable.
-
- doomwadpath = getenv("DOOMWADPATH");
-
- if (doomwadpath == NULL)
- {
- return;
- }
+ char *left, *p;
- doomwadpath = M_StringDuplicate(doomwadpath);
-
- // Add the initial directory
-
- AddIWADDir(doomwadpath);
+ path = M_StringDuplicate(path);
// Split into individual dirs within the list.
-
- p = doomwadpath;
+ left = path;
for (;;)
{
- p = strchr(p, PATH_SEPARATOR);
-
+ p = strchr(left, PATH_SEPARATOR);
if (p != NULL)
{
- // Break at the separator and store the right hand side
+ // Break at the separator and use the left hand side
// as another iwad dir
-
*p = '\0';
- p += 1;
- AddIWADDir(p);
+ AddIWADDir(M_StringJoin(left, suffix, NULL));
+ left = p + 1;
}
else
{
break;
}
}
+
+ AddIWADDir(M_StringJoin(left, suffix, NULL));
+
+ free(path);
}
+// Add standard directories where IWADs are located on Unix systems.
+// To respect the freedesktop.org specification we support overriding
+// using standard environment variables. See the XDG Base Directory
+// Specification:
+// <http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>
+static void AddXdgDirs(void)
+{
+ char *env, *tmp_env;
+
+ // Quote:
+ // > $XDG_DATA_HOME defines the base directory relative to which
+ // > user specific data files should be stored. If $XDG_DATA_HOME
+ // > is either not set or empty, a default equal to
+ // > $HOME/.local/share should be used.
+ env = getenv("XDG_DATA_HOME");
+ tmp_env = NULL;
+
+ if (env == NULL)
+ {
+ char *homedir = getenv("HOME");
+ if (homedir == NULL)
+ {
+ homedir = "/";
+ }
+
+ tmp_env = M_StringJoin(homedir, "/.local/share", NULL);
+ env = tmp_env;
+ }
+
+ // We support $XDG_DATA_HOME/games/doom (which will usually be
+ // ~/.local/share/games/doom) as a user-writeable extension to
+ // the usual /usr/share/games/doom location.
+ AddIWADDir(M_StringJoin(env, "/games/doom", NULL));
+ free(tmp_env);
+
+ // Quote:
+ // > $XDG_DATA_DIRS defines the preference-ordered set of base
+ // > directories to search for data files in addition to the
+ // > $XDG_DATA_HOME base directory. The directories in $XDG_DATA_DIRS
+ // > should be seperated with a colon ':'.
+ // >
+ // > If $XDG_DATA_DIRS is either not set or empty, a value equal to
+ // > /usr/local/share/:/usr/share/ should be used.
+ env = getenv("XDG_DATA_DIRS");
+ if (env == NULL)
+ {
+ // (Trailing / omitted from paths, as it is added below)
+ env = "/usr/local/share:/usr/share";
+ }
+
+ // The "standard" location for IWADs on Unix that is supported by most
+ // source ports is /usr/share/games/doom - we support this through the
+ // XDG_DATA_DIRS mechanism, through which it can be overridden.
+ AddIWADPath(env, "/games/doom");
+}
//
// Build a list of IWAD files
@@ -565,7 +606,7 @@ static void AddDoomWadPath(void)
static void BuildIWADDirList(void)
{
- char *doomwaddir;
+ char *env;
if (iwad_dirs_built)
{
@@ -573,21 +614,21 @@ static void BuildIWADDirList(void)
}
// Look in the current directory. Doom always does this.
-
AddIWADDir(".");
// Add DOOMWADDIR if it is in the environment
-
- doomwaddir = getenv("DOOMWADDIR");
-
- if (doomwaddir != NULL)
+ env = getenv("DOOMWADDIR");
+ if (env != NULL)
{
- AddIWADDir(doomwaddir);
- }
-
- // Add dirs from DOOMWADPATH
+ AddIWADDir(env);
+ }
- AddDoomWadPath();
+ // Add dirs from DOOMWADPATH:
+ env = getenv("DOOMWADPATH");
+ if (env != NULL)
+ {
+ AddIWADPath(env, "");
+ }
#ifdef _WIN32
@@ -603,12 +644,7 @@ static void BuildIWADDirList(void)
CheckSteamGUSPatches();
#else
-
- // Standard places where IWAD files are installed under Unix.
-
- AddIWADDir("/usr/share/games/doom");
- AddIWADDir("/usr/local/share/games/doom");
-
+ AddXdgDirs();
#endif
// Don't run this function again.
--
2.5.0

View file

@ -1,156 +0,0 @@
From 5240ddc977d2f19e969a6683142e325595eec62c Mon Sep 17 00:00:00 2001
From: Simon Howard <fraggle@soulsphere.org>
Date: Sun, 23 Aug 2015 16:12:54 -0400
Subject: [PATCH 13/13] man: Add documentation for IWAD search paths.
We now search in a bunch of different directories in order to find
IWAD files to use to play with, and the logic is a bit complicated.
Add some hopefully friendly documentation to explain where people
can put their IWAD files to play with.
Part of #597.
---
man/Makefile.am | 1 +
man/doom.template | 2 ++
man/environ.man | 5 +----
man/heretic.template | 2 ++
man/hexen.template | 2 ++
man/iwad_paths.man | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
man/strife.template | 2 ++
7 files changed, 58 insertions(+), 4 deletions(-)
create mode 100644 man/iwad_paths.man
diff --git a/man/Makefile.am b/man/Makefile.am
index 32f275e..f93e8ed 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,4 +1,5 @@
MANPAGE_GEN_FILES = environ.man \
+ iwad_paths.man \
doom.template \
heretic.template \
hexen.template \
diff --git a/man/doom.template b/man/doom.template
index b587d15..d478815 100644
--- a/man/doom.template
+++ b/man/doom.template
@@ -10,6 +10,8 @@ Chocolate Doom is a port of Id Software's 1993 game "Doom" that is designed
to behave as similar to the original DOS version of Doom as is possible.
.br
@content
+.SH IWAD SEARCH PATHS
+@include iwad_paths.man
.SH ENVIRONMENT
This section describes environment variables that control Chocolate Doom's
behavior.
diff --git a/man/environ.man b/man/environ.man
index 171b25d..ef8de02 100644
--- a/man/environ.man
+++ b/man/environ.man
@@ -1,9 +1,6 @@
.TP
\fBDOOMWADDIR\fR, \fBDOOMWADPATH\fR
-These environment variables provide paths to search for Doom .WAD files when
-looking for a game IWAD file or a PWAD file specified with the `\-file' option.
-\fBDOOMWADDIR\fR specifies a single path in which to look for WAD files,
-while \fBDOOMWWADPATH\fR specifies a colon-separated list of paths to search.
+See the section, \fBIWAD SEARCH PATHS\fR above.
.TP
\fBPCSOUND_DRIVER\fR
When running in PC speaker sound effect mode, this environment variable
diff --git a/man/heretic.template b/man/heretic.template
index e9afa96..8fe2e73 100644
--- a/man/heretic.template
+++ b/man/heretic.template
@@ -11,6 +11,8 @@ aims to behave as similar to the original DOS version of Heretic as
possible.
.br
@content
+.SH IWAD SEARCH PATHS
+@include iwad_paths.man
.SH ENVIRONMENT
This section describes environment variables that control Chocolate Heretic's
behavior.
diff --git a/man/hexen.template b/man/hexen.template
index 4c0524a..f5619ad 100644
--- a/man/hexen.template
+++ b/man/hexen.template
@@ -11,6 +11,8 @@ aims to behave as similar to the original DOS version of Hexen as
possible.
.br
@content
+.SH IWAD SEARCH PATHS
+@include iwad_paths.man
.SH ENVIRONMENT
This section describes environment variables that control Chocolate Hexen's
behavior.
diff --git a/man/iwad_paths.man b/man/iwad_paths.man
new file mode 100644
index 0000000..9805815
--- /dev/null
+++ b/man/iwad_paths.man
@@ -0,0 +1,48 @@
+To play, an IWAD file is needed. This is a large file containing all of the
+levels, graphics, sound effects, music and other material that make up the
+game. IWAD files are named according to the game; the standard names are:
+.TP
+\fBdoom.wad, doom1.wad, doom2.wad, tnt.wad, plutonia.wad\fR
+Doom, Doom II, Final Doom
+.TP
+\fBheretic.wad, heretic1.wad, hexen.wad, strife1.wad\fR
+Heretic, Hexen and Strife (commercial Doom engine games).
+.TP
+\fBhacx.wad, chex.wad\fR
+Hacx and Chex Quest - more obscure games based on the Doom engine.
+.TP
+\fBfreedm.wad, freedoom1.wad, freedoom2.wad\fR
+The Freedoom open content IWAD files.
+.LP
+The following directory paths are searched in order to find an IWAD:
+.TP
+\fBCurrent working directory\fR
+Any IWAD files found in the current working directory will be used in
+preference to IWADs found in any other directories.
+.TP
+\fBDOOMWADDIR\fR
+This environment variable can be set to contain a path to a single directory
+in which to look for IWAD files. This environment variable is supported by
+most Doom source ports.
+.TP
+\fBDOOMWADPATH\fR
+This environment variable, if set, can contain a colon-separated list of
+directories in which to look for IWAD files, or alternatively full paths to
+specific IWAD files.
+.TP
+\fB$HOME/.local/share/games/doom\fR
+Writeable directory in the user's home directory. The path can be overridden
+using the \fBXDG_DATA_HOME\fR environment variable (see the XDG Base Directory
+Specification).
+.TP
+\fB/usr/local/share/games/doom, /usr/share/games/doom\fR
+System-wide locations that can be accessed by all users. The path
+\fB/usr/share/games/doom\fR is a standard path that is supported by most
+Doom source ports. These paths can be overridden using the \fBXDG_DATA_DIRS\fR
+environment variable (see the XDG Base Directory Specification).
+.LP
+The above can be overridden on a one-time basis by using the \fB\-iwad\fR
+command line parameter to provide the path to an IWAD file to use. This
+parameter can also be used to specify the name of a particular IWAD to use
+from one of the above paths. For example, '\fB-iwad doom.wad\fR' will search
+the above paths for the file \fBdoom.wad\fR to use.
diff --git a/man/strife.template b/man/strife.template
index ddcc12f..3d5614c 100644
--- a/man/strife.template
+++ b/man/strife.template
@@ -13,6 +13,8 @@ of the original programmers of the game (see the section HISTORY below).
@content
+.SH IWAD SEARCH PATHS
+@include iwad_paths.man
.SH ENVIRONMENT
This section describes environment variables that control Chocolate Strife's
behavior.
--
2.5.0

View file

@ -3,41 +3,15 @@
pkgname=(chocolate-{doom,heretic,hexen,strife,common})
pkgbase=${pkgname[0]}
pkgdesc="Historically-accurate Doom, Heretic, Hexen, and Strife ports."
pkgver=2.2.0
pkgrel=3
pkgver=2.2.1
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.chocolate-doom.org/"
license=('GPL2')
depends=('libsamplerate' 'sdl_mixer' 'sdl_net')
makedepends=('python')
source=(http://chocolate-doom.org/downloads/${pkgver}/${pkgbase}-${pkgver}.tar.gz
0001-setup-Fix-help-URL-for-level-warp-menu.patch
0002-Update-README.Strife.patch
0003-setup.desktop-Add-a-missing-semicolon-to-Categories.patch
0004-Add-Keywords-to-the-setup.desktop-file.patch
0005-doom-Avoid-overflow-for-spawn-angle-calculation.patch
0006-osx-Add-CFBundleIdentifier-to-Info.plist.patch
0007-Added-deh_bexstr.c-to-MSVC-project.patch
0008-Fixed-Heretic-Hexen-vcproj-files.patch
0009-Remove-duplicate-variable-definitions.patch
0010-setup-manifest-Add-compatibility-GUID-for-Windows-10.patch
0011-Apply-gcc_struct-tag-to-packed-structs.patch
0012-Make-IWAD-search-paths-compliant-with-XDG-spec.patch
0013-man-Add-documentation-for-IWAD-search-paths.patch)
sha256sums=('9fa9c56e72f8a04adf8f0800141192e9bafd38c9e424f70942ece6e515570173'
'172b7df49de7c233cf2720d74341e606dd896bad396a3490e99b13de48184347'
'dac8bb2e341e33b83f05c5475144b482f724070df80f6b83dc3feb7d2224b8d0'
'8d2bd8b1db28c7ec2c0ec05e4dfadfbf13f26e02a772d59523e76b2cb957228a'
'fa3a2b6aa1c9ac0a38a1969ac7ada9e506654929ab0f976ebb87798943561916'
'dbb1b3bb84befafbc4be305515c3d73943ccd93d13a65f5fa33dfc5811187d2b'
'c3bee8e2b7c7edeb1b305b4d892aa75ac44e661d21b91644b0c356d388976c8c'
'46a7327c4fd5e60f3969fa2677e815cb306f9d443033d52a6e9d007bcfab1aeb'
'ccb421f20e33b328b413601e9dd56553481e96810347fb523531dfcd4a5ca01a'
'859b29c78932f97cad9c8c77fbd333664b9f01e1d3c3881ebb1e16769a60d04f'
'7886a2df4967b3db0032bede909cccfe14a302cb51b1a4005b2a877231e4ab46'
'33f2b99d847060e13ca3e8996a178731f8652660e450121aad0f34b6af7225f6'
'99c57dc6264cc0ff6e0964b34f5457b1208d369eef601756313e886fcb92f85c'
'8588637c1e09ae2eedf097bc4350052e80eed50bbfbbb814412005ee2b208287')
source=(http://chocolate-doom.org/downloads/${pkgver}/${pkgbase}-${pkgver}.tar.gz)
sha256sums=('ad11e2871667c6fa0658abf2dcba0cd9b26fbd651ee8df55adfdc18ad8fd674a')
prepare() {
cd "${pkgbase}-${pkgver}"
@ -77,7 +51,8 @@ package_chocolate-common() {
cd "${pkgdir}"/usr/share
rm -rf doc man/man5
rm -rf applications/chocolate-{doom,heretic,hexen,strife}.desktop \
applications/screensavers
applications/screensavers
rm -rf appdata
cd man/man6
rm -f chocolate-{doom,heretic,hexen,strife}{,-setup}.6
}
@ -86,8 +61,8 @@ package_chocolate-doom() {
pkgdesc="Doom port accurately reproducing the original DOS EXEs."
depends=(${depends[@]} 'chocolate-common')
optdepends=('freedm: Free deathmatch game'
'freedoom1: Free Ultimate Doom-compatible game (not vanilla compatible, but useful for mods)'
'freedoom2: Free Doom II/Final Doom-compatible game (not vanilla compatible, but useful for mods)')
'freedoom1: Free Ultimate Doom-compatible game (not vanilla compatible, but useful for mods)'
'freedoom2: Free Doom II/Final Doom-compatible game (not vanilla compatible, but useful for mods)')
cd "${pkgbase}-${pkgver}"
make DESTDIR="${pkgdir}" install
@ -99,8 +74,9 @@ package_chocolate-doom() {
cd "${pkgdir}"/usr/share
rm -rf doc/chocolate-{heretic,hexen,strife}
rm -rf applications/chocolate-{setup,heretic,hexen,strife}.desktop icons
rm -f appdata/chocolate-{heretic,hexen,strife}.appdata.xml
rm -f man/man?/chocolate-{heretic,hexen,strife,setup,server}* \
man/man5/{heretic,hexen,strife}.cfg*
man/man5/{heretic,hexen,strife}.cfg*
}
package_chocolate-heretic() {
@ -118,9 +94,10 @@ package_chocolate-heretic() {
cd "${pkgdir}"/usr/share
rm -rf doc/chocolate-{doom,hexen,strife}
rm -rf applications/chocolate-{setup,doom,hexen,strife}.desktop \
applications/screensavers icons
applications/screensavers icons
rm -f appdata/chocolate-{doom,hexen,strife}.appdata.xml
rm -f man/man?/chocolate-{doom,hexen,strife,setup,server}* \
man/man5/{default,hexen,strife}.cfg*
man/man5/{default,hexen,strife}.cfg*
}
package_chocolate-hexen() {
@ -137,9 +114,10 @@ package_chocolate-hexen() {
cd "${pkgdir}"/usr/share
rm -rf doc/chocolate-{doom,heretic,strife}
rm -rf applications/chocolate-{setup,doom,heretic,strife}.desktop \
applications/screensavers icons
applications/screensavers icons
rm -f appdata/chocolate-{doom,heretic,strife}.appdata.xml
rm -f man/man?/chocolate-{doom,heretic,strife,setup,server}* \
man/man5/{default,heretic,strife}.cfg*
man/man5/{default,heretic,strife}.cfg*
}
package_chocolate-strife() {
@ -156,7 +134,8 @@ package_chocolate-strife() {
cd "${pkgdir}"/usr/share
rm -rf doc/chocolate-{doom,heretic,hexen}
rm -rf applications/chocolate-{setup,doom,heretic,hexen}.desktop \
applications/screensavers icons
applications/screensavers icons
rm -f appdata/chocolate-{doom,heretic,hexen}.appdata.xml
rm -f man/man?/chocolate-{doom,heretic,hexen,setup,server}* \
man/man5/{default,heretic,hexen}.cfg*
man/man5/{default,heretic,hexen}.cfg*
}

View file

@ -1,8 +1,8 @@
# Maintainer: Dave Reisner <d@falconindy.com>
pkgname=cower
pkgver=13
pkgrel=1
pkgver=14
pkgrel=2
pkgdesc="A simple AUR agent with a pretentious name"
arch=('i686' 'x86_64')
url="http://github.com/falconindy/cower"
@ -11,7 +11,7 @@ depends=('curl' 'openssl' 'pacman' 'yajl')
makedepends=('perl')
source=("http://code.falconindy.com/archive/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig})
validpgpkeys=('487EACC08557AD082088DABA1EB2638FF56C0C53') # Dave Reisner
md5sums=('741c05e6865dafc5fff72a186ee5daf9'
md5sums=('0e09bb69078ab5134ddaf5e7ccb0c414'
'SKIP')
build() {

View file

@ -1,32 +1,30 @@
# Maintainer: Jason St. John <jstjohn .. purdue . edu>
# Maintainer: Brian Bidulock <bidulock@openss7.org>
# Contributor: Jason St. John <jstjohn .. purdue . edu>
_perlmod=Config-General
_modnamespace=Config
pkgname=perl-config-general
pkgver=2.56
pkgrel=2
pkgver=2.58
pkgrel=1
pkgdesc="Config::General - Generic Config Module"
arch=('any')
url="http://search.cpan.org/dist/${_perlmod}"
license=('GPL' 'PerlArtistic')
options=('!emptydirs')
source=("http://cpan.org/modules/by-module/${_modnamespace}/${_perlmod}-${pkgver}.tar.gz")
sha512sums=('0439d690e58fb30cafd18e3c51fb1c6226cb20017fcd260959ad0210006d0e98a32a939d314b384e5c62871c0a59400a678099e3d703d9e2ed859de20292de9a')
sha512sums=('7a2720ca4ceb7b1cbb4556e08b1cdd16a5a721609afa7ec474803355d29aa292ad09af1ba097a57e6560413486236ac94c615268d22c0fe2923c92e7e0ddf4b7')
build() {
cd "${_perlmod}-${pkgver}"
# Install module in vendor directories.
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
cd "${_perlmod}-${pkgver}"
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
check() {
cd "${_perlmod}-${pkgver}"
make test
cd "${_perlmod}-${pkgver}"
make test
}
package() {
cd "${_perlmod}-${pkgver}"
make install DESTDIR="${pkgdir}"
cd "${_perlmod}-${pkgver}"
make install DESTDIR="${pkgdir}"
}