[steeldump-cvs] r4 - trunk/steeldump-web
dlichteblau at common-lisp.net
dlichteblau at common-lisp.net
Sun May 21 18:33:09 UTC 2006
Author: dlichteblau
Date: Sun May 21 14:33:08 2006
New Revision: 4
Added:
trunk/steeldump-web/
trunk/steeldump-web/bg.png (contents, props changed)
trunk/steeldump-web/index.html
trunk/steeldump-web/steeldump.css
Log:
web pages
Added: trunk/steeldump-web/bg.png
==============================================================================
Binary file. No diff available.
Added: trunk/steeldump-web/index.html
==============================================================================
--- (empty file)
+++ trunk/steeldump-web/index.html Sun May 21 14:33:08 2006
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Steeldump</title>
+ <link rel="stylesheet" type="text/css" href="steeldump.css"/>
+ </head>
+ <body>
+ <div class="sidebar">
+ <div class="sidebar-title">
+ about steeldump
+ </div>
+ <div class="sidebar-main" style="padding-bottom: 1px">
+ <ul>
+ <li>
+ On this page:
+ <ul class="sub">
+ <li><a href="#installation">Installation</a></li>
+ <li><a href="#usage">Usage</a></li>
+ <li><a href="#bugs">How to report problems</a></li>
+ <li><a href="#building">Building Steeldump</a></li>
+ <li><a href="#extending">Extending Steeldump</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/steeldump-devel">
+ steeldump-devel at common-lisp.net
+ </a>
+ </li>
+ <li>
+ <a href="http://common-lisp.net/websvn/listing.php?repname=steeldump&path=%2F&sc=0">
+ Browse SVN
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div class="sidebar-title">
+ steeldumped applications
+ </div>
+ <div class="sidebar-main">
+ <ul>
+ <li><a href="http://common-lisp.net/project/beirc">beirc</a></li>
+ <li><a href="http://common-lisp.net/project/climacs">climacs</a></li>
+ <li><a href="http://common-lisp.net/project/gsharp">gsharp</a></li>
+ </ul>
+ </div>
+ <div class="sidebar-title">
+ steeldumped libraries
+ </div>
+ <div class="sidebar-main">
+ <ul>
+ <li><a href="http://weitz.de/cl-fad/">cl-fad</a></li>
+ <li><a href="http://common-lisp.net/project/cl-irc">cl-irc</a></li>
+ <li><a href="http://weitz.de/cl-ppcre/">cl-ppcre</a></li>
+ <li>
+ <a href="http://common-lisp.net/project/climacs">esa</a>
+ (<a href="http://www.cliki.net/esa">about</a>)
+ </li>
+ <li><a href="http://www.cliki.net/CLX">clx</a></li>
+ <li><a href="http://weitz.de/flexi-streams/">flexi-streams</a></li>
+ <li><a href="http://common-lisp.net/project/flexichain">flexichain</a></li>
+ <li><a href="http://common-lisp.net/project/mcclim">McCLIM</a></li>
+ <li><a href="http://www.cliki.net/spatial-trees">spatial-trees</a></li>
+ <li><a href="http://www.cliki.net/split-sequence">split-sequence</a></li>
+ <li>tab-layout</li>
+ <li><a href="http://common-lisp.net/project/cl-plus-ssl#trivial-gray-streams">trivial-gray-streams</a></li>
+ <li><a href="http://www.cliki.net/trivial-sockets">trivial-sockets</a></li>
+ </ul>
+ </div>
+ </div>
+
+ <h1>Steeldump<sub style="font-weight: normal; font-size: 10pt; color: #009c00">BETA</sub></h1>
+
+ <p>
+ Steeldump is an unofficial APT repository for applications written
+ in Common Lisp.
+ </p>
+
+ <ul>
+ <li>
+ Steeldump provides <i>binary</i> packages based on
+ <a href="http://www.sbcl.org">SBCL</a>.
+ </li>
+ <li>
+ It uses sb-heapdump as the binary format.
+ </li>
+ <li>
+ The focus is on end-user applications, with libraries being pulled in
+ only as necessary.
+ </li>
+ <li>
+ Currently only for x86 (built by David Lichteblau on Debian testing).
+ </li>
+ </ul>
+
+ <p>
+ All packages included are assumed to be Free Software under
+ various different licenses. <i>No warranty whatsoever can be
+ provided for Steeldump.</i> "Now fear, comprehensively."
+ </p>
+
+ <h3>News</h3>
+ <b>2006-05-21</b>
+ <p>
+ First public release. Please test gently. Based on SBCL 0.9.12.
+ </p>
+ <p>
+ Changes since the very first #lisp preview release:
+ </p>
+ <ul>
+ <li>
+ Added: beirc, cl-irc, trivial-sockets, flexi-streams,
+ trivial-gray-streams, tab-layout, cl-fad, cl-ppcre.
+ </li>
+ <li>
+ Fixed: climacs command table issues.
+ </li>
+ <li>
+ Changed: ASDF integration. No more startup messages.
+ </li>
+ </ul>
+
+ <h3>
+ Installation
+ <a name="installation"></a>
+ </h3>
+ <p>
+ Add the following line to <tt>/etc/apt/sources.list</tt>, then run
+ <tt>aptitude update</tt>.
+ </p>
+ <pre style="width: 60%">deb http://common-lisp.net/project/steeldump unstable main</pre>
+
+ <p>
+ Packages are all named <tt>steeldump-</tt><i>foo</i>. E.g., to
+ install climacs, type <tt>aptitude install
+ steeldump-climacs</tt>. All packages install exclusively to
+ <tt>/opt/steeldump</tt> and do not interact with the "normal"
+ Lisp packages included in Debian at all.
+ </p>
+ <p>
+ There are no source code packages, but full source code is
+ included in each binary package. (Except for SBCL itself, which
+ is packaged as <tt>steeldump-sbcl</tt> with source code only
+ for the contribs, as usual.)
+ </p>
+
+ <h3>
+ Usage
+ <a name="usage"></a>
+ </h3>
+ <ul>
+ <li>
+ Binaries (for the applications) can be found in
+ <tt>/opt/steeldump/bin</tt>.
+ </li>
+ <li>
+ SBCL can be started manually using <tt>/opt/steeldump/bin/sbcl</tt>.
+ <br/>
+ (Make sure that <tt>$SBCL_HOME</tt> is not set incorrectly when
+ doing so. A correct setting for this variable would be
+ /opt/steeldump/lib/sbcl, but that value is already compiled into
+ the SBCL binary, so it is not necessary to override it.)
+ </li>
+ <li>
+ <tt>bin/sbcl</tt> loads user init files (~/.sbclrc). The
+ application scripts do not.
+ </li>
+ <li>
+ To load heapdumped systems at the Lisp REPL manually, use
+ <tt>(require :foo)</tt>.
+ </li>
+ <li>
+ It is possible to use ASDF's <tt>load-op</tt> instead, although
+ that just ends up calling <tt>require</tt> through a trampoline
+ system. Once the heap file has been loaded, however, a real
+ asdf system object takes charge.
+ </li>
+ <li>
+ Implementation detail: To save a little space, source code is
+ installed without fasls. Instead, the fasls are replaced with
+ (essentially) empty files that just have the correct timestamp
+ to make ASDF come to the conclusion that it has nothing to do.
+ </li>
+ </ul>
+
+ <h3>
+ How to report problems
+ <a name="bugs"></a>
+ </h3>
+ <p>
+ If you encounter something you think is a bug, please try to find
+ out whether the problem lies with steeldump or with the
+ upstream application/library.
+ </p>
+ <p>
+ If you believe steeldump is to blame, please send bug reports to
+ <a
+ href="mailto:steeldump-devel at common-lisp.net">steeldump-devel at common-lisp.net</a>
+ to avoid pestering upstream maintainers with problems they cannot
+ know anything about. If possible, please include a patch. See
+ below for instructions on the steeldump scripts.
+ </p>
+ <p>
+ If, however, the bug is also present is the upstream source code,
+ please send your report directly to the upstream project. Thanks.
+ </p>
+
+ <h3>
+ Building Steeldump
+ <a name="building"></a>
+ </h3>
+ <p>
+ (You can skip this section if you just want to use steeldump
+ packages normally. See above for installation instructions.)
+ </p>
+ <p>
+ To help debugging or developing Steeldump, the following steps
+ should be enough to build your own steeldump packages:
+ </p>
+ <ul>
+ <li>
+ Set up a chroot environment or virtual machine to compile
+ steeldump in.
+ <br/>
+ <br/>
+ If you really do not want to do this, keep this in mind:
+ Steeldump <i>must</i> be compiled in the exact same location
+ where it is going to be installed into,
+ <tt>/opt/steeldump</tt>. So you cannot run the steeldump
+ scripts in a filesystem where steeldump packages are already
+ installed.
+ <br/>
+ <br/>
+ Although it does not address safety issues, you can obviously
+ build a mock-up chroot very easily using <tt>mount -o bind</tt>,
+ so this should not be too much of an issue.
+ </li>
+ <li>
+ Create a new directory <tt>/opt/steeldump</tt>. In the build
+ environment, this directory should be owned by a non-root user.
+ (The build scripts will only run <tt>sudo</tt> briefly for each
+ package to fix file ownership before packaging the files up.
+ Building should be done normally under your non-root account.)
+ </li>
+ <li>
+ Check out the steeldump scripts from Subversion:
+ <pre>$ cd /opt/steeldump
+$ svn co svn://common-lisp.net/project/steeldump/svn/trunk/scripts</pre>
+ </li>
+ <li>
+ Run the first script:
+ <pre>/opt/steeldump$ ./scripts/init</pre>
+ -- or just look at what it does. It merely creates a few
+ directories and checks whether required software is installed.
+ CMUCL is used for building (you can use the debian-provided
+ cmucl package), and dpkg-dev tools as well as sudo are needed.
+ </li>
+ <li>
+ The first package you need to download and build is SBCL:
+ <pre>$ ./scripts/fetch-sbcl
+$ ./scripts/build-sbcl
+$ ./scripts/makedeb-sbcl</pre>
+ </li>
+ </ul>
+ <p>
+ Congratulations: If that worked, you have your first .deb package in
+ <tt>/opt/steeldump/pool</tt>.
+ </p>
+ <ul>
+ <li>
+ Now you can build the actual steeldumped applications using the
+ same steps:
+ <pre>$ ./scripts/fetch-all
+$ ./scripts/build-all
+$ ./scripts/makedeb-all</pre>
+ </li>
+ </ul>
+ <p>
+ And that's it. After makedeb-all, you can find all packages in
+ the <tt>pool</tt> directory.
+ </p>
+ <p>
+ While debugging, however, you will probably want to build
+ individual packages instead of all in one go:
+ </p>
+ <ul>
+ <li>
+ For every system, there is a separate <tt>fetch-</tt><i>foo</i>
+ script. These fetch-scripts do <i>not</i> track dependencies
+ for you. When not using <tt>fetch-all</tt>, make sure to
+ download everything you need before trying to build.
+ </li>
+ <li>
+ The <tt>build-</tt><i>foo</i> scripts can be invoked in an
+ arbitrary order. For example, building climacs will
+ automatically compile mcclim if it had not been compiled
+ yet. <i>However</i>, it does not actually create the dumpfile
+ for mcclim, you will still have to call <tt>build-mcclim</tt>
+ eventually before you can make its .deb file.
+ </li>
+ <li>
+ Finally, for <tt>makedeb-all</tt> note that it has one advantage
+ over the individual <tt>makedeb-</tt><i>foo</i> scripts: Before
+ calling out to the others, <tt>makedeb-all</tt> relocates the
+ heap files to non-overlapping locations, speeding up loading of
+ the heap files a little.
+ </li>
+ </ul>
+ <p>
+ If you got this far and have working packages in
+ <tt>/opt/steeldump/pool</tt>, send me a postcard.
+ </p>
+
+ <h3>
+ Extending Steeldump
+ <a name="extending"></a>
+ </h3>
+ <p>
+ (You can skip this section if you just want to use steeldump
+ packages normally. See above for installation instructions.)
+ </p>
+ <p>
+ To add a new package called "blubba", create these files:
+ </p>
+ <ul>
+ <li>
+ <tt>/opt/steeldump/scripts/fetch-blubba</tt><br/>
+ This script must put the source code into
+ <tt>/opt/steeldump/src/blubba</tt>. Remove version numbers from
+ the directory name, if any.<br/>
+ Look at the other fetch scripts for ideas. Usually it is enough
+ to call one of the helper scripts, <tt>aux/fetch-url</tt>,
+ <tt>aux/fetch-cvs</tt>, or <tt>aux/fetch-svn</tt>. If you have
+ to patch the source code, this script is the right place to do
+ that.
+ </li>
+ <li>
+ <tt>/opt/steeldump/scripts/build-blubba</tt><br/>
+ Usually this script is trivial and just
+ calls <tt>build-system</tt>. Copy
+ over <tt>/opt/steeldump/scripts/build-SAMPLE</tt> and change the
+ system name from "SAMPLESSYTEMNAME" to "blubba". This script
+ is the right place to call "make" if the system includes C code.
+ </li>
+ <li>
+ <tt>/opt/steeldump/scripts/lisp/build-blubba.lisp</tt><br/>
+ This Lisp script is less trivial. Starting from the sample file
+ <tt>/opt/steeldump/scripts/lisp/build-SAMPLE.lisp</tt>, change
+ the system name from "SAMPLE" to "blubba", but review the
+ heap dumping logic carefully. The heap dumper needs to be told
+ about:
+ <ul>
+ <li>
+ The packages that are to be dumped (look out for multiple
+ defpackage forms). This is the first argument
+ to <tt>dump-system</tt>.
+ </li>
+ <li>
+ The ASDF systems involved. If the .asd file contains
+ multiple system definitions, all of them must be listed
+ manually in the build script. (The <tt>:system</tt>
+ argument.)
+ </li>
+ <li>
+ The name of the package the .asd files defines and uses.
+ (The <tt>:system-package</tt> argument.)
+ </li>
+ </ul>
+ You now have a first draft of the dumping script. Beware that
+ <em>dumping</em> is not the part where things tend to fail, it is the
+ loading and running of heap files where mistakes show up. The
+ heuristic used by the heapdumper is that it thinks in terms of
+ packages. For many systems, you will have to supply more
+ information than just the package names, because the software
+ often installs objects into variables contained
+ in <em>other</em> packages, slots of objects the heap dumper
+ cannot know about, etc.
+ <ul>
+ <li>
+ Refer to sb-heapdump documentation on the precise logic used
+ by the dumper.
+ </li>
+ <li>
+ For CLIM systems in particular, application-defined command
+ tables and presentation types need to be extracted from
+ McCLIM-internal tables. CLIM also has methods that are
+ eql-specializing on objects like +flipping-ink+, so we must
+ guarantee uniqueness of these objects. For details, see
+ the build scripts for gsharp and climacs.
+ </li>
+ <li>
+ Any CLOS usage can be tricky. The heap dumper will (a)
+ include generic functions and all their methods in the
+ package the generic function's name is in (for example, the
+ MCCLIM package), and (b) additional methods in a different
+ package if those methods specialize on a class named by a
+ symbol in that other package (for example, methods defined
+ for classes in the CLIMACS package). One corollary of these
+ rules is that we must not dump the McCLIM package after
+ having loaded Climacs into the same core, because then
+ loading of McCLIM would fail trying to find the CLIMACS
+ package.
+ </li>
+ </ul>
+ </li>
+ <li>
+ <tt>/opt/steeldump/scripts/descriptions/blubba</tt><br/>
+ This file ends up as the <tt>Description:</tt> header in the
+ Debian package's <tt>control</tt> file.
+ Again there is a skeleton file:
+ <tt>/opt/steeldump/scripts/descriptions/SAMPLE</tt>.
+ </li>
+ <li>
+ <tt>/opt/steeldump/scripts/makedeb-blubba</tt><br/>
+ This scripts collect all files to be installed and creates the
+ .deb archive. Starting
+ with <tt>/opt/steeldump/scripts/makedeb-SAMPLE</tt>,
+ replace SAMPLESYSTEMNAME with "blubba", and DEPENDENCIES with other
+ steeldump packages that "blubba" depends on. Omit the
+ "steeldump-" prefix and version number, the helper script
+ inserts those for you.
+ </li>
+ </ul>
+ </body>
+</html>
Added: trunk/steeldump-web/steeldump.css
==============================================================================
--- (empty file)
+++ trunk/steeldump-web/steeldump.css Sun May 21 14:33:08 2006
@@ -0,0 +1,100 @@
+div.sidebar {
+ float: right;
+ min-width: 15%;
+ padding: 0pt 5pt 5pt 5pt;
+ font-family: verdana, arial;
+}
+
+a {
+ text-decoration: none;
+ color: #000000;
+ border-bottom: 1px dotted black;
+ border-top: 1px solid white;
+ border-left: 1px solid white;
+ border-right: 1px solid white;
+}
+
+.sidebar a {
+ border-top: 1px solid #eeeeee;
+ border-left: 1px solid #eeeeee;
+ border-right: 1px solid #eeeeee;
+}
+
+a:hover {
+ color: #000000;
+ border: 1px solid black;
+}
+
+div.sidebar-title {
+ font-weight: bold;
+ background-color: #009c00;
+ border: solid #009c00;
+ border-top-width: 1px;
+ border-bottom-width: 0px;
+ border-left-width: 4px;
+ border-right-width: 0px;
+ margin: 0em 2pt 1px 2em;
+}
+
+div.sidebar-title a {
+ color: #ffffff;
+}
+
+div.sidebar-main {
+ background-color: #eeeeee;
+ border: solid #009c00;
+ border-top-width: 0px;
+ border-bottom-width: 0px;
+ border-left-width: 4px;
+ border-right-width: 0px;
+ margin: 0em 2pt 1em 2em;
+ padding-top: 2px;
+ padding-left: 2px;
+}
+
+div.sidebar ul {
+ list-style-type: square;
+ padding: 0pt 0pt 0pt 1em;
+ margin: 0 0 1em;
+}
+
+div.sidebar ul.sub {
+ list-style-type: disc;
+ padding: 0pt 0pt 0pt 1em;
+ margin: 0 0 1em;
+}
+
+body {
+ color: #000000;
+ background-color: #ffffff;
+ margin-right: 0pt;
+ margin-bottom: 10%;
+ margin-left: 40px;
+ padding-left: 30px;
+ font-family: verdana, arial;
+ background-image: url(bg.png);
+ background-position: top left;
+ background-attachment: fixed;
+ background-repeat: no-repeat;
+}
+
+h1,h2,h3 {
+ margin-left: -30px;
+}
+
+pre {
+ background-color: #eeeeee;
+ border: solid 1px #d0d0d0;
+ padding: 1em;
+ margin-right: 10%;
+}
+
+.def {
+ background-color: #ddddff;
+ font-weight: bold;
+}
+
+.nomargin {
+ margin-bottom: 0;
+ margin-top: 0;
+}
More information about the Steeldump-cvs
mailing list