Compare commits

..

1 commit

Author SHA1 Message Date
Troy Dawson
81fd73519f epel8-playground decommissioned : https://pagure.io/epel/issue/136 2022-01-31 18:19:00 -08:00
6 changed files with 1 additions and 306 deletions

3
.gitignore vendored
View file

@ -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
View file

@ -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
View file

@ -0,0 +1 @@
epel8-playground decommissioned : https://pagure.io/epel/issue/136

View file

@ -1 +0,0 @@
SHA512 (zork-1.1.0.tar.gz) = e72082b4e2e3ff8a68588ce19409fa132921e16e4d15cfef84c9471b3ac989a4d1c251bf2518ddfa7770b803b7dfc40c264377d5a1310688551413b73471cb3d

View file

@ -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
View file

@ -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