hercules/hercules.spec

Name: hercules
Summary: Hercules S/370, ESA/390, and z/Architecture emulator
Version: 3.02
Release: 1.2
License: QPL
Group: Applications/Emulators
URL: http://www.conmicro.cx/hercules/
Description: Hercules is an emulator for the IBM System/370, ESA/390, and z/Architecture series of mainframe computers. It is capable of running any IBM operating system and applications that a real system will run, as long as the hardwre needed is emulated. Hercules can emulate FBA and CKD DASD, tape, printer, card reader, card punch, channel-to-channel adapter, LCS Ethernet, and printer-keyboard, 3270 terminal, and 3287 printer devices.

CentOS 7 x86_64

The build was not successful.

Build Status

CentOS 6 x86_64

The build was not successful.

Build Status

Contents

The spec file used by the build system currently has the following contents:

# $Id$
# Authority: dag
# Upstream: Jay Maynard <jmaynard$conmicro,cx>
# Upstream: <hercules-390$yahoogroups,com>

#define date 20041025

Summary: Hercules S/370, ESA/390, and z/Architecture emulator
Name: hercules
Version: 3.02
Release: %{?date:0.%{date}.}1.2%{?dist}
License: QPL
Group: Applications/Emulators
URL: http://www.conmicro.cx/hercules/
Source: http://www.conmicro.cx/hercules/hercules-%{version}%{?date:-cvs}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: bison, zlib-devel, bzip2-devel, libgcrypt, gcc-c++
Obsoletes: hercules-docs <= 3.01

%description
Hercules is an emulator for the IBM System/370, ESA/390, and z/Architecture
series of mainframe computers. It is capable of running any IBM operating
system and applications that a real system will run, as long as the hardwre
needed is emulated. Hercules can emulate FBA and CKD DASD, tape, printer,
card reader, card punch, channel-to-channel adapter, LCS Ethernet, and
printer-keyboard, 3270 terminal, and 3287 printer devices.

%prep
%setup -n %{name}-%{version}%{?date:-cvs}

### FIXME: Make buildsystem use standard autotools directories (Fix upstream please)
%{__perl} -pi.orig -e 's|^(modexecdir) =.*$|$1 = \$(libdir)/hercules|' \
    Makefile.in crypto/Makefile.in

%{__mv} hercules.cnf hercules.cnf.sample
%{__cat} <<EOF >hercules.cnf
# Sample configuration file to run Red Hat Linux or Fedora Core S/390 with the
# the Hercules ESA/390 emulator
#
CPUSERIAL 002623        # CPU serial number
CPUMODEL  3090          # CPU model number: 3090, 7490, 2064
MAINSIZE  256           # Main storage size in megabytes
NUMCPU    1             # Number of CPUs
CNSLPORT  3270          # TCP port number to which consoles connect
#HTTPPORT 8081          # enable a HTTP server on this port
OSTAILOR  LINUX         # OS tailoring
LOADPARM  0120....      # IPL parameter
IODELAY   0             # modern kernels do not need a delay
ARCHMODE  ESA/390       # Architecture mode S/370, ESA/390 or ESAME
TZOFFSET  +0100         # Central Europe
MODPATH   %{_libdir}/hercules

# .-----------------------Device number
# |   .-----------------Device type
# |   |    .---------File name and parameters
# |   |    |
# V   V    V
#---  ---- --------------------
# card reader
000C  3505 kernel.img hercules.prm initrd.img autopad
# card punch
#000D 3525 punch00d.txt ascii
# line printer
#000E 1403 print00e.txt crlf
# local non-SNA 3270 TN3270 client connection
#001F 3270
# CKD direct access storage device
# initialize with: dasdinit -z linux.120 3390-3 lin000
0120  3390 %{_sysconfdir}/hercules/linux.120
# local non-SNA 3270 TN3270 client connection
#0200 3270
#0201 3270
# tape drives
0580  3420 %{_sysconfdir}/hercules/hercules.tdf
#0581 3420 /dev/st0
#0582 3420 ickdsf.ipl
# networking, channel-to-channel adapter
0600  3088 CTCI -n /dev/net/tun -t 1500 192.168.200.3 192.168.200.4
# networking, LCS adaptor
#0700 3088 LCS 192.168.200.4 -n /dev/net/tun -m 01:02:03:04:05:06
EOF

%{__cat} <<EOF >hercules.ins
* Red Hat Linux for S/390 Installation
kernel.img 0x00000000
initrd.img 0x00800000
hercules.prm 0x00010480
EOF

%{__cat} <<'EOF' >hercules.init
#!/bin/sh

###  Startup script for the Hercules S/390 emulator
###  Copyright (C) 2001 Karsten Hopp <karsten@redhat.de>
###  Copyright (C) 2003 Florian La Roche <laroche@redhat.com>

### This is your "hercules network" between your machine running the
### hercules emulator and the Linux guest running in hercules.
HERCNET="192.168.200.0/24"

PATH=/bin:/usr/bin:/sbin:/usr/sbin
export PATH
unset LANG LC_COLLATE

if [ `id -u` != 0 ]; then
    echo "This script requires root permissions."
    exit 1
fi

lsmod | grep -q ipchains && {
    echo "ipchains module is already loaded, cannot setup iptables."
    exit 1
}

### This device must be present for hercules to setup networking.
[ -d /dev/net ] || mkdir -p /dev/net
[ -c /dev/net/tun ] || mknod /dev/net/tun c 10 200

### Load the necessary kernel modules:
modprobe tun ip_tables iptable_filter ip_conntrack ip_conntrack_ftp ip_nat_ftp 2>/dev/null

### Enable IP forwarding, you can permanently change this in in
### /etc/sysctl.conf with "net.ipv4.ip_forward = 1".
echo "1" >/proc/sys/net/ipv4/ip_forward

### Masquerade the hercules network.
iptables -t nat -A POSTROUTING -s ${HERCNET} -j MASQUERADE
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

### Start hercules itself.
cd %{_sysconfdir}/hercules
LD_ASSUME_KERNEL=2.4.1
export LD_ASSUME_KERNEL
hercules
EOF

%{__cat} <<EOF >hercules.prm
root=/dev/ram0 ro ip=off ramdisk_size=40000
EOF

%{__cat} <<EOF >hercules.tdf
@TDF
tape0 FIXED RECSIZE 1024
kernel.img FIXED RECSIZE 1024
hercules.prm FIXED RECSIZE 1024
initrd.img FIXED RECSIZE 1024
EOT
EOF

%build
%configure \
    --enable-shared \
    --enable-dependency-tracking \
    --enable-optimization="%{optflags}"
%{__make} %{?_smp_mflags}

%install
%{__rm} -rf %{buildroot}
%makeinstall
%find_lang %{name}
%{__install} -Dp -m0755 hercules.init %{buildroot}%{_sysconfdir}/hercules/hercules.init
%{__install} -Dp -m0644 hercules.cnf %{buildroot}%{_sysconfdir}/hercules/hercules.cnf
%{__install} -Dp -m0644 hercules.ins %{buildroot}%{_sysconfdir}/hercules/hercules.ins
%{__install} -Dp -m0644 hercules.prm %{buildroot}%{_sysconfdir}/hercules/hercules.prm
%{__install} -Dp -m0644 hercules.tdf %{buildroot}%{_sysconfdir}/hercules/hercules.tdf

%clean
%{__rm} -rf %{buildroot}

%files -f %{name}.lang
%defattr(-, root, root, 0755)
%doc CHANGES README* RELEASE* hercules.cnf.sample html/ util/
%doc %{_mandir}/man?/*
%dir %{_sysconfdir}/hercules/
%config(noreplace) %{_sysconfdir}/hercules/*
%{_bindir}/*
%{_datadir}/hercules/
%{_libdir}/hercules/
%{_libdir}/libherc.so
%{_libdir}/libhercs.so
%exclude %{_libdir}/libherc.la
%exclude %{_libdir}/libhercs.la
%exclude %{_libdir}/hercules/*.la

%changelog
* Sat Apr 08 2006 Dries Verachtert <dries@ulyssis.org> - 3.02-%{?date:0.%{date}.}1.2
- Rebuild for Fedora Core 5.

* Tue Jan 25 2005 Dag Wieers <dag@wieers.com> - 3.02-1
- Updated to release 3.02.

* Mon Oct 25 2004 Matthias Saou <http://freshrpms.net/> 3.02-0.20041025.1
- Update to today's CVS snapshot.

* Thu Jul 29 2004 Matthias Saou <http://freshrpms.net/> 3.01-2.20040729
- Update to CVS version.
- Merge the docs back into the main package.

* Sat Jul 17 2004 Matthias Saou <http://freshrpms.net/> 3.01-2
- Updated config's ctc entry to the new syntax.

* Sat Apr 10 2004 Dag Wieers <dag@wieers.com> - 3.01-1
- Updated to release 3.01.
- Added default configuration from Florian La Roche.

* Fri Oct 3 2003 Jay Maynard <jmaynard@conmicro.cx>
Updates for version 3.00: lots of libraries and executable changes.

* Thu Feb 6 2003 Jay Maynard <jmaynard@conmicro.cx>
Fixed permissions again. Thanks to John Summerfield for finding
my screwup and pointing it out.

* Sun Feb 2 2003 Jay Maynard <jmaynard@conmicro.cx>
Updates for 2.17: new files, RPM 4 updates to build specifications (thanks
to Florian La Roche), fixed default attributes (thanks again to John
Summerfield, and this time it'll stick!), and RPM 4 updates to file header
(thanks to Frank Meurer).

* Wed Jul 3 2002 Jay Maynard <jmaynard@conmicro.cx>
Added Alpha build kludge to bypass setresuid test in configure.

* Sat May 4 2002 Jay Maynard <jmaynard@conmicro.cx>
Removed enable-setuid-hercifc option (thanks again to John Summerfield).

* Fri Apr 19 2002 Jay Maynard <jmaynard@conmicro.cx>
Added new HTTP server files for 2.16.

* Thu Dec 20 2001 Jay Maynard <jmaynard@conmicro.cx>
Changed build process to include configure step.

* Sun May 7 2001 Jay Maynard <jmaynard@conmicro.cx>
Changed executables for Hercules 2.12; set default attributes (thanks to
John Summerfield).

* Sun Feb 3 2001 Jay Maynard <jmaynard@conmicro.cx>
Changed executables for Hercules 2.10.

* Sun Oct 8 2000 Jay Maynard <jmaynard@conmicro.cx>
Added multi-architecture build processing.

* Sun Jul 4 2000 Jay Maynard <jmaynard@conmicro.cx>
Added BuildRoot (thanks to David Barth).

* Sun Jun 18 2000 Jay Maynard <jmaynard@conmicro.cx>
Created RPM.