Compare commits
1 commit
rawhide
...
epel8-play
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81fd73519f |
6 changed files with 1 additions and 306 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1,3 +0,0 @@
|
|||
/zork-1.0.2.tar.gz
|
||||
/zork-1.0.3.tar.gz
|
||||
/zork-1.1.0.tar.gz
|
||||
133
README.md
133
README.md
|
|
@ -1,133 +0,0 @@
|
|||
```
|
||||
Welcome to Dungeon. This version created 11-MAR-91.
|
||||
You are in an open field west of a big white house with a boarded front door.
|
||||
There is a small mailbox here.
|
||||
>
|
||||
```
|
||||
|
||||
# DUNGEON (AKA Zork)
|
||||
|
||||
**Public Domain Source Code for the Mainframe Game "Dungeon"**
|
||||
|
||||
This repository contains the Public Domain source code for *Dungeon*, the mainframe version of the game that served as the precursor to Infocom's commercial *Zork* trilogy.
|
||||
This codebase is a C port derived from the FORTRAN source of **Zork 2.6**.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
### Fedora Linux
|
||||
|
||||
This package is available in the official Fedora Linux repositories.
|
||||
You can install it directly via the command-line:
|
||||
|
||||
```bash
|
||||
sudo dnf install zork
|
||||
```
|
||||
|
||||
### Building from Source
|
||||
|
||||
To build the game from the source files in this repository:
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## Modern Maintainership & Philosophy (2013-12 to present)
|
||||
|
||||
**Current Maintainers:**
|
||||
|
||||
* Shane Thomas ([@devshane](https://github.com/devshane))
|
||||
* Jan Drögehoff ([@Jan200101](https://github.com/Jan200101))
|
||||
* Justin Wheeler ([@justwheel](https://github.com/justwheel))
|
||||
|
||||
**Project Philosophy:**
|
||||
|
||||
This project utilizes the FORTRAN source of *Dungeon* (Zork 2.6) as its foundation.
|
||||
The primary design goal is code preservation.
|
||||
We aim to maintain the logic and behavior of the game as accurately as possible while updating the codebase to compile and run on modern C compilers and operating systems.
|
||||
|
||||
|
||||
## History of the Implementation
|
||||
|
||||
This version of *Dungeon* has been modified from FORTRAN to C.
|
||||
The historical lineage of this code is as follows:
|
||||
|
||||
1. **Original Development (MDL)**:
|
||||
The original game (initially titled *Zork*) was written in the MDL programming language (MUDDLE) at the MIT Laboratory for Computer Science.
|
||||
2. **PDP-11 Translation (FORTRAN)**:
|
||||
Bob Supnik translated the MDL source into DEC FORTRAN for the PDP-11, renaming the game *Dungeon*.
|
||||
3. **UNIX Port (f77)**:
|
||||
The FORTRAN version was subsequently ported to `f77` for UNIX systems.
|
||||
4. **C Translation**:
|
||||
The C translation was generated from the `f77` version using `f2c`.
|
||||
`f2c` is a FORTRAN-to-C translator written by David Gay (AT&T Bell Labs), Stu Feldman (Bellcore), Mark Maimone (Carnegie-Mellon University), and Norm Schryer (AT&T Bell Labs).
|
||||
|
||||
*Note on Zork I:*
|
||||
While often conflated, *Dungeon* differs from *Zork I*.
|
||||
*Zork I* is a microcomputer adaptation comprising approximately one-third of the original mainframe game's map and puzzles.
|
||||
*Dungeon* represents the more complete, albeit earlier, mainframe experience.
|
||||
|
||||
### I. From original game documentation
|
||||
|
||||
To: Dungeon Players
|
||||
From: "The Translator"
|
||||
Subj: Game Information
|
||||
Date: 8-OCT-80
|
||||
|
||||
|
||||
This is the first (and last) source release of the PDP-11 version of
|
||||
Dungeon.
|
||||
|
||||
Please note that Dungeon has been superceded by the game ZORK(tm).
|
||||
The following is an extract from the new product announcement for
|
||||
ZORK in the September, 1980 issue of the RT-11 SIG newsletter:
|
||||
|
||||
"'ZORK: The Great Underground Empire - Part I' ...was developed
|
||||
by the original authors based on their ZORK (Dungeon) game for
|
||||
the PDP-10. It features a greatly improved parser; command
|
||||
input and transcript output files; SAVEs to any device and
|
||||
file name; and adaptation to different terminal types,
|
||||
including a status line on VT100s. Note: this is not the
|
||||
FORTRAN version that has been available through DECUS. This
|
||||
version has been completely rewritten to run efficiently on
|
||||
small machines - up to 10 times as fast as the DECUS version.
|
||||
|
||||
...ZORK runs under RT-ll, HT-ll, or RSTS/E and requires as
|
||||
little as 20K words of memory and a single floppy disk drive.
|
||||
The game package, consisting of an RX01-format diskette and
|
||||
an instruction booklet, is available from Infocom, Inc.,
|
||||
P.O. Box 120, Kendall Station, Cambridge, Ma. 02142."
|
||||
|
||||
ZORK(tm) is a trademark of Infocom, Inc. It is available for several
|
||||
popular personal computers as well as for the PDP-ll.
|
||||
|
||||
### II. DEC FORTRAN to f77 Conversion (1981-11-17)
|
||||
|
||||
The conversion from DEC FORTRAN to Unix f77 was done by **Randy Dietrich, Lynn Cochran and Sig Peterson**.
|
||||
Much hacking was done to get it to fit in the limited address space of a PDP-11/44 (split I/D).
|
||||
Suffice it to say that by leaving out the debugging package and not linking in the f77 i/o library, they managed to get it to run.
|
||||
|
||||
### III. PDP to VAX (1985-12)
|
||||
|
||||
Based on the work of Randy, Lynn and Sig, **Bill Randle** folded in the full save/restore functions and the game debugging package (gdt) into the PDP version to create a Vax/Unix version.
|
||||
This version also uses f77 i/o, thus eliminating the extra speak and listen processes needed on the PDP.
|
||||
|
||||
### IV. Cleanup I (1986-12-11)
|
||||
|
||||
**John Gilmore** (hoptoad!gnu) cleaned up the source files by moving most of the common declarations into include files and added comments from the original (_FORTRAN or MDL?_) source.
|
||||
His efforts are greatly appreciated.
|
||||
|
||||
### V. Cleanup II (1987-02-09)
|
||||
|
||||
**Bill Randle** added the PDP dependencies back into the Vax source files with `#ifdef`s in order to have just one set of sources.
|
||||
Previously, there were two sets of source: one for the PDP and one for the Vax.
|
||||
In addition, a shell escape of the form `!cmd` was added and the wizard can enter the gdt without having to recompile the source.
|
||||
Finally, a man page was generated, based on the `dungeon.doc` file.
|
||||
|
||||
### VI. f77 to C (1991-03-11)
|
||||
|
||||
**Ian Lance Taylor** used the `f2c` translator to generate C source code.
|
||||
The resulting code was modified to remove the FORTRAN I/O library, to add simple more processing, and to change the format of the database file.
|
||||
**Andre Srinivasan** helped test it.
|
||||
**Jonathan Mark** made it work under MS-DOS and Microsoft C.
|
||||
1
dead.package
Normal file
1
dead.package
Normal file
|
|
@ -0,0 +1 @@
|
|||
epel8-playground decommissioned : https://pagure.io/epel/issue/136
|
||||
1
sources
1
sources
|
|
@ -1 +0,0 @@
|
|||
SHA512 (zork-1.1.0.tar.gz) = e72082b4e2e3ff8a68588ce19409fa132921e16e4d15cfef84c9471b3ac989a4d1c251bf2518ddfa7770b803b7dfc40c264377d5a1310688551413b73471cb3d
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
From ce241188ca387a42c3ab09454c881acfe30c955e Mon Sep 17 00:00:00 2001
|
||||
From: "Justin Wheeler" <jwheel@fedoraproject.org>
|
||||
Date: Tue, 30 Apr 2019 15:36:07 -0400
|
||||
Subject: [PATCH 1/1] Makefile: Change compile options for Fedora RPM package
|
||||
|
||||
---
|
||||
Makefile | 6 +++---
|
||||
dinit.c | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -42,7 +42,7 @@
|
||||
# Uncomment the following line if you want to have access to the game
|
||||
# debugging tool. This is invoked by typing "gdt". It is not much
|
||||
# use except for debugging.
|
||||
-GDTFLAG = -DALLOW_GDT
|
||||
+# GDTFLAG = -DALLOW_GDT
|
||||
|
||||
# Compilation flags
|
||||
CFLAGS = -g #-static
|
||||
@@ -70,7 +70,7 @@
|
||||
$(CC) $(CFLAGS) -o zork $(OBJS) $(LDFLAGS) $(LIBS)
|
||||
|
||||
install: zork dtextc.dat
|
||||
- mkdir -p $(BINDIR) $(LIBDIR) $(MANDIR)/man6
|
||||
+ mkdir -p $(BINDIR) $(DATADIR) $(LIBDIR) $(MANDIR)/man6
|
||||
cp zork $(BINDIR)
|
||||
cp dtextc.dat $(DATADIR)
|
||||
cp dungeon.6 $(MANDIR)/man6/
|
||||
@@ -94,7 +94,7 @@
|
||||
$(CC) $(CFLAGS) $(GDTFLAG) -c local.c
|
||||
|
||||
supp.o: supp.c funcs.h vars.h
|
||||
- $(CC) $(CFLAGS) $(TERMFLAG) -c supp.c
|
||||
+ $(CC) $(CFLAGS) $(TERMFLAG) -c supp.c
|
||||
|
||||
actors.o: funcs.h vars.h
|
||||
ballop.o: funcs.h vars.h
|
||||
--- a/dinit.c
|
||||
+++ b/dinit.c
|
||||
@@ -24,7 +24,7 @@
|
||||
#define TEXTFILE "lib:dtextc.dat"
|
||||
#else /* ! __AMOS__ */
|
||||
#ifdef unix
|
||||
-#define TEXTFILE "/usr/games/lib/dunlib/dtextc.dat"
|
||||
+#define TEXTFILE "/usr/share/zork/dtextc.dat"
|
||||
#else /* ! unix */
|
||||
I need a definition for TEXTFILE
|
||||
#endif /* ! unix */
|
||||
--
|
||||
2.20.1
|
||||
|
||||
116
zork.spec
116
zork.spec
|
|
@ -1,116 +0,0 @@
|
|||
Name: zork
|
||||
Version: 1.1.0
|
||||
Release: %autorelease
|
||||
Summary: Public Domain original DUNGEON game (AKA, Zork)
|
||||
|
||||
License: LicenseRef-Fedora-Public-Domain
|
||||
URL: https://github.com/devshane/zork
|
||||
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
|
||||
Patch0: zork-tweak-makefile.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: make
|
||||
BuildRequires: ncurses-devel
|
||||
|
||||
|
||||
%description
|
||||
Public Domain Source Code for the Mainframe Game "Dungeon". This repository contains the Public Domain source code for
|
||||
Dungeon, the mainframe version of the game that served as the precursor to Infocom's commercial Zork trilogy. This
|
||||
codebase is a C port derived from the FORTRAN source of Zork 2.6.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
|
||||
%build
|
||||
%make_build \
|
||||
CFLAGS="%{optflags} -std=c17" \
|
||||
DATADIR="%{_datadir}/%{name}" \
|
||||
LDFLAGS="%{__global_ldflags}"
|
||||
|
||||
%install
|
||||
%make_install \
|
||||
BINDIR="%{buildroot}%{_bindir}" \
|
||||
DATADIR="%{buildroot}%{_datadir}/%{name}/" \
|
||||
LIBDIR="%{buildroot}%{_datadir}" \
|
||||
MANDIR="%{buildroot}%{_mandir}"
|
||||
echo ".so dungeon.6" > %{buildroot}%{_mandir}/man6/zork.6
|
||||
|
||||
|
||||
%files
|
||||
%doc history
|
||||
%doc README.md
|
||||
%license readme.txt
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/%{name}/dtextc.dat
|
||||
%{_mandir}/man6/dungeon.6.gz
|
||||
%{_mandir}/man6/zork.6*
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Jun 30 2026 Justin Wheeler <jwheel@fedoraproject.org> - 1.1.0-1
|
||||
- Update to v1.1.0
|
||||
- Upstream bug fixes: out-of-bounds array access, missing unistd.h header,
|
||||
localtime prototype, curses header preprocessor guard
|
||||
- Upstream build improvements: LDFLAGS support in Makefile
|
||||
- Migrate to %%autorelease
|
||||
- Remove unnecessary %%global _hardened_build 1 (default since F23)
|
||||
|
||||
* Sun Feb 22 2026 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.3-12
|
||||
- Fix FTBFS. Thanks @limb for the hotfix.
|
||||
- Upstream work ongoing for improved support with newer versions of the C programming language and compilers.
|
||||
|
||||
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Mar 02 2021 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.3-1
|
||||
- Fix reused integers from being optimized out.
|
||||
- Props to Jan Drögehoff (FAS: sentry) for sending this fix upstream to avoid carrying a Fedora-specific patch.
|
||||
- Remove grues.
|
||||
|
||||
* Wed Feb 17 2021 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-6
|
||||
- Remove compiler optimization flag to workaround segfault while upstream change is assessed
|
||||
|
||||
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.2-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Mar 03 2020 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-3
|
||||
- Add manpage alias for zork, to match binary executable
|
||||
- Add upstream 'history' file as a doc
|
||||
|
||||
* Tue Apr 30 2019 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-2
|
||||
- Use Fedora CFLAGS during compilation
|
||||
|
||||
* Mon Apr 29 2019 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-1
|
||||
- First zork package
|
||||
Loading…
Add table
Add a link
Reference in a new issue