[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