Fail* directories reorganized, Code-cleanup (-> coding-style), Typos+comments fixed.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1321 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
adrian
2012-06-08 20:09:43 +00:00
parent d474a5b952
commit 2575604b41
866 changed files with 1848 additions and 1879 deletions

View File

@ -0,0 +1,320 @@
#!/usr/bin/perl
#####################################################################
# $Id$
#####################################################################
#
# Batch build tool for multiple configurations
#
# switches:
# - show output vs. send it all to nohup. --nohup
# - serial or parallel. --parallel
#
# no args: serial, display output
# --nohup: serial, output to nohup.out. (Need summary.)
# --nohup --parallel: parallel, output to nohup.out
# --parallel: parallel, spawn xterm for each
#
sub usage {
print <<EOF;
Usage: $0 [--nohup] [--parallel]
--nohup causes the output of all compiles to go into nohup.out
--parallel causes all compiles to be run in parallel
Usage: $0 --clean
--clean erases the build directories and recreates them from scratch
Combinations of nohup and parallel:
no args: serial compile, output goes to stdout
--nohup: serial compile, output goes into individual nohup.out files
--nohup --parallel: parallel compile, output goes to individual nohup.out files
--parallel: parallel compile, spawn an xterm for each configuration
EOF
}
$DEBUG=0;
$TEST_STANDARD = 1;
$TEST_GUIS = 1;
$TEST_CPU = 1;
$TEST_SMP = 1;
$TEST_IODEV = 1;
$TEST_PCI = 1;
$TEST_X86_64 = 1;
$TEST_SSE = 1;
$TEST_PLUGINS = 1;
$TEST_DEVICES = 1;
$pwd = `pwd`;
chop $pwd;
# create all the configurations that we should test. The first argument
# is the configuration name, which must be a valid directory name. To be
# safe, don't put spaces, slashes, ".", or ".." in here.
if ($TEST_STANDARD) {
add_configuration ('normal',
'');
add_configuration ('dbg',
'--enable-debugger');
}
if ($TEST_PLUGINS) {
add_configuration ('plug',
'--enable-plugins');
add_configuration ('plug-d',
'--enable-plugins --enable-debugger');
add_configuration ('plug-allgui',
'--enable-plugins --with-all-libs');
add_configuration ('plug-allgui-d',
'--enable-plugins --with-all-libs --enable-debugger');
add_configuration ('plug-smp',
'--enable-plugins --enable-smp');
add_configuration ('plug-smp-d',
'--enable-plugins --enable-smp --enable-debugger');
add_configuration ('plug-x86-64',
'--enable-plugins --enable-x86-64');
add_configuration ('plug-wx',
'--enable-plugins --with-wx');
}
if ($TEST_DEVICES) {
add_configuration ('alldev',
'--enable-ne2000 --enable-pci --enable-port-e9-hack --enable-cdrom --enable-iodebug');
add_configuration ('ne2000',
'--enable-ne2000');
add_configuration ('pci',
'--enable-pci');
add_configuration ('port-e9-hack',
'--enable-port-e9-hack');
add_configuration ('cdrom',
'--enable-cdrom');
add_configuration ('gdbstub',
'--enable-gdbstub');
add_configuration ('iodebug',
'--enable-iodebug');
}
if ($TEST_GUIS) {
# test with various gui options
add_configuration ('wx',
'--with-wx');
add_configuration ('wx-d',
'--with-wx --enable-debugger');
add_configuration ('sdl',
'--with-sdl');
add_configuration ('sdl-d',
'--with-sdl --enable-debugger');
add_configuration ('term',
'--with-term');
add_configuration ('term-d',
'--with-term --enable-debugger');
add_configuration ('rfb',
'--with-rfb');
add_configuration ('rfb-d',
'--with-rfb --enable-debugger');
add_configuration ('nogui',
'--with-nogui');
add_configuration ('nogui-d',
'--with-nogui --enable-debugger');
}
if ($TEST_CPU) {
# test with various cpu options
add_configuration ('i386',
'--enable-cpu-level=3 --disable-mmx');
add_configuration ('i486',
'--enable-cpu-level=4 --disable-mmx');
add_configuration ('i586',
'--enable-cpu-level=5');
add_configuration ('i686',
'--enable-cpu-level=6');
add_configuration ('large-pages',
'--enable-large-pages');
add_configuration ('pae',
'--enable-pae');
add_configuration ('repeat',
'--enable-repeat-speedups');
add_configuration ('globalpg',
'--enable-global-pages');
add_configuration ('icache',
'--enable-icache');
add_configuration ('cpuall',
'--enable-large-pages --enable-pae --enable-global-pages --enable-all-optimizations');
}
if ($TEST_SMP) {
# smp
add_configuration ('smp',
'--enable-smp');
add_configuration ('smp-d',
'--enable-smp --enable-debugger');
add_configuration ('smp-wx',
'--enable-smp --with-wx');
add_configuration ('smp-wx-d',
'--enable-smp --with-wx --enable-debugger');
}
if ($TEST_X86_64) {
# test x86-64
add_configuration ('64bit',
'--enable-x86-64');
add_configuration ('64bit-d',
'--enable-x86-64 --enable-debugger');
add_configuration ('64bit-wx',
'--enable-x86-64 --with-wx');
add_configuration ('64bit-wx-d',
'--enable-x86-64 --with-wx --enable-debugger');
}
if ($TEST_SSE) {
# test SSE configurations
add_configuration ('sse1',
'--enable-sse=1');
add_configuration ('sse2',
'--enable-sse=2');
add_configuration ('sse3',
'--enable-sse=3');
add_configuration ('sse4',
'--enable-sse=4');
add_configuration ('sse2-dbg',
'--enable-sse=2 --enable-debugger');
add_configuration ('sse2-x86-64-wx-d',
'--enable-sse=2 --enable-x86-64 --with-wx --enable-debugger');
}
my $nohup = 0;
my $parallel = 0;
my $clean = 0;
foreach my $arg (@ARGV) {
if ($arg eq '--clean') {
$clean = 1;
} elsif ($arg eq '--nohup') {
$nohup = 1;
} elsif ($arg eq '--parallel') {
$parallel = 1;
} else {
usage(); exit 1;
}
}
# this script may be run from various directories, and this affects
# the path to the configure command. Try to figure out where the configure
# command is found, and set up the build.sh scripts accordingly. If it
# can't be found, spit out an error now instead of later.
my @configurepath_tries = ("configure", "../configure", "../../configure");
my $configurepath;
foreach my $trypath (@configurepath_tries) {
if (-x $trypath) {
print "Found configure at $configurepath.\n" if $DEBUG;
$configurepath = $trypath;
}
}
if (!defined $configurepath) {
print <<EOF;
ERROR I could not locate the configure script. This script is intended
to be run from the bochs main directory or a subdirectory of it. Examples:
1) cd $BOCHS; ./build/batch-build.perl
2) cd $BOCHS/build; ./batch-build.perl
Here are the places that I tried to find the configure script:
EOF
foreach (@configurepath_tries) {
print " $_\n";
}
exit 1;
}
$x = 50; $y = 50;
$xinc = 30;
$yinc = 30;
for (my $i=0; $i <= $#config_names; $i++) {
my $name = "build-$config_names[$i]";
my $options = $config_opts[$i];
die if (!defined $name || !defined $options);
print "Compiling '$name' with opts '$options'\n" if $DEBUG;
if ($clean) {
my $rmcmd = "rm -rf $name";
print "Removing directory $name\n";
system $rmcmd;
next;
}
if (! -d $name) { mkdir $name, 0755; }
$maybe_nohup = $nohup? "nohup" : "";
open (BUILD, ">$name/build.sh");
print BUILD <<BUILD_EOF;
#!/bin/bash
echo Running the configure script
export CFLAGS='-g -O2 -Wall'
export CXXFLAGS='-g -O2 -Wall'
$maybe_nohup ../$configurepath $options
if test $? != 0; then
echo Configure failed.
exit 1
fi
echo Running make
$maybe_nohup make
if test $? != 0; then
echo Make failed.
exit 1
fi
BUILD_EOF
close BUILD;
chmod 0755, "$name/build.sh";
$gotodir = "cd $name";
$startcmd = "nice $maybe_nohup ./build.sh";
$header = <<HEADER_EOF;
====================================================================
Configuration name: $name
Directory: $pwd/$name
Config Options: $options
====================================================================
HEADER_EOF
print $header;
if ($parallel && !$nohup) {
# special case for parallel without nohup. If you're not careful,
# all output from all compiles will go into the window at once, which
# is impossible to read. Also very hard to kill them until they have
# run their course. Instead, start each compile in a different xterm!
# What's even more useful is that after the compile stops it goes into
# a bash shell so that you can fix things, run the make again, etc.
#
# To do this, put the start command in a little shell script called
# xterm-init.sh. Start the xterm with "-e xterm-init.sh" so that it
# runs the script as it starts.
open (XTI, ">$name/xterm-init.sh");
print XTI <<XTI_EOF;
#!/bin/bash
cat <<EOF
$header
EOF
$startcmd
bash
exit 0
XTI_EOF
close XTI;
chmod 0755, "$name/xterm-init.sh";
$geometry = "-geom +$x+$y";
$x+=$xinc;
$y+=$yinc;
$startcmd = "xterm -title $name -name $name $geometry -e ./xterm-init.sh";
}
$cmd = "$gotodir && $startcmd";
$cmd .= "&" if $parallel;
print "Executing '$cmd'\n" if $DEBUG;
system $cmd;
}
print "\n"x2;
print "batch-build script is done.\n";
exit 0;
sub add_configuration {
my ($name, $opts) = @_;
push @config_names, $name;
push @config_opts, $opts;
}

Binary file not shown.

View File

@ -0,0 +1,17 @@
bochs for Debian
----------------
I've tried to keep the install the same as the default, everything goes in
/usr/local/bochs. Binary symlinks in /usr/local/bin. Yes this is less than
ideal. I intend to fix this as soon as I have time.
Some gotchas....
I still have problems with the vga font on occasion. It is included in the
package and mkfontdir is run, but I still needed to restart X in order to
get bochs to run the first time.
-- Rob Lemley <rjlemley@calypsoblue.org>, Mon, 17 Sep 2001 14:40:30 -0700

View File

@ -0,0 +1,65 @@
bochs (1.3-1) unstable; urgency=low
* Update for 1.3
-- Rob Lemley <rjlemley@valinux.com> Mon, 10 Dec 2001 15:16:18 -0800
bochs (1.3pre1-1) unstable; urgency=low
* Update for 1.3pre1
-- Rob Lemley <rjlemley@valinux.com> Wed, 28 Nov 2001 16:47:25 -0800
bochs (1.2.1cvs20011128-1) unstable; urgency=low
* Update from cvs
* Package now installs in /usr like a good package should
-- Rob Lemley <rjlemley@calypsoblue.org> Wed, 28 Nov 2001 16:39:35 -0800
bochs (1.2.1cvs20010917-1) unstable; urgency=low
* Added files to docs
* Run mkfontdir after installation to update the font
* Added some documentation RE common errors to the README.Debian file
-- Rob Lemley <rjlemley@calypsoblue.org> Mon, 17 Sep 2001 16:09:50 -0700
bochs (1.2.1-2) unstable; urgency=low
* Added bochs-dlx stuff. This may be separated out into its own
package at some point
-- Rob Lemley <rjlemley@calypsoblue.org> Tue, 12 Jun 2001 19:47:05 -0700
bochs (1.2.1-1) unstable; urgency=low
* New upstream release.
-- Rob Lemley <rjlemley@calypsoblue.org> Tue, 12 Jun 2001 17:57:51 -0700
bochs (1.2-3) unstable; urgency=low
* Moved debian dir to build dir
* Fixed rules file to work with potato
-- Rob Lemley <rjlemley@calypsoblue.org> Mon, 11 Jun 2001 21:33:06 -0700
bochs (1.2-2) unstable; urgency=low
* Backed out changes to Makefile.in to keep in sync with upstream
* Modified rules to install temp files in proper place for package build
* Added hack to rules file to put symlinks in right places
-- Rob Lemley <rjlemley@calypsoblue.org> Mon, 11 Jun 2001 09:48:21 -0700
bochs (1.2-1) unstable; urgency=low
* Initial Release.
* Adjusted Makefike.in to fix $DESTDIR problems
-- Rob Lemley <rjlemley@calypsoblue.org> Tue, 5 Jun 2001 21:08:30 -0700
Local variables:
mode: debian-changelog
End:

View File

@ -0,0 +1,7 @@
#
# If you want to use this conffile, remove all comments and put files that
# you want dpkg to process here using their absolute pathnames.
# See section 9.1 of the packaging manual.
#
# for example:
# /etc/bochs/bochs.conf

View File

@ -0,0 +1,17 @@
Source: bochs
Section: unknown
Priority: optional
Maintainer: Rob Lemley <rjlemley@calypsoblue.org>
Build-Depends: debhelper (>> 3.0.0)
Standards-Version: 3.5.2
Package: bochs
Architecture: any
Depends: ${shlibs:Depends}
Description: IA-32 Emulator Project
Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++,
that runs on most popular platforms. It includes emulation of the Intel x86
CPU, common I/O devices, and a custom BIOS. Currently, bochs can be compiled
to emulate a 386, 486 or Pentium CPU. Bochs is capable of running most
Operating Systems inside the emulation including Linux, Windows 95, DOS,
and recently Windows NT 4.

View File

@ -0,0 +1,10 @@
This package was debianized by Rob Lemley <rjlemley@calypsoblue.org> on
Tue, 5 Jun 2001 21:08:30 -0700.
It was downloaded from http://bochs.sourceforge.net
Upstream Author(s): <put author(s) name and email here>
Copyright:
<Must follow here>

View File

@ -0,0 +1,4 @@
#
# Regular cron jobs for the bochs package
#
0 4 * * * root bochs_maintenance

View File

View File

@ -0,0 +1,6 @@
README
TESTFORM.txt
macintosh.txt
win32.txt
COPYING
CHANGES

View File

@ -0,0 +1,45 @@
#! /bin/sh -e
# /usr/lib/emacsen-common/packages/install/bochs
# Written by Jim Van Zandt <jrv@vanzandt.mv.com>, borrowing heavily
# from the install scripts for gettext by Santiago Vila
# <sanvila@ctv.es> and octave by Dirk Eddelbuettel <edd@debian.org>.
FLAVOR=$1
PACKAGE=bochs
if [ ${FLAVOR} = emacs ]; then exit 0; fi
echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}
#FLAVORTEST=`echo $FLAVOR | cut -c-6`
#if [ ${FLAVORTEST} = xemacs ] ; then
# SITEFLAG="-no-site-file"
#else
# SITEFLAG="--no-site-file"
#fi
FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
# Install-info-altdir does not actually exist.
# Maybe somebody will write it.
if test -x /usr/sbin/install-info-altdir; then
echo install/${PACKAGE}: install Info links for ${FLAVOR}
install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz
fi
install -m 755 -d ${ELCDIR}
cd ${ELDIR}
FILES=`echo *.el`
cp ${FILES} ${ELCDIR}
cd ${ELCDIR}
cat << EOF > path.el
(setq load-path (cons "." load-path) byte-compile-warnings nil)
EOF
${FLAVOR} ${FLAGS} ${FILES}
rm -f *.el path.el
exit 0

View File

@ -0,0 +1,15 @@
#!/bin/sh -e
# /usr/lib/emacsen-common/packages/remove/bochs
FLAVOR=$1
PACKAGE=bochs
if [ ${FLAVOR} != emacs ]; then
if test -x /usr/sbin/install-info-altdir; then
echo remove/${PACKAGE}: removing Info links for ${FLAVOR}
install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/bochs.info.gz
fi
echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
fi

View File

@ -0,0 +1,18 @@
;; -*-emacs-lisp-*-
;;
;; Emacs startup file for the Debian GNU/Linux bochs package
;;
;; Originally contributed by Nils Naumann <naumann@unileoben.ac.at>
;; Modified by Dirk Eddelbuettel <edd@debian.org>
;; Adapted for dh-make by Jim Van Zandt <jrv@vanzandt.mv.com>
;; The bochs package follows the Debian/GNU Linux 'emacsen' policy and
;; byte-compiles its elisp files for each 'emacs flavor' (emacs19,
;; xemacs19, emacs20, xemacs20...). The compiled code is then
;; installed in a subdirectory of the respective site-lisp directory.
;; We have to add this to the load-path:
(setq load-path (cons (concat "/usr/share/"
(symbol-name flavor)
"/site-lisp/bochs") load-path))

View File

@ -0,0 +1,22 @@
Document: bochs
Title: Debian bochs Manual
Author: <insert document author here>
Abstract: This manual describes what bochs is
and how it can be used to
manage online manuals on Debian systems.
Section: unknown
Format: debiandoc-sgml
Files: /usr/share/doc/bochs/bochs.sgml.gz
Format: postscript
Files: /usr/share/doc/bochs/bochs.ps.gz
Format: text
Files: /usr/share/doc/bochs/bochs.text.gz
Format: HTML
Index: /usr/share/doc/bochs/html/index.html
Files: /usr/share/doc/bochs/html/*.html

View File

@ -0,0 +1,70 @@
#! /bin/sh
#
# skeleton example file to build /etc/init.d/ scripts.
# This file should be used to construct scripts for /etc/init.d.
#
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian GNU/Linux
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl
#
# This file was automatically customized by dh-make on Tue, 5 Jun 2001 21:08:30 -0700
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/bochs
NAME=bochs
DESC=bochs
test -f $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
#reload)
#
# If the daemon can reload its config files on the fly
# for example by sending it SIGHUP, do it here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this a do-nothing entry.
#
# echo "Reloading $DESC configuration files."
# start-stop-daemon --stop --signal 1 --quiet --pidfile \
# /var/run/$NAME.pid --exec $DAEMON
#;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

View File

@ -0,0 +1,60 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH BOCHS SECTION "June 5, 2001"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
bochs \- program to do something
.SH SYNOPSIS
.B bochs
.RI [ options ] " files" ...
.br
.B bar
.RI [ options ] " files" ...
.SH DESCRIPTION
This manual page documents briefly the
.B bochs
and
.B bar
commands.
This manual page was written for the Debian GNU/Linux distribution
because the original program does not have a manual page.
Instead, it has documentation in the GNU Info format; see below.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBbochs\fP is a program that...
.SH OPTIONS
These programs follow the usual GNU command line syntax, with long
options starting with two dashes (`-').
A summary of options is included below.
For a complete description, see the Info files.
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-v, \-\-version
Show version of program.
.SH SEE ALSO
.BR bar (1),
.BR baz (1).
.br
The programs are documented fully by
.IR "The Rise and Fall of a Fooish Bar" ,
available via the Info system.
.SH AUTHOR
This manual page was written by Rob Lemley <rjlemley@calypsoblue.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,143 @@
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- Process this file with docbook-to-man to generate an nroff manual
page: `docbook-to-man manpage.sgml > manpage.1'. You may view
the manual page with: `docbook-to-man manpage.sgml | nroff -man |
less'. A typical entry in a Makefile or Makefile.am is:
manpage.1: manpage.sgml
docbook-to-man $< > $@
-->
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
<!ENTITY dhsurname "<surname>SURNAME</surname>">
<!-- Please adjust the date whenever revising the manpage. -->
<!ENTITY dhdate "<date>June 5, 2001</date>">
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
allowed: see man(7), man(1). -->
<!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
<!ENTITY dhemail "<email>rjlemley@calypsoblue.org</email>">
<!ENTITY dhusername "Rob Lemley">
<!ENTITY dhucpackage "<refentrytitle>BOCHS</refentrytitle>">
<!ENTITY dhpackage "bochs">
<!ENTITY debian "<productname>Debian GNU/Linux</productname>">
<!ENTITY gnu "<acronym>GNU</acronym>">
]>
<refentry>
<refentryinfo>
<address>
&dhemail;
</address>
<author>
&dhfirstname;
&dhsurname;
</author>
<copyright>
<year>2001</year>
<holder>&dhusername;</holder>
</copyright>
&dhdate;
</refentryinfo>
<refmeta>
&dhucpackage;
&dhsection;
</refmeta>
<refnamediv>
<refname>&dhpackage;</refname>
<refpurpose>program to do something</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>&dhpackage;</command>
<arg><option>-e <replaceable>this</replaceable></option></arg>
<arg><option>--example <replaceable>that</replaceable></option></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>DESCRIPTION</title>
<para>This manual page documents briefly the
<command>&dhpackage;</command> and <command>bar</command>
commands.</para>
<para>This manual page was written for the &debian; distribution
because the original program does not have a manual page.
Instead, it has documentation in the &gnu;
<application>Info</application> format; see below.</para>
<para><command>&dhpackage;</command> is a program that...</para>
</refsect1>
<refsect1>
<title>OPTIONS</title>
<para>These programs follow the usual GNU command line syntax,
with long options starting with two dashes (`-'). A summary of
options is included below. For a complete description, see the
<application>Info</application> files.</para>
<variablelist>
<varlistentry>
<term><option>-h</option>
<option>--help</option>
</term>
<listitem>
<para>Show summary of options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option>
<option>--version</option>
</term>
<listitem>
<para>Show version of program.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>SEE ALSO</title>
<para>bar (1), baz (1).</para>
<para>The programs are documented fully by <citetitle>The Rise and
Fall of a Fooish Bar</citetitle> available via the
<application>Info</application> system.</para>
</refsect1>
<refsect1>
<title>AUTHOR</title>
<para>This manual page was written by &dhusername; &dhemail; for
the &debian; system (but may be used by others). Permission is
granted to copy, distribute and/or modify this document under
the terms of the <acronym>GNU</acronym> Free Documentation
License, Version 1.1 or any later version published by the Free
Software Foundation; with no Invariant Sections, no Front-Cover
Texts and no Back-Cover Texts.</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

View File

@ -0,0 +1,2 @@
?package(bochs):needs=X11|text|vc|wm section=Apps/see-menu-manual\
title="bochs" command="/usr/bin/bochs"

View File

@ -0,0 +1,48 @@
#! /bin/sh
# postinst script for bochs
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see /usr/share/doc/packaging-manual/
#
# quoting from the policy:
# Any necessary prompting should almost always be confined to the
# post-installation script, and should be protected with a conditional
# so that unnecessary prompting doesn't happen if a package's
# installation fails and the `postinst' is called with `abort-upgrade',
# `abort-remove' or `abort-deconfigure'.
case "$1" in
configure)
mkfontdir /usr/lib/X11/fonts/misc
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View File

@ -0,0 +1,47 @@
#! /bin/sh
# postinst script for bochs
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see /usr/share/doc/packaging-manual/
#
# quoting from the policy:
# Any necessary prompting should almost always be confined to the
# post-installation script, and should be protected with a conditional
# so that unnecessary prompting doesn't happen if a package's
# installation fails and the `postinst' is called with `abort-upgrade',
# `abort-remove' or `abort-deconfigure'.
case "$1" in
configure)
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View File

@ -0,0 +1,36 @@
#! /bin/sh
# postrm script for bochs
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
# for details, see /usr/share/doc/packaging-manual/
case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 0
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#

View File

@ -0,0 +1,42 @@
#! /bin/sh
# preinst script for bochs
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
#
# For details see /usr/share/doc/packaging-manual/
case "$1" in
install|upgrade)
# if [ "$1" = "upgrade" ]
# then
# start-stop-daemon --stop --quiet --oknodo \
# --pidfile /var/run/bochs.pid \
# --exec /usr/sbin/bochs 2>/dev/null || true
# fi
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View File

@ -0,0 +1,37 @@
#! /bin/sh
# prerm script for bochs
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <prerm> `remove'
# * <old-prerm> `upgrade' <new-version>
# * <new-prerm> `failed-upgrade' <old-version>
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
# * <deconfigured's-prerm> `deconfigure' `in-favour'
# <package-being-installed> <version> `removing'
# <conflicting-package> <version>
# for details, see /usr/share/doc/packaging-manual/
case "$1" in
remove|upgrade|deconfigure)
# install-info --quiet --remove /usr/info/bochs.info.gz
;;
failed-upgrade)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View File

@ -0,0 +1,90 @@
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This is the debhelper compatability version to use.
export DH_COMPAT=2
configure: configure-stamp
configure-stamp:
ln -snf build/debian debian
dh_testdir
# Add here commands to configure the package.
pwd
export CONFIGURE_ARGS="--prefix=/usr"; ./.conf.linux
touch configure-stamp
build: configure-stamp build-stamp
build-stamp:
dh_testdir
# Add here commands to compile the package.
$(MAKE)
#/usr/bin/docbook-to-man debian/bochs.sgml > bochs.1
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
-$(MAKE) dist-clean
dh_clean
rm -f debian
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/bochs.
$(MAKE) unpack_dlx # with normal prefix so that dlxlinux
# bochsrc.txt file gets right pathnames
$(MAKE) install install_dlx prefix=$(CURDIR)/debian/bochs/usr
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
# dh_installdebconf
dh_installdocs
dh_installexamples
dh_installmenu
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_installinit
dh_installcron
dh_installmanpages
dh_installinfo
# dh_undocumented
dh_installchangelogs CHANGES
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_makeshlibs
dh_installdeb
# dh_perl
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

View File

@ -0,0 +1,5 @@
# Example watch control file for uscan
# Rename this file to "watch" and then you can run the "uscan" command
# to check for upstream updates and more.
# Site Directory Pattern Version Script
sunsite.unc.edu /pub/Linux/Incoming bochs-(.*)\.tar\.gz debian uupdate

View File

@ -0,0 +1,118 @@
#!/bin/sh
BOCHS=@prefix@/bin/bochs
DLXINST=@prefix@/share/bochs/dlxlinux
GZIP=@GZIP@
if [ ! -z $1 ]; then
DLXPATH=$1
else
DLXPATH=$HOME/.bochsdlx
fi
CONFFILE=$HOME/.bochsdlx/bochsconf
makedlxdir() {
echo
echo ---------------------------------------------------------------
echo To run the DLX Linux demo, I need to create a directory called
echo $DLXPATH, and copy some configuration files
echo and a 10 megabyte disk image into the directory.
echo ---------------------------------------------------------------
ok='unknown'
while test $ok = 'unknown'; do
echo Is that okay? [y/n]
read j
case $j in
y*) ok=1 ;;
n*) ok=0 ;;
esac
done
if test $ok != 1; then
echo Aborting
exit 1
fi
#echo DEBUG: Creating $HOME/.bochsdlx/bochsrc
echo DLXPATH=$DLXPATH > $CONFFILE
. $CONFFILE
for file in bochsrc.txt readme.txt testform.txt; do
if [ ! -f $DLXPATH/$file ]; then
echo Copying $DLXINST/$file '->' $DLXPATH/.
cp $DLXINST/$file $DLXPATH/.
else
echo "ERROR: $file already exists in $DLXPATH. Remove it to replace."
fi;
done
if [ ! -f $DLXPATH/hd10meg.img ]; then
echo Uncompressing $DLXINST/hd10meg.img.gz '->' $DLXPATH/hd10meg.img
$GZIP -dc $DLXINST/hd10meg.img.gz > $DLXPATH/hd10meg.img
else
echo "ERROR: hd10meg.img already exists in $DLXPATH. Remove it to replace."
fi
}
echo ---------------------------------------------------------------
echo " DLX Linux Demo, for Bochs x86 Emulator"
echo ---------------------------------------------------------------
echo -n "Checking for bochs binary..."
if test ! -x $BOCHS; then
echo FAILED
echo ERROR: I could not find bochs in $BOCHS
exit 1
fi
echo ok
echo -n "Checking for DLX linux directory..."
if test ! -d $DLXINST; then
echo FAILED
echo ERROR: I could not find the DLX linux directory.
exit 1
fi
echo ok
echo -n "Checking for $GZIP..."
$GZIP < /dev/null > /dev/null
if test $? = 0; then
echo ok
else
echo not found
echo ERROR: without $GZIP in your PATH, I cannot continue.
exit 1
fi
echo -n "Checking for $HOME/.bochsdlx directory..."
if test -d "$HOME/.bochsdlx"; then
echo "ok"
if test -f "$CONFFILE"; then
. $CONFFILE
else
makedlxdir
fi
else
#echo DEBUG: Creating $HOME/.bochsdlx
mkdir -p $HOME/.bochsdlx
mkdir -p $DLXPATH
makedlxdir
fi
echo Entering $DLXPATH
cd $DLXPATH
# Now that we're in the DLXPATH, make sure that bochsrc.txt & hd10meg.img exist
if test ! -f bochsrc.txt; then
echo ERROR: bochsrc.txt not found
exit 1
fi
if test ! -f hd10meg.img; then
echo ERROR: hd10meg.img not found
exit 1
fi
echo Running bochs
# ok now try it
$BOCHS -q
echo
echo ---------------------------------------------------------------
echo The DLX Linux demo is over. If you want to free up the disk
echo space in your account, remove the .bochsdlx directory from
echo your home directory. Example:
echo " rm -rf ~/.bochsdlx"
echo Please be careful with rm -rf because it can make a mess.
echo ---------------------------------------------------------------
exit 0

Binary file not shown.

View File

@ -0,0 +1,300 @@
(This file must be converted with BinHex 4.0)
:#Q*[BfKc,R*cFQ-!FR0bBe*6483!!!!!!!!!!$GVKP!!!!!!!3!!!$ES!!!ek!!
!!)-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!TLEf0SFbjbFh*M45j
SER4cUQ&dEh+UFAKcG#"&H'0P!J"bFh*M8P0&4!%!rrrrr`!!!!!!!!!!!!!!!!!
!!!!!!,3U'bJ!!!!!!!!kIJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!%!!!$rrrrr3!!!!J!#!!%k6@&M6e-J8h9`F'pbG$T
0B@0)C@&NCA*c1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!9!#!!%3%9!M%!!3%!!3!!!!!!!)!!!!!b2$)m!!!!!!#[!&S!%3,r$!$
rrrrr!!!!!!!!!!!!@J!!!+m!!!!!!!!!(i!!J!#!!!!H!!%!#J!!!!!!V`"DJJ!
!!$&b!!!!!3!!!!!!!!!!!!!!!!!!!!%!!!!!!!!!!!!!!!!!!%!!!!!!!!!!!!!
!!!!!!!!!3!!!!!!!V`"D!!!$!!!!!!!!!!KHCfPQ)!!!!!!!!!!!!!!!!'&`F'`
!!!!!!!!%!!"D!+m!5!!!!%J!!!!!+-m!!30(58B!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!J!!!!!!!#!!!$rJ!!#!J)#!J+!!!i1+bX#!S!!&"3m2!)#J!"
lHfPT"!5!!(4dCQB3%)!!YE@QTJd0J!#eY3`-#`Z!!1EQhYjfGS!!NT)0$3S+J!$
Ki4iH$`q!!-6%V+`5%S!!JB%0$3S+J!"kHJm2$!b!!0IA(am4%B!!`F'TU4NCJ!$
cml+bUUU!!1RTjZE8e)!!GA80$3S+J!$Gh6`m+bZ!!,Hh)5%A&i!!(Ki#!TUDJ!$
0cE@e'aZ!!,DfQjX'"S!!H(KZELJSJ!$VkqMSfYU!!&YE$3d,#i!!6Nik1V+bJ!#
3!*!!2$`+#S!!6Nif0UDQJ!#KS5)L%4'!!0hGFR*YEB!!bXUbXLSUJ!$ZlYE@DQU
!!"iH'KS#!S!!mr2`m0VDJ!"fGQjZ1MU!!1(Kc-`P*B!!0MBH(U1MJ!!N*!B'!`1
!!)U+HRSq2S!!4%3l1`3%J!#'KLFR(4f!!"NC&KB$!i!![lqNT!B'J!"$3c`m%K+
!!1VUeYE@eS!!%K)5%JS+J!$LiXE'3N+!!2[lp[EDfS!!D'KGA4`FJ!"-6#!J#`Z
!!0rIdY*LBS!!(4dH(JB'J!#m[*LB4ND!!)k1I(`2$i!!LiYjH33%J!$)b+bX"JD
!!,qrTkFc-i!!JS+#JS'"J!$@eKSD$3f!!2Ihm[,@eS!!&48`-!B'J!$HhXV+EQk
!!!i1$Ji,#i!!PjH1MX2$J!$@eV1c$3f!!,@eEQjVDi!!q[Vkq[VkJ!$3d,5d"JD
!!0E@YlF5%S!!JS*eGEZlJ!$QjYVDEQk!!0VDfYVCfB!!Q*L%K!B'J!$kqZ$JhYk
!!+UUUDQTUB!!TUD9P438J!#2Mi'"+bZ!!"`F2cm%")!!2cmm2$FhJ!$5dVDf-M+
!!'PT@eX'"S!!pI@q[VUkJ!$1cKJB$3f!!*qIRTkEQi!!&KB$!`)#J!#ZVQeYD@Q
!!12MK)4qIS!!Rjm4%3`-J!$QjVkq%K+!!'*L@eXX,)!!5dY&45NTJ!"483N*"3@
!!#BQ)5%#!S!!-c-D'U+LJ!"mI#JS'KU!!(amE'bfYS!!eG@m[!X,J!#[Vkq[V+b
!!++LPTBq2S!!hpqhYl1cJ!$dp0rIfpZ!!!S+#JS)#)!!b-JB'!`-J!"fGQ*LAPk
!!0E@UUURTi!!eYDkZJB'J!!Z,LSU&"5!!0lHEQi+#S!!RTk)L!B'J!$Nj0rI[,b
!!-c-bXV-c)!!m[,@eYE@J!!R*cBf#JU!!0lHcXk#JS!!aF9qIRPjJ!$2ce"34dH
!!-R*a-5bXS!!EfpLBPjHJ!$fpXV+YVD!!&YE6Nj'4S!!XE'TUGcFJ!"ZEKmI'4Q
!!*UDLSSM)i!!-c-b-M!`J!$DfS+#%K+!!2[ljqIQjS!!`-#'KSD'J!#9PBQ*ZlZ
!!1,LfYU#JS!!HRTD@PTDJ!$kq[EfeYD!!%P*#3N'"S!!KiGlHlZlJ!"GA9PC06@
!!0lH`m1r[i!!TUCQCQ*LJ!#1MSU+8P+!!1(KZVS0$B!!9&4*538&J!$LiY$3%K+
!!&*58P*58S!!hYlHhYhGJ!"LBQ*LB'#!!,DfVUl'aS!!r[lqr[lqJ!"E@dG(VUk
!!1,L-M)Q*S!!`X+TUDQTJ!$YlH$JhYk!!0A9Q*L9PB!!cmr1cY$3J!$amI$`lqq
!!!B'"JB&"B!!lZl@eYE@J!"eGA4dFR+!!-$!&aF0$B!!Rjp99948J!$YlH[VeYD
!!-[,`-!0$B!!)L)J)!S+J!!U+LSU+5Q!!0E@eYE@eS!!4dG&484%J!$Nj1,LeYD
!!"B@-M)#!S!!iq1q[J`-J!$DfVkq"JD!!"XE'KSB')!!R*b)L"38J!!Q*Miq%K+
!!+UU&"30$B!!P*58P*16J!$mr2EfhYk!!++LLSS'"S!!4NB[,kDQJ!#cXk+L$`q
!!,Li3%!k1S!!fGPIAeC@J!#`X"89$3f!!1$J,LiG(B!!cFfq[X("J!$0cCZEQCQ
!!$Xl"38&"B!!hYl-c"B@J!$PjGIAeG@!!#dY,Li#!S!!2Mib-M)bJ!"58NY,4dH
!!&PC6Ni9&B!!CQC58UkZJ!"A9eC@9PD!!+kZTkI'aS!!Sk13!*!!MSk!!2cmm2$
Vki!!,LiZ,LdYJ!!Q*KB@!J+!!$Bf8P)U+S!!CQC99E5dJ!#YVCqIXE'!!%Y,5dY
+5S!!p26Sk1EQJ!$%a-6%b-L!!1cXMSk+LS!!jH916N0$J!"SD"SD%a1!!)+#%a-
0$B!!`F'q[Y$3J!!J)#!J(Kk!!-R*VUi0$B!!m[,DfYE@J!$Sk1MSjqH!!&pIAPj
FA)!!XV*58Nj1J!$)b#3N'KU!!$Xl,Li*#B!!q[VDfYE@J!#+LK-6$!b!!+UUQCN
R*i!!+#J5%JS+J!#DQMdp-M+!!)1$L)L!J)!!iZ,LiZ,LJ!#!J(amHRU!!#`X+bX
)#)!!DfX2$``-J!$HhYA9dp1!!*qI&aF0$B!!%K)5%K)5J!$TkFA&#JU!!"B@&KB
5%S!!B'"58J8&J!$fp[EfprH!!,'aPjF-$)!!Ji0bFK%4J!$bmZlZeYD!!0VDeYE
@eS!![,blZlbmJ!"UDQTUD@Q!!,Li&KB1$S!!p[ECfGE@J!#bXTD@"JD!!*16&"3
-$)!!`F'fYU5NJ!$ZlYVDeYD!!)k1MSk0MB!!1$Ji1$FhJ!#5NSU+!J+!!1RTRCf
@PS!!+bXK)4SDJ!$TkGMB%K+!!*kH,bmK)B!!JS*QCQCQJ!#RTif0#`Z!!0VD-M)
Q*S!!,5dR*`)#4dP'1$PK@J#[!1F!!!)#!JiV!K3m!RYT"(4Q%,@Q$E8-#qEHGT)
0#Z%H$m5X%S%0#RS2$0FI%F'T'I1bUZRQe(80#Ydm+lFK&ai#QXfe'lDE"RKZ+1[
SfPX0#dikXT!!2!T10UDK)K(GFQh+XLVZeQSH'J,cm0TfEMVKc#8f(U-N"J1+HMj
%1`5'*adC&J1rT!C$2",UeYB5%JVLaN,lpYTSA4a-)![IdQ)G(JDmQ%D1I!q,H36
)V!DrTc1#JS(@'JhhmYB9-!EHbQi1$JZAMX2@X`feEQ[kq[V3Y!E@Ya+#GE[QfQl
DfYQBK!Eki0kUUDQQP452J5XF2`3r2$I5YM*T@`Ee[VV1'!fIRTX@!`+ZE@RMK(k
I%3cQ[K*L@ba,45P4#38Q)3)c'U*m+"TmE,E9[!Z[VkbLPMlIYl2dhpX+#JM)'!a
fBPl@UUI@ZJBZ+K6HEJUHL!ENhlc-bXcbeYBR0JVHcS,&IRR28%I*a,*[BPlfbVC
E6NDaUGaZ(aQDLL-c-M$DJK,ljqE!KSD9LE[LfS*k@PVkpYC*#3D(HlYG@6AH`lq
QCQ+1LP,KZJe853ALd"*58P,HhYeLBQ#fVXEqr[jE4klL-LE#UDRYi0l9Q*A2cY$
am1m'"JAZeYCeG(,!&`fI996YkpE,`!dL)!SU+LR@eYC(486NiYB@-J,M[JcD[JB
E'KLFL"3Q2K+U&!f8P*2mpYkLLJC',kDcSJqi3$VCAeD`&3hJ,Kh0[X(0QjNl"3A
Hc"EPep8Y,J)q-M*55dGC6K9Q8UjA9PDZTmDMN!#1r2$V,LiY*KB#0P)UCP@dVCq
a5dY+p1MQa-6)l)k+j8j$D"S6JK-0`El3)#!HbDi0mYV@k1MRAejFXP*1b#3D1bi
*qYV@LK--UTNR+")+QMdbJiL!iZ,LJ(ak,#X)D`m-hYA6RaF0%K)5kF8+&KB5B&)
&p[EhXCF-Jh)4mZl@fYE@[,ZmDQTTZ"B1pYR@XTB'Na3-`EDNlYV@MSk01$JhNSS
#kCf@+b%DkGJ5RLmKJQCQTid,fM)Q,5F#,!!!!!"D!+m!3!Mq!#-*(%L`S-'$#"-
UA-L3!1'`KT%`14*&%BR&LaBGBGaSND,(Mb"$L[4i594*NU)FB8)BkL($)48GbG5
)4'6(N5G,RM4CNq+PQMp0#[8CG1G1EbaG-U3i8k-SLp-`SCZ+EXL3!%KA%rBXk@J
)9A45V4B8KJf10%dYdZCLpr(5Y+3%!3aF!XfE0fKL0ShbpJD9-TP)N!$9kiQNhLK
4!+L*SXE('bUN[qSY3G@Z(DV"@)FX!4$C'lC$!#JG'[BY'+m@QNB&UdGC&"pUPeJ
0QrBi8Q5",38#f-hlPm!KBP$a4X9+)P"4ShMc(S9%*99-5&C'FV668F(0[1#8a9C
@'ZT$GS,qD8VQ*eNC12$5`p0H*MdF1#fUZ0aGF*Sh4mL8!cKFX*(qhD,i4`8QhA!
fa#8!AM)-!+J-B`i!M84#"@H4f!2!-!X#8%mNQ`"JcbDD-EJ&JdKYjKY"Z3f%L6G
2hIG44c9&*a!51Y&S(3`i`S#"4GjJ-J3%+&%N`L#$f$F0"26NJKjhCF&4L8qjN!$
&R4)XIS513D&NiJd'kr$!JbH9d%4B48raj#@14+E*3jTU%VRQ)'[bd*-M4'+5c**
-DXHGGZqYpek6D@QA(RIZ`@&#&fYk!PLCBilN%6R$f"2+$h9GSX`cbPcLSd#BC!,
!$d0-`p-d@GQQhc"HjY*#,QLK"NHVrQN0#NpCkQN#4a@CB25L4cf"9")58b%c5LL
SN!$cJaQmCC)*0)p`kLNjBN@53!)ll,"+"!XJ8-@fZcecL5hLS+HR"qr-JJ8$$2b
j(UhBT'F#!$@a`dk[[*DC%dAHM2*%+1D3!!2!PGiJ`iHPj,bK6#JkX2,I0Cm3!%!
'G'#&K$Z(*%$,P394L`!$UlaM`#VR-S!)V@LTDUX*QB688c[$)-XE1BqX8)3KZi5
JJMNZZ1#T+iSS8Xl23!1G44C4r'#)2R2-XX1dddjK`"3lR'&!"!Bd$I88UcJ6MM0
#,)RHH[3NQ@3PPG#$Ud9Lm+(I$qV!SXBT(m3`E$l'rZ##h5kiR-RqAe'KX`k0Pea
5$akm2*%*-4PNXmS8Cqb3!1dCN!#Id3!RjElc$LH3!&rp$J,CB,%i*eAXPSNCHSa
M$6-Qr3$!*BjimLB2pEL`QcQM32-$16LEdqrG,N$M-J"[6&-93N0iNb%jhV46ccI
8&+2+0GLq-d8#$8bq#J)4B*[ppPc)X!XLqi`McbTRd()(R&jf%B)RkhJ#`85"Xr)
l!1B38)%D#Ub`!Jj%R2+f'J!NJMT8aaXcf1-5"f#%2KE)3(e8J!RT5-FplT'%IU"
!1@E3`[e1i6m!rSm!RYT0YZMJ*5$j"!#)mK)2eX&#&VTM0fEB3a"`B)&ie0!#k4K
!#%))J%aF``,qr8Y(&,V!3aGd3ADmqF%23QJ'2#MJE4dF!4*rd!88T+*fd)"'i(B
L#RDiJ45HB"m,Na'#&,V*6D436KXkk$m1HY#0DP"%%HCBK#!8)BjZG1-DGN11*lC
4MN')"Ji%L3-l!K#1S0M0$m3KaKCf5BASid%A%1@Q1-(TM&p5"MAm*ETr$#!D(-a
M'dICaM$d`e1C)!!849N%#bb#KhaSacVBG%Ed4I+5Ah)$4AEcNhXKJ452E"-N[65
N5#*K#BrJBE*S%),rp1B0N!#N*5eI0iMfkG)S60P8*&*8%,"iJeifF4d(+(",&FE
*R)-B%LPm3K&*8)#BFCTPqhV&49'3!!*M#rlK*N3)!TCT81!9(QN("54aLB(U""!
8!))M"NT28I`c+1jmKNq3!1"1CHb6*D'iU%BhbY'0kP-K&@P18`#6NHC`"*aP%NQ
0KK)5R3bPRR"jb90%kT5RG18jB+&+Y!UbPC4NCLT5S3T#[(%[S331+3IjD%*LFT1
CHS0895Q93QMN%@pi4DJ%'3+6X1%GY@K#("-9#P+aT*4)b%8J5cM4,eMKL%IXjK%
JH8CbpY-1Q3!J2hc)&'Xmj)dP)+-NJV%1@Ld%!$5N*aM#XF1VNV-,e34M&+UUaB,
-83Gal(8BYFK&,Z5M'mlmJV"['-*Z50S4i9(&2rTKK6ImXk(0f!-k#4VqE54-0&X
)+3%E`9L2fS,K"rmX)4,H!!!dd1%(5J"J&m)iKR"ria86P*8JGU%*Vf)d%&&J!K0
#3B*!6!+6S@#&+$84`CT%8"*2&*-8iQJ"2B3aN!"T)1'TM[!$NkiLN@Ni`US&#FA
U6()5GNKhTLQeL&[!BK*([+j,-1""MJD4B$Cj*)bZ)e)b@U!R26'T81YaMc6#C"(
T#)5iYc8"+0+%!@q3!-)Lm`S`QAlLKNIq)"4mX)Fpq-!($)8L&2Q!"LTd4iiH+p%
-CP#Q-hI$(8hBkX,[XG@Xm[5UY+4&%e8!a3V[dbK`p[3M,ai'0#!e%DY+05+H#S8
M-M8m2b6J$2,3([j[KL%198QM$0)i#b+baBeDU#9XU+'(HR14T,24kmrJ2)R`a,#
[PS4L&1j`Kii"`)GR@130MqJ8!-K"%&P-kaeBQ-!F$S%%GRLJ!6YJaM,Q))YCD)d
,h,$'&*aQ!!C%S"0EABq63aG5AmAS1+*3aL0q)#NPiZdE3q!N+N"J#P0FS!NqZ!&
[@2!*GhcM#r*B@J0QX3X!#'&D(3+!1`BLM'RY3"l1B%!+UT''flBV6dmf9+j%X3N
9+#F6+'K#'2))`#D-)J3jbpQaP"-&RbNL#%()3Y$+)A"3-'%4ah9!')V!M@`XS'1
Vb-BihJ&UDf&"(J`)4`4Z`D"Z(#)AKdL$,IiXBBXd())Y*J'!P$e"#TV-4!c8q-%
6KS'+BZ&-"ITZd)0i+4@&k(Fh*L$%1+l9J3l-BJ*,SaE6V%@eMh(#!*EE3DXMm#j
bZ!-*IZ#'2$M"$$Ke!3!88CYb@"#0YkR$"6A(QGh`"SfGm`BD9%K*Mi!+J3ALiK2
kq-30&Z%%!3LJ&$d)3!"k%!FC4#!$A6!($3LiQa#S)`b("'!4&R%02N,!R*)-J5-
GbB00S!)DS9"(2hS"L[QKJ!NEI1-T`J"j043K&IB3XMh1iAEHG+%*'b5PreD!F0i
JJa3*IX!NaN'(L8cA$5iBF649q-*2T@,H(36J$'XBMhLN)aj*L-)L"[l3MqTlhiD
$r-GZ90#2&AcI"ZIS`V&8F)d"H0m#+iJ'%3Ml!aD6!J+EEq%+*6RL5pU5"rP43#c
3"[fMHSF85U-%4DX%3(XdDAk%J!VB3853!!kp`%1K3!@2K(RPC%jIK`3YjL@iC%P
[iRpHFJQE`(LlJ3Tl3!3,q%D'`"Xhi%Bii$!&Y!QB)%eXmMVRY%)3F"a&N3NCK3l
fp9)XP4)3-#3m8%b4"),$*),Sj!P8j4&(1%h5e$ipH#mRS4)ap4,V8#86G3P!3!&
'B",+3!'qm$F8S!&HJP$(-!ML8!*H!!3N%BB8F!`mi&#53&%8d!k@-SC2i3PIeK"
+e9&CK3lIe"Eq,"8i4$%8lq9KK*K8'I@)NML*([9FP(L*Q*KIPRJ33c!4'$&5)N9
6STJ4BX)4!2CR43%82YK,21&65E@*"h&VJ&'+!1BS,S@)4%J54F91['K8V,1&#Y&
GS[J4Q@%9Al&6"3%r&9%39S'-"8&849K9`*J3-"'+d[9832898q'-!f&mA)%91,@
0J6J%PD"CZ(J*Bk@*%"%6*08LaaL)XAJ89l@0"S&NUh+2ZF"1*C'1+&*@Cc9E*l*
G2h%4pq80bS!+hp!Fhi!+-C)5MNJ3p0)9AS%+[c80G4&VVk)UU+%*Z8J4`2L2D58
3[q"AMm!+*LP40E%*F#88e,!*#1)4'Q,q$dX`NfrJ9a5"$0dJ@-U`)3,a$EaJ'YT
K'Sq9&MpT'#8"GK44$e3JNdY!"Fp`&B0B%#Y#@M5P%5IaAZk&P+eSA3-4N3Ha9B6
5C+JaPNEQC%p@PQDj@I-"NK55(`PT%Bp`'IF9&CL3!"pX44MHd!f03"FHSJaU!`f
X!&LMB"e[F"ZEJ3IF)3LmB3HDX*!!(P)29Z&jM"B-l8)*MA!-`S%%b3!2R'9@rpK
HDV-%(E%*I!#CTH*E[q%4U,NCMB!1#!*fVfNGY%9Ee@B(P*!!(-F3#DYT@qe#(l3
e%%1`$E!S%94@Lalj'e%"&'ma"$8"%kjT%YpP9,dS#ZcM*L@K#8U3!"@KrM+%hQ"
Zf!#2rAJ3pZ886986AE&G)+&GN8!4%Y'+NI#F3b%#5NKP)V!1kQ8VF&!'3i"GTH@
G`Z#*%q%)q)3ES5#%3q&IZN)QM1)MJ$-RYR4,DU+-&"&'mZN*da!VjdBSA#80,$)
0hZN(SZ)6$iN9fl"I[c)6RFBS,8@GF3)$P94,1*JQ[H)*J`!@CA"Nfj'MHr)HAl-
ZVr)R66)Sf(!SVq-*90C8Zd)4T!##lU"%j2"jS*G&0BF+0h-h5k3X@0T$@DSI93!
)KG)Z2*TN6bB05aD@6()SF0+&dS9bMN)4AV31jK!T0,G%30CMmc0NH-SES@"ZVk*
NB,NR6NB2K1)HrL+f*Y0`BQeU,leS$U%J+DM`#jIL,BiJ2#VL+BpK+CNLS&La$"1
!"9bJTqT&TR&@-TSP$AZL(Ri#$r5J#DYD"@DJ%68e%[4b&1L3!!N0-JVfJ+XheRD
08DN-)LU#j@fVX!!4J!Aki@4+BKE5F!8HJ`A1d!Q`SQITGM+jFK'b@QXe!KD2B!m
k0Jam!!fld3Lr!+lK#QD64K",GchCJJ!)3+cX5U`,%!l0S!G5!!ri%$@cX$%-3!C
Jk4j3PM)TT6)*kK(SJ!5-35bSm"04)5UMB!i%-5$2`Nq6m'fd`&i#S35d3![Bm"Z
BF+mEJ`@@-`A[-+`-X!#RUJQXmKkK8jkik2k$2-%+YG-[2IB@b2!,$'*@BV!Ehk!
`Ze%!Ra!$,+!054!1fB!2da!+6d!0c*!!!(IJ$T[`9`2KEHJbYHK5$Arb(V%#$e#
QPEAQ+rA`FiV%V5T!$[S'!+cJ$YF3")T35)SJF%"c$J!!#cjE!q13!(40B`!'m(6
9X!f#F!Gh)!@6`$46i!c1N!!#,E"NJi)HUeSbmD'90&)2XDFI8H!f(%3%-I!%qH!
#1(FhZp%2E3Y`!aFdLX!%FI!*Bj!!!hhJE9M!#3RJ0!M!#8[c$Z2!!-i!XZ'@2FF
J,[#K@CU&"00J*%J!)0R''pUJ"T!!4frqS`@6BU9VTabK)"RYm!Bqm!)c9%JirS!
$+k!#NkX,94!1A0!-qc!"(5!2i4!1$#"aib!qf4"ZYmX&fm)!l$S,eM#r%e#rG0!
#J3-J!+C*qJ'%MUSlqBBhHE-E5p!McIJE!m'c!,!05Y1kll!!dFBd%X`dCj!!03r
h$N[$#3M`"C@R(hKJG*1`*NF8JT@d$Ym!$8q`C3*X0bi$$6`N#U5L%1fJ(293$cT
3$jH!#%3l$V#EG0@#"3X`"3K30Gjf"YMcDPFK$(mJ2Pb(2Pp(%FU!$%K83#PFFf3
E`$RcH6bd"+6`Zk9b94*""Hlf+8l3Gi)RH$e3#M,`F*b!"4(3$&[`$I93EEDR$NP
!!-d%!#D3!!,i-%Y,f!Aq+Y"bE-%+,U`F,Y!2DT!!"$['1rVf!bZJ"MP!@-Va#kb
$#G0`!!f8b303aJ)3H)*A#J&J$Vq6#5kJ!+dAH3"N!mRL$ZB%*!#JHCXR!K2K$ZD
!JMd8Ea9!ErrM389`F2p"!!d8"Yjh!PX`aQr("!F)4`"%!'1maa0J$Cdk"r@%)&h
!3Rl32Zf6$1[J9TR3"8R`IIe`$FT%$L0`J'rd2d63")NdC$p3[20QcQkd!ZZX5+L
3!!rXS#Mma5YZi!KZ)%BK)'9,Z%,E$%1TJ-id4(diP!6&l%aQ!!lFphhLP`RrB!2
B&`AJS$-T5%5li3,YehdfY!9"pJ1mZ-m3d%L1"!ST42j0F-*$6!"(#3K)f2YphfF
"1("((Y5!,J!,Te"(qL26haGrLK"+6k")e*Pr,)4jr+I5AT*'[*%%NDI-,Jf"SK5
"$8J1$U"l#4KpTd!%ED!,bN%0R)I8Ip`&*#L#Jh!*he"l2l!)b-a'8Th9F!3,""3
+#S#!@Dd'&R""cc5#CEf"+J3"Q4!#,fT*Z14rJm!1-+Y-S+!1r32A(64[Hi"+MaG
+DM#"jr!l,X!+ILa01KM3kl$222'DfH8'4mL%KVf$NE319*!!)FT"$Vd`"JG)"1!
!3leJ!bLJ6+1`T$(D*[mh6kc)+e%a+I"cLlr5cq+eJ@U#6Qk#"0r!"jcd(jQ!$+,
q54'AapFiH%kHi!CFG*8BJ)cFj"8V%SA6L346L$jJ3!&)i0Flb)4!SSLL8!Kl5-*
[`N)3S%[k@"'!k(1`#*a'LK-Q-9#!i!YJJ!6Qp!aJi!Z!!)*%XJj!)!N16K%$03M
eJ1!Xj!PLi1"'J%fN-+,k[9&#f#[ZP"-KlJ9Hi)%3i%qq-!KH8!)pq"(ZC"&Z%)C
!J!6Yi!9LU+3$UP&4Z8rHN!#'`!!)ib5(Pf!%!`8%Vj!!8#8"$"33K`d1"%UqNTG
!iQ!SKX"3!K6`&SrB%KLbj9cHj9jZBcGQD--3jQ'H4E8XC2pK"ZB!$@0qBfhqjA!
HjffZjA*HjhCqjhLHjhFHLIkCf1GpML&q(ZLB11ElC)JSPDL)RZL+AK'8LK#%hK!
KHP)PC9+5,ZNVkP++Q1Qh'#3QJH8'mHJ-%5-S1P+M6ZQ9IQX+bL[Be*&2FC@+k1K
m(ScX#+ZQ1&eYZZPF*0km@%qiH*bI(ZXJCBhrPDJeXZVL6GbYRZb*1*fZq1[V')V
@qL,h9C!!aFP19(AXiMf`bMkG1I',"`(U#c&6T&84aTK6laL,eJkFAY'-i1Q&ZmL
2!`(Z)#AZd[9Hf@MZ3B83e1%4eM'2fTMM!Q&mc!l[!L([5dA[YfCDjRiPi$NM3h&
6rhl!`%N@IDS*E(%[""m*"Sm3iUiVphAZSIi49RA[ApEq#VH&(UfLNEdS@-lH%#&
9RNL`lJe[%$d&mF2666ZDmQJ"9Vr0mJ9"k$Blb5&CA5T+N!"[%)$)S!c0iF8*iBd
T!Gj,B#(3m&Z4J'5`BQ4JeBZA!1Ya-4Fb4L'Ai&EQS&Vhi3MIm!KL-JS*#3"Za3I
DaCHE-&XeYKp2Ea8!S*1HJ9J!B!I5m&LUSKVe`!IQm!JX`b$Y-&[J'[F&(q[r+!B
RXTI)B!r)J!aMIa'M-"JH83r)J"K8CEE3m!ZI0C+(J4cei21ce5'8B"VFm9K$f3)
rf3fMMj3P34HJE`mR!ZiJqIK8m!hfS!bk*P%8m3cQX!N8X3RQS!b)m3f,-3ScE&'
5rZ&A*A(jkKPF'e)*['!(8K!DC,!,TB%+Y9!,jP!2`B!-Uc)-LP%2`c$$aj!!#cZ
E#j8!HLpK(iH)kQhKZlplpemBmed*AJBa"'AD,J!"$`iF6CTDj$T)lf#,&Z*DD#+
)N!"KVPa93N@+Y%5MaMFB-8jcY)4929'1[%hcKZ55U#AeA)kXYd58+#51N!#S&18
4TkK,5$aLK!#-%MDL4!Fb,%K3fN##5CP#T'H`iX9)!!"Sl!B03,e)MUa5BrA)UKK
(2@dL!d$0CEeZ5aaK3KFh,LDINC!!c14Ceq-5!,b+BK2i80SS!-(L$SQVT)a!10L
82#B+6jT&M&BpeJ2`UbS!QcG[L[lbKQl)k&m!h&'K-P,CY%B!S#eT$8#($J#SH&V
eb9FchdEB[[80CJi!T@qS!0MMfVV4-H2"i2%phQLd%K08V9j(Y535*UZG26Y#2(T
)kde,8(Gl*UUdGYe$N!"BRBNlBqEj[p!GXQ2FDV!KkqFh3NF*E+`D3J`!'[N*R@f
X!q#R50$aKTADC)+1UjrmLf5)DAJUM3T(*2aP#&'X@XNUC5,CK$iUk,-+MKCfZ5U
5dX5S$)"$I+020`IcSDS4"$dD`L5EPRKNP&&NZL6"EdC""TP'IQRbNRT'@@f*8HT
"4a3MmGTNP%HH'@868ZCT4)G,RU''Pfm1q@@6VYaTK"9dK+(q"!eHkTN')f8DXG#
M8+Kb-"*[[((%1laQmXJE6$"aC+DkH(*[3d64@FR45`BC4)4+24%"dd&QJN-*MaK
G&)PTLK)')h43`L63B3$pDBK"EF,V,NFp%Q8D5A[#D#CdbTSTb5&@X[85%6SGa*1
52&PR(BS3+Q1)l@KbK*eTr#JUVN)a!DR9Rei0p0H82M[88@pj`SYA%5qCTPLIGXA
V@%aj3)*34a##!al'bX$Nd&1,fR#PPEb4pPZU9V@e8(*YY662VLbGD3JH-)@KiSS
p*HA3P85Bq#4-+XPPUEq8)+L5ZkB4N!!S*C*"pa*(!SdNP"mBaN[KFXZp"#j[dN@
#"ajJr["jBTrRpE4B6cJpPZ1Si2QV+-Cbm8-*TZ&4BZH"#rBS3"-!Z,NN3fYPZ&j
-,JjDQ+!(%ATLY09@9K42"d(RBhUB0UTTICR#'ak$@T!!KM%PX#9UkjNFQDCC3Mf
MkHC+13jkk+'*4[YYYKheCT!!)6!TBk#k0fHXXEq1JXKcE2)0(*5dHE#h8CVZqQ`
R4hlQB4fe@r%%Jf551AYYb*1GUA)Bd%Q'RXC%&hed[*QDU2LQ63"PE4iJ)-AQa-'
qC+9+JJk&4clXXBH2lBF"rdraSB('((0F-#166+jMRre3M0IFU)NB)MfbcJGL2ZK
TSZmXFA)eCJF%H0!+FS5#Hkq#"LVqb''1(ra!IHf$B!6Cpi1LK+jiG-ZA3+3b%'N
XT3TGQ0Jk["'pcl#$(@#MLF!U*3Tb$--HS5"(*NE4L%Hi`afr'!AhZRFGlM%TKcU
d"cRD&`SH##0i#XQAjc4B%,i"aRljqL$D-%!+*,#$GDZV9E#db"0c'"#'9(V'-j6
a$(D0DRhQS)XbaTJcMj6'I4"J#$hN1"'*N!"1Ai!C(N%8`Mbd3H"V+,696J6@3Mk
8$aPUc"8k()51p8%$#BMd&MiQm3i%4#!#9E$+--4"MdU8SB04q8-R1L%1K$J&$Kd
X#"1VS!))M*!!C[qMQFCbp32bN3-D2@K%0eK"KACi5e@0G-3Ek[ibK%RXi"d,L!!
#YQB9FdJ%)4f8KLcH-BYX-#!0$%R)Xjj&MbUB3@%R,"FXY9LTZ+#L%FL`ac!55)i
&aK!DhQ)N!-LK)@P*)3%*f!%@NVQ+pQN#AdR8e`6HB3!%-)!E5q'J31iQ$40N`S3
R2+%i(A8c6!aK5D%`KaPLZ$jbE#m8d-M%LH**MTrF%jpB3+BP-a!"3Yb##bm04c1
q8"4m'"-,P9b!%jd''(Jdp&"KZf,A5K)hC(b8'Sd3MPA)BBBIm-%P6e"'2(p3dRZ
H!3(bQ-8ik"!,!`b8%fIJ""DF%9-`B%-@8jM#1eEKM!JmB+F$-3JQ*bV1QK3VABY
baa-qL[k+4kL`(G"i`XZfd`fTrZ3"*hf(,%5cUQ8N3!+A1)NST#Q2"@#"%fMPa#`
@`)!&+"%1%QN"*Q2CZYA4LLH9`J3`H$%-9)"8N6q4%#D@G!P@)'&p2jK'UfB3L6X
dB"Aiq)N(%[!!"rNK!Cc)"J)'qSjhB)%"$)K&C&cd%(d*EU,AGG3V9`)-C2""J6m
`Jb+lJ4PS9+8G+G,"LUbLJ"X!J!#I`!8!j%&FNBbL'JR!aa"5Jl9l6Q%"#d!!&UV
jAd[`G'm(dB4FKGS6BXAb%ShJ!cPqi!)AQ1-CN8JI!-b"$J$m"J$GF-Ik!&!!4Rc
L#EhB`#Si-B%rJ*FAY%K!-13*$Ij[H-5Ncm@a-kT4[m"!C(30EGh#jRSA-@a#L'C
i!LSD51%IN!$M$IU*JL)88BiJP-2+","+-@#KM4`ii`chE%!$*V!0@54J%Y3!`!p
1&!PKA1'H1h"'R0-`0IXaCRj9b)6r`LQ+0fa#+pI*a$#fX!Y8R'r#CJ$!!)+3!!9
&-$S,9SDdP9h`!fh8S4Ucf)&*m@N!!qc!d`-p`cXimHB%M#21h"J)h4M$40$+pBT
hBB9q!,d*)UK"$A[B3LK8S13*Vfm&@3M#P#-GD8@S!392B-3mZ$'&rVjM"ja'3#@
aB&*Q*q!-cRLZ(LL433h5Jb+f@a4Fe)HAGSa#a0Fj4kh9F!TErX1#&fXS0*0GB*9
rp+-F`!lfX+fX#&1JJ!PGH%)1JX!'@R"#ZCTqacLbm3jVF%+Yf&j!"[)"LBJF*"I
IdG9YZ+D-F`0J#d`S3KMB[@k5Af!BjTXdK4(0[K$Ni!@-aX'8(feP0B5!#IGST#Z
qd)%*C#-FiC!!4`0fd)!TF')9@$!e!b+`J'9@33El'%I81c#,$X5#$*8#3*lEdA%
!'+)#)fIh+G+KK5G-HX)6R[4eH'(&rBRM$@m3KabJ%'`,J%)&LdK"CI2jhfa-S!2
MN!!(YTmE$JBi)a[M-)!qR5'$E"cqXLZH3!SQ-!&VH#!qA%YKV0YRKM8BiJN[6'!
$PmaNUlMq)j'ML83V4)!"4iJ$'Mq`LJVdJ1Q`VQ)"q-bdTKX!jKe-i3c-hX%CN!!
HL`fXr$TiQ$SG4#'#,S4!GBGLa6#Z%iTGK+,3+L#(#N32MAaN'!#V%3h-(L4%UmK
M&9DYj'8pM8p0plk5#$J$3CdpK8VHBS*iX-)ihL%"Y)'L#j&6QmG4KP"iJRaJS*4
$1`S$UHYJ&p36[bGSRaM3KJe!"-26[fScU4h!+I9E[fHcT'C`Kb4""dX`[`CBKSN
"K8a`"0QCPiRaK0,)Ke&!"3ScK`8k(d6,K!8NNGc#QN#C"[DK!T%BL8Z`JRfD!Nr
E[Gj,*J2`2GmcJ*4L!(%B!MLS"X$MrS3'Z!1e!38!8!QA8BC(N!#eV,-(!k3`XbY
$@i+pXG#9eiU99I''8,!+D&#'ELL'!,$$!)L$If!!HAJ(SU-kCrL#I8J",UL#+VL
&3K5a+XJ!&GX"CS#(aaQ%,C`*0lU1(eL%G###Mc+(3T1`-R5""')I9(J'8q("aCU
')rJ%"8L#HlJ"F!J!!4#!(VM$!#L&(JL(E"LVI`!&'RJ#mV1+De#!8f!h($L(V!1
!*jJ(5)c%2"-&+NJUUmL%IcL(D&#$'fJR&b!(*J1[FcJ"imZNGM!9Z-#%!f!%I6"
(IF!&A'#%!R!#@#b&1bb&Ij!!!4UJJAN$Y"KB0f%-1hDc!4(l!3MqN!#F6!L"Sk'
Ldl)(pXQ%,DJe*JJ"-mL`,X!"NE-eEIL(pN%&XcL#FMc(Ff3%@,L(GT6&(NL&44J
L)K!jNG0(NUY)UkJ#1r!8(QL85`#!%'L@QLa)83Lap[Q(%b!jNY[(-&#$-)#&Jfb
I40M)Fr`%#iL(TBb(!HL#pZ'&&E#eUG6(8eJ"AEL1$$!r,+J'6e!GV#1'QK6,GF!
!Gb!I9&J$&HJiFaJ")YM(I!3l0B#&81Li+)#&6h#!H(!&!S"$K!`"!UJ!@aXj`95
$0X$+6*U(+j!!!0mDKc[S`PS"J,!FbfEa"(Ii!A2J!aZ)"`Y)JNAB3N$6!QT-5EL
8b&0SJM#%S2jSY)'hl%PE8iIf-BHH@3G23)*+N!#&UjX*+h)%8S!!&3!KRaR,bP5
U*&L"cGa-TAa+pM%(EDJeB34+08J(&2"'#FS("f"0GLZ!&'5I")+'8"!&FC!!TCT
`"!LB6@B*JIpc(Z!86J!`Je4J0b*B!D9F5J[SKh2SJR0c!A"!!A[-ZQZ)JMD)Ke4
)6Q+iJ3'i"KA!$J*BJ3T)KF2-K#jB"(ASKhlB!QKJTa9D(9)J"@C*KTS8JI1-R"C
%'hH`L[BmK@+cY5,!!3Z3!-qP[)&&X-G-!)8)C8UQY)#+I0!NB%SE1)GVi%qV))C
&d-cja!(#5,-'fmh*V%NHm$qed4fI-G*-B2i#X!Xl05J#&Bh2'Zf('Th2&5##)P#
$0E#+(l#!)-K5TP5(+$J(!R!&TP`"('K1#%`c8H"0CQ'@b43Drh[*Y&N(pQN$`Da
5Z,65))J'(&L"q$a8(!"6`Jc6-CA+NBZ'q&4+q6c8)1M*8pL#%K@&XHc3f'NF6!'
&jRR5LB%!2mh(5a9'3,8e&)h,5a96HF)"4P8$&,e53"djBK3a9##&XI68!2382A8
FY5R9kqL#'fK1@eA9UEa84K@j`h3""@K0`5bfYm5"'d$3%[d&0`$1aR&5*ie%ddN
Eb&Q#0-`k-d!"#cM9G+9+4Ke-B9a*&eL"`@4A@b1#'`L"kb#(6A!%S2i*eYha9Kj
3!G24(3#-R(9SKfriXc%pKhL9ef9Yc9-)JhjBZ9j39PNP!KZi9[CN"8rJeR!083#
-RB`"J1Cj(+&"Qdia@3J3!h1Va#jBf(Pp@*(EJj@,!ANGaL4)6UYSK*lT@)rYeYM
abQ"*-diK'T-Pf0bj")4Y(e")"EH8eDTm6DYSJX%NJL6ic%bUJr6NeS%03"l`K)*
NX"(K'L4`!fC"fD*eRSr&P$F`8[E*"h@!9VJm"5*J!@JF!#+i@(,9-#V3fSlP@Tr
a"$G!Ph3"$H%)fjNS@aiifl2TeVFC"!KJKEj%5"8)K4K3J(6Jc`N,aBeY`ClY9q#
%!)K"PlG3*2kkh)QI+P['-GU29FC"@)G,-%X*fMal%!-khG1J8GeJ"GUl%*KDbDe
[HDH8N!#Pl1,0GAM*cRAFaPd(CG!"2[$'8+!#`JA)YH%BP-hGhGfL&%+#LR)9UKJ
#6`!*a6Q8$89Hb6RHmhe*fL`AJ&6F6-%8i`A1f46F&GU*DHK""`'A0JcDF@UCC9%
EAk!!52cAj"d%$'#B5j!!"!SJi*-0h0-Lh*,`*I',K2b&QF[*Q2kYRX&e"!V`KFC
&Ak)4SF'p"!U3!!6dABI3a4PcZ9m*TQ!*hJj*'5H9@!)+S)"A5'![3!*-13B+m!)
!jS#e33)[U'&*N!#%5jKKAr!#$K$LGR#$'IECJJ5@K-&9&"H'Q4DQiJG4ha35"51
J!#!)PJ4'!M#JJ(E!&"(Ji%%3BbVJhCRJiN)iQMUJ!'-3"@2SBJf1i#Xf'$`1&-4
)#35QJ-&pK6mQBEa3"K*H"`i'PJa1i"3#JLjHLAB)C%R`K"A@Bib`iNS'%Jl1'$m
'"P&i"5r!#bm!C8mHia8Di5KHL88@"5!JR$bJJ$c!j#U'P9M'#&HQi4,`K@F3AP%
!!b&q"8")&b!)C"*Z"f#3!)416Z9#8"3Ji!!++!&BTQAmRH9S&Mr%!)Rr'GbZ%4Y
+TQEm$3J!1`!!"`#Z!(i!"`!"!!%!!`!$!!3!!!!0!!`!%!"D!&S!b`$,!#J!8J!
!(P&eD@0V9'PYCDSJCA3JG@iJC)jMEfe`FQ9cFf9eFJ!!+!"A!!8I4dP')(0[ER3
JFQ9aG@Pc)("[GA)JGQPcG@&XDA0PFJ!S!&`!(!aMCA4dC5"TE@&RC5i!!!!!r`!
!!&[8T5562q8b-!!%!!!!!!!!!!#k*S3PZLD%*3!!!!!!!!!!!!!!!!!!!!!)Bf*
[G'KKEAN!!!!+BQpMD(-ZFR0bB`!!!!!8,5"cCA3JGQ9bFfP[EL"dEb!b,M!!!!!
$,!!,!!!!!!$0!FB!i3)!"!*25`!!!!!!'3!'!%X"fBL"9'KTFb"cEfCdGf&bC5"
TFb"bC@aPBA0PC#"eEQ4PFL"dD'8J4dj9)%a(8%`Z$8C[FL"YEh*P)'PZCQpbE@&
dD@pZ,#"bC@&N)(4SC5"QD@aP)#G$6e"C58j(*b"TEQ0XG@4PC#"TEL"dD'8JBQp
MD(-JC'PcG(*TBR9dD@pZ,L!J!!!!!!!!V3!'!0%"ZSK@6@&M6e-JF'pbG#"LH5"
%BACTC#"#BA4dCA*SB@dX)&4TE5"6C@jPBf&X,#"$D(*TFh4[F'KP)%*[G'KKEAN
JB@jN)%4KEQPPE#"(D@e`C@aPGQPMD#i!!!!!!0)!"J$e!EL)E94SC5"#Ef0SFb"
dC@&Y)'Pc)'a[EfYTEQFJCQpb)'%JE@&TER4KD@jPFL"QEh)J3QpMD(-JEfiJ6@&
M6e-Z)!e*CL"jEh8JG'KTEQXJH@pe)'0KEL"SC@a`,#"`E'9KFf8JBfpZG'&MG#"
eFbi!!!!!!!!&!!B!&J(1L"G#Ef0SFb!b,M%Z-5!JCQpb)%eKBdp6$3!!!!!!!%m
!"J#$!Fq)XP0[GA*MC5"MEf4P)'C[FL"#Ef0SFb"TFb"KGQ&TE'&LE'8JCR*[E5"
dD'8J3QpMD(-JD'pYC5"`B@GP)'&d)!eSG(4`1Lm[BQpMD(-ZFfpeFQ0PCQpbCf8
ZEQ9d,L"8D'8JC'pMG@ePER4KG'P[EL"TFb"[EQaTEQ8JBA3JD(4dF$S[,f*[BfK
c,R0[GA*MC@C[FQGP,QjPG#pNEf-[C'pMBQp[DbpTEQ4PH#jSG'eX)#i!!!!!!)B
!"J#R!Fb)C8PQ)(P[G5"hEh9XC#"XD@YP)'0[ER4bD@*eG'8JG'mJG'KP)%*[BfK
c)("bEfTPBh3X)("XC@&cC5"UEfPZ)'PZ)#"dD'8JBQpMD(-YC'9fC@a[F'9bFb"
YB@PXD@jR)'aTFh3Z!!!!!!!!%!'j!,m#%d!#!)!!!!!!!"!"Z3#r!K0!!J#!!!!
!!!!3!EN![`)63!)!J!!!!!!!%!'j!,m#%d!#!)!!!!!!!"!"Z3#r!K0!!J#!!!!
"!!!!0ZJ!!$AS!!!!Je028P3(fJ#!!"`!EJ!$4%P86!!!!#*%6%p(!!!!,P"*3e3
!!!!kBfYTC!!!!%B!J2rr!!!bZ!3[T"3!J!!!!!!!!!3[SH3!J2rr!!!!'33[Sp`
!J!!'!!!b@33[T%J&3@*[GA318(*[DQ9MG'pb)%4KG'%aNJ:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,12 @@
#define NO_ASSEMBLER
#define USE_WITH_CPU_SIM
#define PARANOID
#define fileno(A) 0
#ifdef __cplusplus
#include <cstddef>
inline long read(int fd, void *buf, std::size_t nbytes);
long read(int fd, void *buf, std::size_t nbytes) {return read(fd, (char*)buf, nbytes);}
inline long write(int fd, const void *buf, std::size_t nbytes);
long write(int fd, const void *buf, std::size_t nbytes) {return write(fd, (const char*)buf, nbytes);}
#endif

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>bochs</string>
<key>CFBundleGetInfoString</key>
<string>@VERSION@ Carbon</string>
<key>CFBundleIconFile</key>
<string>bochs-icn</string>
<key>CFBundleIdentifier</key>
<string>net.sourceforge.bochs.bochs</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Bochs Carbon @VERSION@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>Bochs Carbon (@VERSION@)</string>
<key>CFBundleSignature</key>
<string>BOCHS</string>
<key>CFBundleVersion</key>
<string>@VERSION@</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

Binary file not shown.

View File

@ -0,0 +1,70 @@
property bochs_path : "Contents/MacOS/bochs"
property bochs_app : ""
on run
tell application "Finder" to get container of (path to me) as string
set script_path to POSIX path of result
-- Locate bochs
set bochs_alias to findBochs()
-- Tell Terminal to run bochs from the command line
--Use the script's directory as the current directory
tell application "Terminal"
activate
do script "cd '" & script_path & "';exec '" & (POSIX path of bochs_app) & bochs_path&"'"
-- Wait for Terminal to change the name first, then change it to ours
delay 1
set AppleScript's text item delimiters to "/"
set the text_item_list to every text item of the script_path
set AppleScript's text item delimiters to ""
set next_to_last to ((count of text_item_list) - 1)
set the folder_name to item next_to_last of text_item_list
set name of front window to "Running bochs in ../" & folder_name & "/"
end tell
end run
-- Taken from examples at http://www.applescriptsourcebook.com/tips/findlibrary.html
to Hunt for itemName at folderList
--Returns path to itemName as string, or empty string if not found
repeat with aFolder in folderList
try
if class of aFolder is constant then
return alias ((path to aFolder as string) & itemName) as string
else if folder of (info for alias aFolder) then
return alias (aFolder & itemName) as string
end if
on error number -43 --item not there, go to next folder
end try
end repeat
return "" --return empty string if item not found
end Hunt
on findBochs()
try
if bochs_app is "" then error number -43
return alias bochs_app
on error number -43
-- bochs_app no good, go hunting
try
tell application "Finder" to get container of (path to me) as string
set this_dir_alias to alias result
tell application "Finder" to get container of (this_dir_alias) as string
set one_up_dir_alias to alias result
set TheUsualPlaces to {this_dir_alias as string, one_up_dir_alias as string}
Hunt for "bochs.app" at TheUsualPlaces
set result_alias to result
if result_alias is "" then error number -43
set bochs_app to result_alias as string
return result_alias
on error number -43
--Give up seeking, Ask the user
choose application with prompt "Please locate Bochs:" as alias
set result_alias to result
set bochs_app to result_alias as string
return result_alias
end try
end try
end findBochs

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,117 @@
#!/usr/bin/perl
#
#
# Copyright (C) 1991-2002 and beyond by Bungie Studios, Inc.
# and the "Aleph One" developers.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# This license is contained in the file "COPYING",
# which is included with this source code; it is available online at
# http://www.gnu.org/licenses/gpl.html
#
#
my $fullfolderPath = shift(@ARGV);
die "err: No folder specified" unless defined($fullfolderPath) && length($fullfolderPath);
$fullfolderPath =~ s{/$}{};
$fullfolderPath =~ m{([^/]+)$};
local $folderName = $1;
local $folderSize = undef;
local $imageName = "'$fullfolderPath.dmg'";
local $imageSectors = undef;
local $imageTemp = "'$fullfolderPath-tmp.dmg'";
local $mount_point = "bochs-image-mount";
die "err: $folderName is not a directory\n" if(!-d $fullfolderPath);
# Know a better way to get the first value from du?
($folderSize) = split(m/ /, `du -s "$fullfolderPath"`);
die "err: du failed with $?\n" if($?);
# Inflate $folderSize for disk image overhead. Minimum 5 MB disk
local $fiveMBImage=20*(2048);
# BBD: I had to raise this to 20meg or the ditto command would run
# out of disk space. Apparently the technique of measuring the
# amount of space required is not working right.
$imageSectors = $folderSize + int($folderSize * 0.15);
if($imageSectors < $fiveMBImage)
{
$imageSectors = $fiveMBImage;
}
print "Minimum sectors = $fiveMBImage\n";
print "Folder sectors = $folderSize\n";
print "Image sectors = $imageSectors\n";
# Create image, overwriting prior version
`hdiutil create -ov -sectors $imageSectors $imageTemp`;
die "err: hdiutil create failed with $?\n" if($?);
# Initialize the image
local $hdid_info=`hdid -nomount $imageTemp`;
die "err: hdid -nomount failed with $?\n" if($?);
$hdid_info =~ s/( |\t|\n)+/~!/g;
local (@hdid_info) = split(m/~!/, $hdid_info);
local ($disk_dev, $hfs_dev);
$disk_dev = $hdid_info[0];
$hfs_dev = $hdid_info[4];
$mount_dev = $hdid_info[4];
$disk_dev =~ s{/dev/}{};
$hfs_dev =~ s/disk/rdisk/;
`newfs_hfs -v "$folderName" $hfs_dev`;
if($?)
{
local $err = $?;
`hdiutil eject $disk_dev`;
die "err: newfs_hfs failed with $err\n";
}
# Fill the image
`mkdir $mount_point`;
`/sbin/mount -t hfs $mount_dev $mount_point`;
if($?)
{
local $err = $?;
`hdiutil eject $disk_dev`;
die "err: mount failed with $err\n";
}
`ditto -rsrcFork "$fullfolderPath" $mount_point`;
if($?)
{
local $err = $?;
`umount $mount_dev`;
`hdiutil eject $disk_dev`;
`rmdir $mount_point`;
die "err: ditto failed with $err\n";
}
`umount $mount_dev`;
`hdiutil eject $disk_dev`;
`rmdir $mount_point`;
# Create the compressed image
`hdiutil convert $imageTemp -format UDCO -o $imageName`;
die "err: hdiutil convert failed with $?\n" if($?);
`rm $imageTemp`;
print "$imageName is your new diskimage\n";

View File

@ -0,0 +1,99 @@
#!/bin/sh
#
# $Id$
#
# Make a DMG of Bochs. This script must be run from the main source
# directory, e.g. "./build/macosx/make-dmg.sh". If you haven't run
# configure yet, it runs .conf.macosx for you. Then it creates a
# temporary directory _dmg_top and does a make install into that
# directory, and builds a disk image. At the end it cleans up the
# temporary directory.
#
VERSION=@VERSION@ # substituted in with configure script
VERSION=2.0.pre4
BUILDROOT=./_dmg_top
INSTALL_PREFIX=$BUILDROOT/Bochs-${VERSION}
DMG=./Bochs-${VERSION}.dmg
# test if we're in the right directory. if not, bomb.
echo '-- Is the script run from the right directory?'
if test -f main.cc -a -f bochs.h; then
echo yes
else
echo no
echo ERROR: Run it from the top of the Bochs source tree, where bochs.h is found.
exit 10
fi
# test if configure has been run already. if not, run .conf.macosx.
configured=0
echo '-- Has configure been run already?'
if test -f config.h -a -f Makefile; then
echo yes
else
echo no. I will run .conf.macosx now.
/bin/sh -x .conf.macosx
conf_retcode=$?
configured=1
if test "$conf_retcode" != 0; then
echo ERROR: configure failed. Correct errors in .conf.macosx and try again.
exit 20
fi
fi
# remove any leftovers from previous image creation.
echo "-- Removing leftovers from previous runs"
rm -rf ${BUILDROOT} ${BUILDROOT}.dmg ${DMG}
# make new buildroot directory
echo "-- Making ${BUILDROOT} directory"
mkdir ${BUILDROOT} && mkdir ${INSTALL_PREFIX}
if test $? != 0; then
echo ERROR: mkdir ${BUILDROOT} or mkdir ${INSTALL_PREFIX} failed
exit 30
fi
# run make and then make install into it
echo "-- Running make"
make
if test $? != 0; then
echo ERROR: make failed
exit 40
fi
echo "-- Running make install with prefix=${INSTALL_PREFIX}"
make install prefix=${INSTALL_PREFIX}
if test $? != 0; then
echo ERROR: make install with prefix=${INSTALL_PREFIX} failed
exit 50
fi
# create new disk image
echo "-- Making a disk image with root at ${BUILDROOT}, using diskimage.pl"
./build/macosx/diskimage.pl ${BUILDROOT}
if test $? != 0; then
echo ERROR: diskimage.pl script failed
exit 60
fi
if test ! -f ${BUILDROOT}.dmg; then
echo ERROR: diskimage.pl succeeded but I cannot find the image ${BUILDROOT}.dmg.
exit 70
fi
# rename to the right thing
echo "-- Renaming the output disk image to ${DMG}"
mv ${BUILDROOT}.dmg ${DMG}
if test $? != 0; then
echo ERROR: rename failed
exit 80
fi
echo "-- Done! The final disk image is "
ls -l ${DMG}
echo "-- Cleaning up the temporary files in ${BUILDROOT}"
rm -rf ${BUILDROOT}
exit 0

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>PBXProjectSourcePath</key>
<string>/Users/bryce/bochs/bochs/bochs.pbproj</string>
</dict>
</plist>

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
#!/bin/bash
for i in build-*; do
echo "*** Starting make in $i ***"
make -C $i
echo "*** make done in $i ***"
echo ""
echo ""
echo ""
done

View File

@ -0,0 +1,48 @@
Here's a useful usenet article that shows how to build a filelist
instead of having to specify each one.
-----------------------------------------------------------------
From: John Ross Hunt (bigboote@mediaone.net)
Subject: RE: Newbie to build spec files
Newsgroups: linux.redhat.rpm
Date: 2000/07/27
> So, is there a better way, in RPM 3, to populate %files?
> Because I know
> 'buildroot' and it has nothing to do with %files.
I found this bit of code in a .spec file to build a %files list on the fly
and have been using it ever since. I've always thought RPM should be able
to provide a default %files list in the event one isn't present in the .spec
file.
--
John Ross Hunt
bigboote@mediaone.net <mailto:bigboote@mediaone.net>
%define pkg_name foo
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
cd $RPM_BUILD_ROOT
find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > \
$RPM_BUILD_DIR/file.list.%{pkg_name}
find . -type f | sed -e 's,^\.,\%attr(-\,root\,root) ,' \
-e '/\/etc\//s|^|%config|' >> \
$RPM_BUILD_DIR/file.list.%{pkg_name}
find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> \
$RPM_BUILD_DIR/file.list.%{pkg_name}
%clean
rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR/file.list.%{pkg_name}
%files -f ../file.list.%{pkg_name}
%doc README TODO example
-----------------------------------------------------------------

View File

@ -0,0 +1,81 @@
Summary: Bochs Project x86 PC Emulator
Name: bochs
Version: @SEDVERSION@
Release: 1
License: LGPL
Group: Applications/Emulators
URL:http://bochs.sourceforge.net
Packager:Volker Ruppert <info@vruppert.de>
Source:bochs-@SEDVERSION@.tar.gz
BuildRoot: /var/tmp/%{name}-buildroot
%description
Bochs is a highly portable open source IA-32 (x86) PC emulator written
in C++, that runs on most popular platforms. It includes emulation of
the Intel x86 CPU, common I/O devices, and a custom BIOS. Currently,
Bochs can be compiled to emulate a 386, 486, Pentium, Pentium Pro or
AMD64 CPU, including optional MMX, SSEx and 3DNow! instructions.
Bochs is capable of running most Operating Systems inside the emulation
including Linux, DOS, Windows 9X/NT/2000/XP or Windows 7.
%define pkg_name bochs
%prep
rm -rf $RPM_BUILD_DIR/bochs-@SEDVERSION@
tar xzvf $RPM_SOURCE_DIR/bochs-@SEDVERSION@.tar.gz
if test "/" != $RPM_BUILD_ROOT; then
rm -rf $RPM_BUILD_ROOT
fi
%build
cd $RPM_BUILD_DIR/bochs-@SEDVERSION@
CONFIGURE_ARGS="--prefix=/usr --mandir=$RPM_BUILD_ROOT/%{_mandir}"
export CONFIGURE_ARGS
sh .conf.linux
make
make unpack_dlx # must use prefix=/usr since this step sets up
# the paths in dlx bochsrc file.
%install
pwd
cd $RPM_BUILD_DIR/bochs-@SEDVERSION@
for i in "" usr usr/bin usr/lib usr/share usr/share/doc %{_mandir}; do
if ! test -d $RPM_BUILD_ROOT/$i; then mkdir $RPM_BUILD_ROOT/$i; fi
done
make install install_dlx prefix=$RPM_BUILD_ROOT/usr
# Build list of plugins on the fly (if any). This allows the
# spec file to support RPM building with or without plugins.
cd $RPM_BUILD_ROOT
find ./usr/lib -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > \
$RPM_BUILD_DIR/file.list.%{pkg_name}
find ./usr/lib -type f | sed -e 's,^\.,\%attr(-\,root\,root) ,' \
-e '/\/etc\//s|^|%config|' >> \
$RPM_BUILD_DIR/file.list.%{pkg_name}
find ./usr/lib -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> \
$RPM_BUILD_DIR/file.list.%{pkg_name}
# We could use the same technique to produce the complete file list,
# with only one very minor problem: it lists directories that are
# used by other programs, so when you remove the package you get
# errors like
# error: cannot remove /usr/share/doc - directory not empty
%files -f file.list.%{pkg_name}
%defattr(-, root, root)
/usr/bin/bochs
/usr/bin/bochs-dlx
/usr/bin/bxcommit
/usr/bin/bximage
/usr/share/bochs/*
/usr/share/doc/*
%{_mandir}/*
%clean
rm -rf $RPM_BUILD_DIR/bochs-@SEDVERSION@
rm -rf $RPM_BUILD_DIR/file.list.%{pkg_name}
if test "/" != $RPM_BUILD_ROOT; then
rm -rf $RPM_BUILD_ROOT
fi
%preun
# clean up the bochsout.txt that is always produced if you
# run bochs-dlx.
rm -rf /usr/share/bochs/dlxlinux/bochsout.txt
%postun
rmdir /usr/share/bochs > /dev/null 2>&1

View File

@ -0,0 +1,100 @@
#!/bin/bash -x
#########################################################################
# $Id$
#########################################################################
# build/redhat/make-rpm
#
# This script creates an RPM from the bochs directory. You must run
# it as root from the top of the source directory (where the configure
# scripts are). Then just run:
# ./build/redhat/make-rpm
#
#########################################################################
CAT=cat
RM=rm
CP=cp
MV=mv
MKDIR=mkdir
GREP=grep
ECHO=echo
RPM=rpm
RPMBUILD=/usr/bin/rpmbuild
SED=sed
TAR=tar
RPMSRCPATH=_rpm_top
SOURCES=${RPMSRCPATH}/SOURCES
SPECS=${RPMSRCPATH}/SPECS
RPMSPEC="build/redhat/bochs.rpmspec.template"
TMPDIR=/tmp
echo Reading version from configure.in script.
VERSION='unknown'
eval `${GREP} '^VERSION="' configure.in`
if test $? != 0 -o "$VERSION" = unknown; then
echo Could not get version number from configure.in script.
echo Exiting.
exit 1
fi
# clean up previous rpm builds
${RM} -rf *.rpm ${RPMSRCPATH}
if test -f Makefile; then
make dist-clean
fi
# make a TAR.GZ of the entire source directory, exactly as it is. The
# tar is placed in $SOURCES/bochs-$VERSION.tar.gz. Because the current
# directory could be named nearly anything, I copy all the contents into
# $SOURCES/bochs-$VERSION and then build a tar in $SOURCES.
${RM} -rf ${TMPDIR}/bochs-${VERSION}
test $? = 0 || exit 1
${MKDIR} ${TMPDIR}/bochs-${VERSION}
test $? = 0 || exit 1
${TAR} cf - * .??* | (cd ${TMPDIR}/bochs-${VERSION} && tar xf -)
test $? = 0 || exit 1
(cd ${TMPDIR}; tar czf bochs-${VERSION}.tar.gz --exclude=CVS bochs-${VERSION})
test $? = 0 || exit 1
${RM} -rf ${TMPDIR}/bochs-${VERSION}
test $? = 0 || exit 1
# create RPM build area
rm -rf ${RPMSRCPATH}
mkdir ${RPMSRCPATH} ${RPMSRCPATH}/SOURCES ${RPMSRCPATH}/SPECS ${RPMSRCPATH}/BUILD ${RPMSRCPATH}/RPMS ${RPMSRCPATH}/SRPMS
test $? = 0 || exit 1 # test that mkdir succeeded
# copy source into sources
${MV} ${TMPDIR}/bochs-${VERSION}.tar.gz ${SOURCES}
test $? = 0 || exit 1
# copy the spec into SPECS. The template is in $RPMSPEC, and we use
# SED to substitute in the version number.
${RM} -f ${SPECS}/bochs.spec
test $? = 0 || exit 1
${CAT} ${RPMSPEC} | ${SED} "s/@SEDVERSION@/${VERSION}/g" > ${SPECS}/bochs.spec
test $? = 0 || exit 1
# finally, start the rpm build.
if [ -x ${RPMBUILD} ]
then
${RPMBUILD} -ba --define "_topdir `pwd`/${RPMSRCPATH}" ${SPECS}/bochs.spec
else
${RPM} -ba --define "_topdir `pwd`/${RPMSRCPATH}" ${SPECS}/bochs.spec
fi
# test status
if test $? = 0; then
echo RPM build succeeded
else
echo RPM build failed.
exit 1
fi
# copy all rpms out into main directory
ALLRPMS=`find ${RPMSRCPATH} -name '*.rpm'`
if test "$ALLRPMS" != ""; then
echo Moving .rpm files into the main directory.
mv ${ALLRPMS} .
ls -l *.rpm
fi

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="2.4.5.0"
processorArchitecture="X86"
name="Bochs.Bochs.Bochs"
type="win32"
/>
<description>Quartus</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="2.4.5.0"
processorArchitecture="X86"
name="Bochs.Bochs.Bochs"
type="win32"
/>
<description>Quartus</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="amd64"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

View File

@ -0,0 +1,6 @@
#!/bin/sh
list=`find . -name '*.cc' | sed 's/\.cc$//'`
for i in $list; do
mv ${i}.cc ${i}.cpp
done

View File

@ -0,0 +1,6 @@
#!/bin/sh
list=`find . -name '*.cpp' | sed 's/\.cpp$//'`
for i in $list; do
mv ${i}.cpp ${i}.cc
done

View File

@ -0,0 +1,6 @@
#!/bin/sh
list=`find . -name '*.cpp' | sed 's/\.cpp$//'`
for i in $list; do
diff -u ${i}.cc ${i}.cpp
done

View File

@ -0,0 +1,30 @@
# To build an NSIS installer, get NSIS version 2.0a7 from
# http://sourceforge.net/projects/nsis
# Fix the MAKENSIS variable so that you have the correct path.
# Unzip the windows binary release into a subdirectory of this
# directory, for example "2.0.pre2". Make sure the VERSION
# variable has the same name as the directory, and in bochs.nsi
# the VER_MAJOR, VER_MINOR, and VER_REV values should also match.
#
# Type make, and it should build an installer called Bochs-${VERSION}.exe
MAKENSIS='c:/Program Files/NSIS/makensis'
VERSION=@VERSION@
TARGET=Bochs-${VERSION}.exe
DLXDIR=bochs-${VERSION}/dlxlinux
all: ${TARGET}
fixups::
if test -f ${DLXDIR}/bochsrc.txt; then mv ${DLXDIR}/bochsrc.txt ${DLXDIR}/bochsrc.bxrc; fi
rm -f ${DLXDIR}/*.bat
${TARGET}: fixups bochs.nsi
rm -rf ${TARGET}
${MAKENSIS} bochs.nsi
test -f ${TARGET}
ls -l ${TARGET}
clean::
rm -rf ${TARGET}

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

View File

@ -0,0 +1,290 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $Id$
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Setup Script for NSIS Installer
;
; Created: Michael Rich (istan)
;
; Based on Example Script by Joost Verburg
; also original BOCHS script by Robert (segra)
; updated for NSIS 2.44 by Volker Ruppert
;
;---------------------
;Include Modern UI
!include "MUI.nsh"
;--------------------------------
!define VERSION @VERSION@
!define NAME "Bochs ${VERSION}"
!define CURRENTPAGE $9
!define TEMP1 $R0
!define TEMP2 $R1
!define SRCDIR bochs-${VERSION}
!define PGDIR "$SMPROGRAMS\Bochs ${VERSION}"
!define DESKTOP_DLXLINK "$DESKTOP\Linux Demo in ${NAME}.lnk"
!define DESKTOP_DLX_PIF "$DESKTOP\Linux Demo in ${NAME}.pif"
;--------------------------------
;General
Name "${NAME}"
OutFile Bochs-${VERSION}.exe
SetOverwrite on
; Installation Types
InstType "Normal"
InstType "Full (with DLX Linux demo)"
;Folder-select dialog
InstallDir $PROGRAMFILES\Bochs-${VERSION}
InstallDirRegKey HKLM "Software\${NAME}" ""
;Request application privileges for Windows Vista
RequestExecutionLevel admin
;--------------------------------
;Interface Settings
!define MUI_ABORTWARNING
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_ICON "bochs.ico"
!define MUI_UNICON "unbochs.ico"
;--------------------------------
;Pages
!insertmacro MUI_PAGE_LICENSE ${SRCDIR}\COPYING.txt
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
;Installer Sections
Section "Bochs Program (required)" SecCore
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File "${SRCDIR}\*.exe"
File "${SRCDIR}\*.txt"
File "*.ico"
; Install keymaps
SetOutPath "$INSTDIR\keymaps"
File "${SRCDIR}\keymaps\*"
SectionEnd
Section "ROM Images (required)" SecROMs
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File "${SRCDIR}\BIOS-bochs-*"
File "${SRCDIR}\VGABIOS-*"
SectionEnd
Section "Documentation in HTML" SecDocs
SectionIn 1 2
SetOutPath "$INSTDIR\docs"
File "${SRCDIR}\share\doc\bochs\index.html"
SetOutPath "$INSTDIR\docs\user"
File "${SRCDIR}\share\doc\bochs\user\*"
SetOutPath "$INSTDIR\docs\development"
File "${SRCDIR}\share\doc\bochs\development\*"
SetOutPath "$INSTDIR\docs\documentation"
File "${SRCDIR}\share\doc\bochs\documentation\*"
SetOutPath "$INSTDIR\docs\images"
File "${SRCDIR}\share\doc\bochs\images\*"
SectionEnd
Section "DLX Linux Demo" SecDLX
SectionIn 2
SetOutPath "$INSTDIR\dlxlinux"
File "${SRCDIR}\dlxlinux\*"
; Fix up the path to the Bochs executable
FileOpen $1 "$INSTDIR\dlxlinux\run.bat" w
FileWrite $1 'cd "$INSTDIR\dlxlinux"$\r$\n'
FileWrite $1 "..\bochs -q -f bochsrc.bxrc$\r$\n"
FileClose $1
SectionEnd
Section "Add Bochs to the Start Menu and Desktop" SecIcons
SectionIn 1 2
; Set the Program Group as output to ensure it exists
SetOutPath "${PGDIR}"
; Change the output back to the install folder so the "Start In" paths get set properly
SetOutPath "$INSTDIR"
CreateShortCut "${PGDIR}\${NAME}.lnk" "$INSTDIR\Bochs.exe" "" "$INSTDIR\bochs.ico" "0"
CreateShortCut "${PGDIR}\Readme.lnk" \
"$INSTDIR\Readme.txt"
CreateShortCut "${PGDIR}\Bochs Sample Setup.lnk" \
"$INSTDIR\bochsrc-sample.txt"
CreateShortCut "${PGDIR}\Disk Image Creation Tool.lnk" \
"$INSTDIR\bximage.exe"
CreateShortCut "${PGDIR}\NIC Lister.lnk" \
"$INSTDIR\niclist.exe"
WriteINIStr "${PGDIR}\Help.url" \
"InternetShortcut" "URL" "file://$INSTDIR/docs/index.html"
WriteINIStr "${PGDIR}\Home Page.url" \
"InternetShortcut" "URL" "http://bochs.sourceforge.net/"
CreateShortCut "${PGDIR}\${NAME} Folder.lnk" \
"$INSTDIR"
CreateShortCut "${PGDIR}\Uninstall Bochs.lnk" \
"$INSTDIR\Uninstall.exe" "" "$INSTDIR\unbochs.ico" "0"
; Create shortcut to DLX Linux if it was installed
IfFileExists "$INSTDIR\dlxlinux\*" 0 no
CreateShortCut "${PGDIR}\DLX Linux.lnk" "$INSTDIR\dlxlinux\run.bat" "" "$INSTDIR\penguin.ico" "0"
; Add a link to the DLX demo to the desktop
CreateShortCut "${DESKTOP_DLXLINK}" "$INSTDIR\dlxlinux\run.bat" "" "$INSTDIR\bochs.ico" "0"
no:
SectionEnd
Section "Register .bxrc Extension" SecExtension
SectionIn 1 2 RO
; back up old value of .bxrc
ReadRegStr $1 HKCR ".bxrc" ""
StrCmp $1 "" Label1
StrCmp $1 "BochsConfigFile" Label1
WriteRegStr HKCR ".bxrc" "backup_val" $1
Label1:
WriteRegStr HKCR ".bxrc" "" "BochsConfigFile"
WriteRegStr HKCR "BochsConfigFile" "" "${NAME} Config File"
WriteRegStr HKCR "BochsConfigFile\DefaultIcon" "" "$INSTDIR\bochs.ico,0"
WriteRegStr HKCR "BochsConfigFile\shell" "" "Configure"
WriteRegStr HKCR "BochsConfigFile\shell\Configure\command" "" '"$INSTDIR\Bochs.exe" -f "%1"'
WriteRegStr HKCR "BochsConfigFile\shell" "" "Edit"
WriteRegStr HKCR "BochsConfigFile\shell\Edit\command" "" '$WINDIR\NOTEPAD.EXE "%1"'
WriteRegStr HKCR "BochsConfigFile\shell" "" "Debugger"
WriteRegStr HKCR "BochsConfigFile\shell\Debugger\command" "" '"$INSTDIR\Bochsdbg.exe" -f "%1"'
WriteRegStr HKCR "BochsConfigFile\shell" "" "Run"
WriteRegStr HKCR "BochsConfigFile\shell\Run\command" "" '"$INSTDIR\Bochs.exe" -q -f "%1"'
SectionEnd
Section -post
; Register Uninstaller
WriteRegStr HKLM "SOFTWARE\${NAME}" "" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "${NAME} (remove only)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayIcon" "$INSTDIR\bochs.ico,0"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayVersion" "${VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Publisher" "The Bochs Project"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLInfoAbout" "http://bochs.sourceforge.net"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Readme" '$INSTDIR\Readme.txt'
WriteRegDWord HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "NoModify" "1"
WriteRegDWord HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "NoRepair" "1"
WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "InstallLocation" '$INSTDIR\'
WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"'
; Write the uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
;--------------------------------
;Installer Functions
Function .onInstSuccess
MessageBox MB_YESNO|MB_ICONQUESTION \
"Would you like to see a list of changes?" \
IDNO NoChanges
ExecWait 'notepad.exe $INSTDIR\CHANGES.TXT'
NoChanges:
MessageBox MB_YESNO|MB_ICONQUESTION \
"Setup has completed. Show README now?" \
IDNO NoReadme
ExecWait 'notepad.exe $INSTDIR\README.txt'
NoReadme:
MessageBox MB_OK "Thank you for installing Bochs, think inside the bochs."
FunctionEnd
;--------------------------------
;Uninstaller Section
Section "Uninstall"
ReadRegStr $1 HKCR ".bxrc" ""
StrCmp $1 "BochsConfigFile" 0 NoOwn ; only do this if we own it
ReadRegStr $1 HKCR ".bxrc" "backup_val"
StrCmp $1 "" 0 RestoreBackup ; if backup == "" then delete the whole key
DeleteRegKey HKCR ".bxrc"
Goto NoOwn
RestoreBackup:
WriteRegStr HKCR ".bxrc" "" $1
DeleteRegValue HKCR ".bxrc" "backup_val"
NoOwn:
DeleteRegKey HKCR "BochsConfigFile"
DeleteRegKey HKLM "SOFTWARE\${NAME}"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}"
Delete "${PGDIR}\*.lnk"
Delete "${PGDIR}\*.pif"
Delete "${PGDIR}\*.url"
RMDir "${PGDIR}"
Delete "${DESKTOP_DLXLINK}"
Delete "${DESKTOP_DLX_PIF}"
Delete "$INSTDIR\*.exe"
Delete "$INSTDIR\*.txt"
Delete "$INSTDIR\*.ico"
Delete "$INSTDIR\keymaps\*"
Delete "$INSTDIR\BIOS-bochs-*"
Delete "$INSTDIR\VGABIOS-*"
Delete "$INSTDIR\dlxlinux\*"
Delete "$INSTDIR\docs\index.html"
Delete "$INSTDIR\docs\user\*"
Delete "$INSTDIR\docs\development\*"
Delete "$INSTDIR\docs\documentation\*"
Delete "$INSTDIR\docs\images\*"
RMDIR "$INSTDIR\keymaps"
RMDIR "$INSTDIR\dlxlinux"
RMDIR "$INSTDIR\docs\user"
RMDIR "$INSTDIR\docs\development"
RMDIR "$INSTDIR\docs\documentation"
RMDIR "$INSTDIR\docs\images"
RMDIR "$INSTDIR\docs"
RMDIR "$INSTDIR"
SectionEnd
;eof

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.