From 4a3d09dec687197e28ad2aacfc67903cced220f9 Mon Sep 17 00:00:00 2001 From: Lucian Langa Date: Sat, 9 Jan 2010 14:00:11 +0000 Subject: [PATCH 1/4] initial import --- .cvsignore | 1 + simh-3.8.0-gcc.patch | 15 +++++ simh-3.8.1-altair-segfault.patch | 12 ++++ simh-generate-tarball.sh | 13 ++++ simh.spec | 107 +++++++++++++++++++++++++++++++ sources | 1 + 6 files changed, 149 insertions(+) create mode 100644 simh-3.8.0-gcc.patch create mode 100644 simh-3.8.1-altair-segfault.patch create mode 100755 simh-generate-tarball.sh create mode 100644 simh.spec diff --git a/.cvsignore b/.cvsignore index e69de29..0ab4fad 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +simh-3.8.1-noroms.tar.gz diff --git a/simh-3.8.0-gcc.patch b/simh-3.8.0-gcc.patch new file mode 100644 index 0000000..8b5ba50 --- /dev/null +++ b/simh-3.8.0-gcc.patch @@ -0,0 +1,15 @@ +--- simh/makefile 2008-06-06 15:00:46.000000000 +0300 ++++ simh-mod/makefile 2008-12-24 11:39:05.000000000 +0200 +@@ -12,10 +12,10 @@ + OS_CCDEFS = -lrt -lm -D_GNU_SOURCE + endif + endif +- CC = gcc -std=c99 -U__STRICT_ANSI__ -g $(OS_CCDEFS) -I . ++ CC = gcc -std=gnu89 -U__STRICT_ANSI__ -g $(OS_CCDEFS) $(OPT) -I . + ifeq ($(USE_NETWORK),) + else +- NETWORK_OPT = -DUSE_NETWORK -isystem /usr/local/include /usr/local/lib/libpcap.a ++ NETWORK_OPT = -DUSE_NETWORK -lpcap + endif + else + #Win32 Environments diff --git a/simh-3.8.1-altair-segfault.patch b/simh-3.8.1-altair-segfault.patch new file mode 100644 index 0000000..cb04fa3 --- /dev/null +++ b/simh-3.8.1-altair-segfault.patch @@ -0,0 +1,12 @@ +diff -Naur simh-3.8.1/ALTAIR/altair_dsk.c simh-3.8.1-mod/ALTAIR/altair_dsk.c +--- simh-3.8.1/ALTAIR/altair_dsk.c 2005-08-26 21:47:22.000000000 +0300 ++++ simh-3.8.1-mod/ALTAIR/altair_dsk.c 2009-11-14 21:22:23.000000000 +0200 +@@ -325,6 +325,8 @@ + cur_sect[cur_disk]);*/ + pos = DSK_TRACSIZE * cur_track[cur_disk]; + pos += DSK_SECTSIZE * cur_sect[cur_disk]; ++ if ((uptr == NULL) || (uptr->fileref == NULL)) ++ return 0; + rtn = fseek(uptr -> fileref, pos, 0); + rtn = fread(dskbuf, 137, 1, uptr -> fileref); + cur_byte[cur_disk] = 1; diff --git a/simh-generate-tarball.sh b/simh-generate-tarball.sh new file mode 100755 index 0000000..eb9d7cd --- /dev/null +++ b/simh-generate-tarball.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +VERSION=$1 +MAJOR=${VERSION:0:1} +MINOR=${VERSION:2:1} +PATCH=${VERSION:4:1} + +unzip -o simhv$MAJOR$MINOR-$PATCH.zip -d simh-$VERSION +rm simh-$VERSION/VAX/ka655* +rm -Rf simh-$VERSION/Ibm1130 +sed -i -e "s/ ibm1130 / /" simh-$VERSION/makefile + +tar -czvf simh-$VERSION-noroms.tar.gz simh-$VERSION diff --git a/simh.spec b/simh.spec new file mode 100644 index 0000000..9489b84 --- /dev/null +++ b/simh.spec @@ -0,0 +1,107 @@ +Name: simh +Version: 3.8.1 +Release: 5%{?dist} +Summary: A highly portable, multi-system emulator + +Group: Applications/Emulators +#The licensing is mostly MIT, but there is also some GPL+ (literally, v1+) code +#in there, notably in AltairZ80/. +#(each target is compiled into its own binary, so only AltairZ80 is GPL+) +License: MIT and GPL+ + +URL: http://simh.trailing-edge.com/ +Source0: simh-%{version}-noroms.tar.gz +# we use +# this script to remove the roms binary and patented code before shipping it. +# Download the upstream tarball and invoke this script while in the +# tarball's directory: +# ./simh-generate-tarball.sh 3.8.1 +Source1: simh-generate-tarball.sh + +# prefer default gnu89 (ISO C90) as C99 is not fully supported by cc +# and add fedora optflags +Patch0: simh-3.8.0-gcc.patch +Patch1: simh-3.8.1-altair-segfault.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: libpcap-devel, dos2unix +#Requires: + +%description +SIMH is a historical computer simulation system. It consists of simulators +for many different computers, all written around a common user +interface package and set of supporting libraries. +SIMH can be used to simulate any computer system for which sufficient detail +is available, but the focus to date has been on simulating computer systems +of historic interest. + +SIMH implements simulators for: + +* Data General Nova, Eclipse +* Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10, + PDP-11, PDP-15, VAX +* GRI Corporation GRI-909, GRI-99 +* IBM 1401, 1620, 7090/7094, System 3 +* Interdata (Perkin-Elmer) 16b and 32b systems +* Hewlett-Packard 2114, 2115, 2116, 2100, 21MX, 1000 +* Honeywell H316/H516 +* MITS Altair 8800, with both 8080 and Z80 +* Royal-Mcbee LGP-30, LGP-21 +* Scientific Data Systems SDS 940 + +%prep +%setup -qn %{name}-%{version} +%patch0 -p1 -b .gcc +%patch1 -p1 -b .altair-segfault + + +%build +mkdir -p BIN +make %{?_smp_mflags} -e OPT="%{optflags}" USE_NETWORK=1 + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT%{_bindir} +for i in `ls BIN/`; do + install -p -m 755 BIN/$i $RPM_BUILD_ROOT%{_bindir}/simh-$i +done +mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} +for i in `find -iname "*.txt"`; do dos2unix -k $i; done + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root,-) +%{_bindir}/* +%doc ALTAIR/altair.txt NOVA/eclipse.txt 0readme_38.txt 0readme_ethernet.txt +%doc HP2100/hp2100_diag.txt I7094/i7094_bug_history.txt Interdata/id_diag.txt +%doc PDP1/pdp1_diag.txt PDP10/pdp10_bug_history.txt PDP18B/pdp18b_diag.txt +%doc S3/haltguide.txt S3/readme_s3.txt S3/system3.txt SDS/sds_diag.txt +%doc VAX/vax780_bug_history.txt + + +%changelog +* Sat Jan 09 2010 Lucian Langa - 3.8.1-5 +- fix altair segfault + +* Tue Nov 17 2009 Lucian Langa - 3.8.1-4 +- add correct source + +* Fri Nov 13 2009 Lucian Langa - 3.8.1-3 +- update description + +* Sun Nov 08 2009 Lucian Langa - 3.8.1-2 +- add correct generate script + +* Wed Oct 08 2009 Lucian Langa - 3.8.1-1 +- remove separate docs +- misc cleanups +- new upstream release + +* Wed Dec 24 2008 Lucian Langa - 3.8.0-1 +- initial spec file + + diff --git a/sources b/sources index e69de29..f54227d 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +3bca3f2b82392b89dc2f63900e6cfda5 simh-3.8.1-noroms.tar.gz From 63da821df32c85a9a2616df45c819a2f902276d8 Mon Sep 17 00:00:00 2001 From: Lucian Langa Date: Sat, 9 Jan 2010 14:32:19 +0000 Subject: [PATCH 2/4] - add ppc defines patch --- simh-3.8.1-ppc-defines.patch | 44 ++++++++++++++++++++++++++++++++++++ simh.spec | 7 +++++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 simh-3.8.1-ppc-defines.patch diff --git a/simh-3.8.1-ppc-defines.patch b/simh-3.8.1-ppc-defines.patch new file mode 100644 index 0000000..cdd567d --- /dev/null +++ b/simh-3.8.1-ppc-defines.patch @@ -0,0 +1,44 @@ +diff -Naur simh-3.8.1/BIN/pdp1 simh-3.8.1-mod/BIN/pdp1 +\ No newline at end of file +diff -Naur simh-3.8.1/BIN/pdp11 simh-3.8.1-mod/BIN/pdp11 +\ No newline at end of file +diff -Naur simh-3.8.1/BIN/pdp15 simh-3.8.1-mod/BIN/pdp15 +\ No newline at end of file +diff -Naur simh-3.8.1/BIN/pdp4 simh-3.8.1-mod/BIN/pdp4 +\ No newline at end of file +diff -Naur simh-3.8.1/BIN/pdp7 simh-3.8.1-mod/BIN/pdp7 +\ No newline at end of file +diff -Naur simh-3.8.1/BIN/pdp8 simh-3.8.1-mod/BIN/pdp8 +\ No newline at end of file +diff -Naur simh-3.8.1/BIN/pdp9 simh-3.8.1-mod/BIN/pdp9 +\ No newline at end of file +diff -Naur simh-3.8.1/NOVA/eclipse_cpu.c simh-3.8.1-mod/NOVA/eclipse_cpu.c +--- simh-3.8.1/NOVA/eclipse_cpu.c 2008-05-21 11:07:52.000000000 +0300 ++++ simh-3.8.1-mod/NOVA/eclipse_cpu.c 2010-01-09 16:28:08.000000000 +0200 +@@ -365,7 +365,7 @@ + + int32 XCT_mode = 0; /* 1 if XCT mode */ + int32 XCT_inst = 0; /* XCT instruction */ +-int32 PPC = -1; ++int32 _PPC = -1; + int32 AMASK = 077777; + + struct ndev dev_table[64]; /* dispatch table */ +@@ -850,14 +850,14 @@ + } + + if ((PC < 1 || PC > 077777) && Debug_Flags) { +- if (PPC != -1) { /* Don't break on 1st instruction */ +- printf("\n<>\n\r", PC, PPC); ++ if (_PPC != -1) { /* Don't break on 1st instruction */ ++ printf("\n<>\n\r", PC, _PPC); + reason = STOP_IBKPT; + break; + } + } + +-PPC = PC; ++_PPC = PC; + + if (Debug_Flags) { + if (!Tron) { diff --git a/simh.spec b/simh.spec index 9489b84..c065d47 100644 --- a/simh.spec +++ b/simh.spec @@ -1,6 +1,6 @@ Name: simh Version: 3.8.1 -Release: 5%{?dist} +Release: 6%{?dist} Summary: A highly portable, multi-system emulator Group: Applications/Emulators @@ -22,6 +22,7 @@ Source1: simh-generate-tarball.sh # and add fedora optflags Patch0: simh-3.8.0-gcc.patch Patch1: simh-3.8.1-altair-segfault.patch +Patch2: simh-3.8.1-ppc-defines.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libpcap-devel, dos2unix @@ -53,6 +54,7 @@ SIMH implements simulators for: %setup -qn %{name}-%{version} %patch0 -p1 -b .gcc %patch1 -p1 -b .altair-segfault +%patch2 -p1 -b .ppc-define %build @@ -84,6 +86,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sat Jan 09 2010 Lucian Langa - 3.8.1-6 +- add ppc defines patch + * Sat Jan 09 2010 Lucian Langa - 3.8.1-5 - fix altair segfault From 35f1f419a58cf3ffbb6c015ce88ef1cc363bf660 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 8 May 2010 02:23:22 +0000 Subject: [PATCH 3/4] Initialize branch EL-6 for simh --- branch | 1 + 1 file changed, 1 insertion(+) create mode 100644 branch diff --git a/branch b/branch new file mode 100644 index 0000000..46381b9 --- /dev/null +++ b/branch @@ -0,0 +1 @@ +EL-6 From b1d6ad819c25a5d3d29a7b87f4ba36435bce28ae Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 29 Jul 2010 12:47:15 +0000 Subject: [PATCH 4/4] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- branch | 1 - 3 files changed, 22 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 branch diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 279d5a4..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: simh -# $Id$ -NAME := simh -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 $$d/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/branch b/branch deleted file mode 100644 index 46381b9..0000000 --- a/branch +++ /dev/null @@ -1 +0,0 @@ -EL-6