Commits

Shlomi Fish  committed a2a8538

Imported from svn by Bitbucket

  • Participants

Comments (0)

Files changed (18)

File docs/design/Icehamster-Executive-Summary.html

+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE
+    html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
+    <head>
+        <title>"Icehamster" - an Executive Summary</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <meta name="author" content="Shlomi Fish" />
+        <meta name="description" content="Executive summary for Icehamster" />
+        <meta name="keywords" content="Shlomi Fish, Icehamster, Apt, Windows, Microsoft, Win32, urpmi, rpm, dpkg, Linux, packages" />
+    </head>
+    <body>
+        <h1>"Icehamster" - an Executive Summary</h1>
+        
+        <h2>Introduction</h2>
+        <p>
+        The Microsoft Windows line of operating systems suffers from inadequate
+        package management. Generally, programs are downloaded as 
+        self-contained executables, installed using a manual process, and often
+        break other applications or the entire system. Compare this to the
+        state of the art in most modern Linux distributions (such as 
+        <a href="http://www.debian.org/">Debian GNU/Linux</a>, 
+        <a href="http://www.mandriva.com/">Mandriva Linux</a> and 
+        <a href="http://www.redhat.com/">Fedora Linux/Red Hat Enterprise Linux</a>
+        , where one can install packages in an automated processes, and each
+        package encompass functionality that can be used by many other 
+        dependant packages. 
+        </p>
+        <p>
+        The aim of the "Icehamster" (temporary name) project is to provide the 
+        same functionality for Microsoft Windows, in an open-source 
+        (BSD-licensed), flexible, and reliable way.
+        </p>
+
+        <h2>What Icehamster will do?</h2>
+
+        <p>
+        Icehamster will provide:
+        </p>
+        <ol>
+            <li>
+            A way for developers to package their software (and similar 
+            content) in packages. As opposed to traditional 
+            "Next &rarr; Next &rarr; Install" Win32 packages, each of these
+            would contain a self-contained and possibly dependant 
+            functionality that can later be re-used by other packages.
+            </li>
+            <li>
+            Allow developers to publish their packages online, or in re-usable
+            media such as CD-ROMs.
+            </li>
+            <li>
+            Allow users to install an Icehamster client which will allow them
+            to retrieve Icehamster packages from remote sources or from media.
+            </li>
+            <li>
+            All of this will be fully automatable, open source, and flexible.
+            </li>
+        </ol>
+        
+        <h2>Source of Revenue</h2>
+
+        <p>
+        The Icehamster software being open-source will not generate a profit
+        stream by itself. The Icehamster developers will instead offer
+        the software free of charge for people to download and install on their
+        computers. Furthermore, developers will be able to prepare their own
+        Icehamster packages for easy installation and maintenance of their 
+        software. So what will we profit from? 
+        </p>
+        <p>
+        Simple. We will provide a hosting service for Icehamster packages. 
+        Instead of configuring and maintaining their own source of packages,
+        the interested developers would be able to set up an account on our
+        server, and upload new versions of their packages whenever they are
+        ready. We will charge them for the hosting, and for any extra bandwidth
+        used.
+        </p>
+        <p>
+        It is possible similar providers of services will spring up. That's
+        perfectly acceptable, as we will still have a large percentage of the
+        total market, assuming we stay competitive enough.
+        </p>
+
+        <h2>Technology</h2>
+
+        <p>
+        We plan to use <a href="http://www.perl.org/">Perl</a>, a powerful
+        , popular and cross-platform dynamic language for writing most of
+        Icehamster. While being very high-level and allowing a programmer
+        to construct a lot of working code very quickly, it also supports
+        many low-level primitives, and platform-specific APIs.
+        </p>
+        
+        <p>
+        We plan to use PAR - the Perl Archiver, as a way to package Icehamster
+        in self-contained executables that contain the Perl Virtual Machine
+        and all the third-party APIs. This is done in order to facilitate the 
+        installation by the user.
+        </p>
+
+        <p>
+        We will make use of many of the 
+        <a href="http://www.cpan.org/">Comprehensive Perl Archive Network</a>
+        (or CPAN) modules that we find appropriate. CPAN provides a lot of
+        ready made and fully usable functionality, that can make a dramatic
+        improvement in development time and cost. We may also make use of 
+        external tools written in other languages (especially C and C++)
+        if they also prove useful.
+        </p>
+    </body>
+</html>
+

File docs/design/functional-spec.txt

+Introduction:
+-------------
+
+This is a functional spec for Winapt, which is a package management system
+for Win32, similar to such systems for UNIX-like systems (e.g: Debian's 
+apt-get/dpkg, RedHat's rpm/yum, Mandriva's rpm/urpmi, smart or
+Gentoo's portage).
+
+(The characters are taken from http://www.ozyandmillie.org/ )
+
+Scenario 1: "We Want Free Stuff"
+--------------------------------
+
+Millie is a young fox girl who likes to use Windows XP, and still haven't
+gotten around to install Linux. However, she is tired of keeping up with
+the various open-source and non-open-source software she has on her computer:
+Inkscape, eMule, Firefox, Thunderbird, Paint Shop Pro, etc. At one point
+her geek friend Stefan the Aardvark (who is a die-hard Linux user) recommends 
+her to install Winapt, so she can manage her software.
+
+She browses to the winapt site, downloads the installer, accepts the EULA,
+and installs the software. Then she starts the dialog which downloads the
+updated remote-sources lists and then packages lists. It detects which
+software is installed on her computer, and automatically upgrades it. Then
+it gives her a long list of other software.
+
+Millie installs the "Pink Flamingo Bathtub Game", the "Tomboy Tomboy edition"
+note taker, the "Burn ants burn" real-life simulator, and a game to put
+electronic needles on Ayn Rand's face. She goes to sleep happy.
+
+The next day when she wakes up, Winapt informs her that she has updates for
+her installed programs, and gives her the option of selectively 
+upgrading them.
+
+Scenerio 2: "Kids Just Wanna Have Fun"
+--------------------------------------
+
+Stefan and Millie are distressed. They were placed in charge of their
+school's computer lab. While the server is a SGI Altix super-computer running
+Linux that is very low-maintenance and hardly ever gives them any problems,
+they also have 100s of Windows NT computers which require a lot of manual 
+configuration. Every once in a while, a kid asks for a piece of software which 
+they need to install on every computer. As a result, it's 100's of 
+->Next->Next->Finish calls.
+
+They decide to solve it once and for all. They install Winapt on all the
+computers, and configure it to run in the background and at startup. Winapt
+first checks for a mirror of the files on the Linux server, so they won't have
+to overload their school's bandwidth. Whenever they need a new piece of software
+Stefan runs this command on the server:
+
+$ winapt-spread --install Inkscape GIMP OnM-Comics-Reader
+
+This command downloads the programs and connects to all the clients to install
+these softwares.
+
+Stefan and Millie are happy and now have much more time for playing
+"Quake 10: Furry Showdown".
+
+Scenario 3: "I'm not a Technical Sheep! I just want to use my computer."
+------------------------------------------------------------------------
+
+Felicia is popular girl that no one seems to like in the class of Millie and
+Stefan. She's not a geek (of computers or otherwise), and just uses her
+computer to draw pictures of ponies ("OMG!!! They're so cute") using Inkscape.
+
+At one point she discovers a way to consistently make Inkscape crash, and
+reports it in the Inkscape bug tracker. The Inkscape developer is Stefan
+who is a die-hard Linux user, and while being able to cross-compile to Windows
+will never run it. What Stefan does to see if his bug-fix helps Felicia
+is:
+
+1. Build a modified package.
+
+2. Upload it to the Inkscape master site under a different "patched" directory.
+
+3. Instruct Felicia to enter the patch ID in a special Inkscape 
+dialog (also possible using the Winapt GUI).
+
+Felicia then installs the patch, see that it works, and tells Stefan about
+it. Stefan is happy and integrates the source patch into the mainline.
+
+Another Inkscape bug was fixed.

File docs/design/winapt-design.txt

+Winapt (codenamed "Icehamster") Design Notes
+--------------------------------------------
+
+The Mission:
+------------
+
+1. Write a tool for developers to create re-usable MS-Windows packages. (a la
+.rpm or .deb.)
+
+2. Write a tool that will allow users to install these packages on their 
+computers. 
+
+3. Write a tool that will allow users to install or uninstall packages
+from the Net or from Media, along with all of their dependencies. 
+(a la apt/urpmi/yum)
+
+4. Write a hosting backend management for hosting such packages on remote
+servers.
+
+Technologies that will be used:
+-------------------------------
+
+1. Perl - http://www.perl.org/ - writing package management and build systems
+in C is widely considered a bad idea. (dpkg/apt and rpm are written in C
+because they are expected to run on an embedded device in the electricity
+cabinet of the ladies restroom in a gas station in Albuquerque.) On a standard
+Win32 system we can easily install the Perl run-time without worrying too
+much about bloating the system, so there's no reason why we shouldn't use it.
+
+    Why not a different language?
+    -----------------------------
+
+    1. I know and like Perl the best, and so I'm going to use what I like.
+
+    2. I think it would be very suitable for this.
+
+    3. There are plenty of good and useful modules in CPAN.
+
+    4. Many programmers know Perl enough to contribute.
+    
+    5. If you don't like it, write an alterantive with a different 
+    language. :-)
+    
+2. PAR - http://par.perl.org/ - this will allow us to prepare self-contained
+packages of Winapt.
+
+Desired Features of the t->\infinity Version:
+-------------------------------------------
+
+(in no particular order)
+
+* Handle installation per-user and global installation.
+
+* Manage registry keys.
+
+* Have the ability to track several major versions of the same program and 
+install them all at once.
+
+* Seemless upgrade of packages.
+
+* Install new packages easily.
+
+* Resolve dependencies.
+
+* No (!!) file dependencies.
+
+* Be able to fetch using FTP, HTTP, Bit-Torrent, etc. Use libwww-perl (LWP) or 
+whatever.
+
+* Support authentication and authorization. (client side and server side).
+
+* Handle installation scripts in Perl, CMD.EXE, cygwin/MSys bash/zsh (requires
+installation of the latter), and possibly other languages by inflection 
+(i.e: extract the scripts and use perl to invoke them. Requires their 
+installation)
+
+* Would provide Perl modules to facilitate the installation. Some configuration
+files can be written in YAML or XML, and be processed by the Perl script to 
+perform robust installation/uninstallation.
+
+* Internationalization and Localization support.
+
+* Support only Win2000, WinXP, Win2003 (and possibly Windows Vista). Win98 is 
+too Evil to support properly, and WinME even more so. It may or may not work 
+on the Win95/98/ME line, but we will not actively support it there.
+
+* Portability to UNIXes is not an issue. UNIXes have their own package 
+management schemes, which whatever their failing are more concentrated on 
+UNIX support. Win32 is very different, and we will do things differently, and
+occasionally using the Win32 API.
+
+Pitfalls:
+---------
+
+* How do we handle file/dir permissions on Win32?
+
+* What archive format to use to package the files?
+
+* How do we efficiently clean up the Win32 Registry after populating it.
+
+* Note: I (= Shlomi Fish) while being very proficient in Perl, is by no
+means a Win32 system programming expert. So I could use any help I can get.
+
+* I also need some help in learning about how to run Windows on Linux using
+VMWare, and I need a VMWare license.
+
+* 
+
+
+

File site/wml/Makefile

+
+RSYNC = rsync --progress --verbose --rsh=ssh
+
+ALL_DEST_BASE = dest
+
+DOCS_COMMON_DEPS = template.wml lib/MyNavData.pm lib/MyManageNews.pm
+
+WML_FLAGS = -DLATEMP_THEME=better-scm
+
+LATEMP_WML_FLAGS =$(shell latemp-config --wml-flags)
+
+WML_FLAGS += --passoption=2,-X3074 --passoption=3,-I../../lib/ \
+	--passoption=3,-w $(LATEMP_WML_FLAGS) -I../../ -DROOT~. \
+    -I../../lib/
+
+all: dummy
+
+%.show:
+	@echo "$* = $($*)"
+
+include include.mak
+include rules.mak
+
+# Add news_feeds to this target if you want to generate an RSS feed.
+dummy : latemp_targets
+
+RSS_FEED = $(MYSITE_DEST)/rss.xml
+
+news_feeds: $(RSS_FEED)
+
+$(RSS_FEED): gen-feeds.pl lib/MyManageNews.pm
+	perl -Ilib gen-feeds.pl --rss2-out="$@"
+
+.PHONY: 
+
+upload: all
+	cd $(ALL_DEST_BASE)/mysite && \
+	$(RSYNC) -r * shlomif@shell.berlios.de:/home/groups/winapt/htdocs/
+
+update_svn:
+	for FILE in Icehamster-Executive-Summary.html winapt-design.txt ; do \
+		svn cat http://svn.berlios.de/svnroot/repos/winapt/winapt/trunk/docs/design/"$$FILE" > src/mysite/docs/"$$FILE" ; \
+	done
+

File site/wml/gen-feeds.pl

+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use MyManageNews;
+use Getopt::Long;
+
+my $rss2_out = "dest/rss.xml";
+GetOptions ("rss2-out=s" => \$rss2_out);
+
+my $news_manager = get_news_manager();
+
+$news_manager->generate_rss_feed(
+    'output_filename' => $rss2_out,
+);
+
+1;

File site/wml/gen-helpers.pl

+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use HTML::Latemp::GenMakeHelpers;
+
+my $generator = 
+    HTML::Latemp::GenMakeHelpers->new(
+        'hosts' =>
+        [ 
+            map 
+            { 
+                +{ 'id' => $_, 'source_dir' => "src/$_", 
+                   'dest_dir' => "\$(ALL_DEST_BASE)/$_",
+               }, 
+            } 
+            (qw(common mysite))
+        ]
+    );
+
+$generator->process_all();
+
+1;

File site/wml/lib/MyManageNews.pm

+package MyManageNews;
+
+use base 'Exporter';
+
+our @EXPORT=(qw(get_news_manager));
+
+use strict;
+use warnings;
+
+use HTML::Latemp::News;
+
+my @news_items =
+(
+    (map 
+        { 
+            +{%$_, 
+                'author' => "John Smith", 
+                'category' => "My Site Category", 
+            }
+        }
+        (
+            # TODO: Fill Items Here.
+        ),
+    )
+);
+
+sub gen_news_manager
+{
+    return
+        HTML::Latemp::News->new(
+            'news_items' => \@news_items,
+            'title' => "My Site News",
+            'link' => "http://www.link-to-my-site.tld/",
+            'language' => "en-US",
+            'copyright' => "Copyright by John Smith, (c) 2005",
+            'webmaster' => "John Smith <author\@domain.org>",
+            'managing_editor' => "John Smith <author\@domain.org>",
+            'description' => "News of the My Site",
+        );
+}
+
+# A singleton.
+{
+    my $news_manager;
+
+    sub get_news_manager
+    {
+        if (!defined($news_manager))
+        {
+            $news_manager = gen_news_manager();
+        }
+        return $news_manager;
+    }
+}
+
+1;

File site/wml/lib/MyNavData.pm

+package MyNavData;
+
+use strict;
+use warnings;
+
+use MyManageNews;
+
+my $hosts =
+{
+    'mysite' =>
+    {
+        'base_url' => "http://myhost.mydomain/",
+    },
+};
+
+my $news_manager = get_news_manager();
+
+sub get_news_category
+{
+    my $items = $news_manager->get_navmenu_items('num_items' => 5);
+    if (@$items)
+    {
+        return
+        {
+            'text' => "News",
+            'url' => "news/",
+            'subs' =>
+            [
+                @$items,
+            ],
+        },
+    }
+    else
+    {
+        return ();
+    }
+}
+
+my $tree_contents =
+{
+    'host' => "mysite",
+    'text' => "My Site",
+    'title' => "My Site",
+    'subs' =>
+    [
+        {
+            'text' => "Home",
+            'url' => "",
+        },
+        {
+            'text' => "About",
+            'url' => "about/",
+        },
+        get_news_category(),
+        {
+            'text' => "Links",
+            'url' => "links/",
+        },
+    ],
+};
+
+sub get_params
+{
+    return
+        (
+            'hosts' => $hosts,
+            'tree_contents' => $tree_contents,
+        );
+}
+
+1;

File site/wml/lib/MyNavLinks.pm

+package MyNavLinks;
+
+use base 'HTML::Latemp::NavLinks::GenHtml::Text';
+
+1;

File site/wml/params-latemp.yml

+---
+prefix: /home/shlomi/apps/latemp/
+program:
+  author: Shlomi Fish
+  name: Latemp
+version: 0.1.23
+versioning_scheme: 0

File site/wml/rules.mak

+COMMON_SRC_DIR = src/common
+
+
+MYSITE_SRC_DIR = src/mysite
+
+MYSITE_DEST = $(ALL_DEST_BASE)/mysite
+
+MYSITE_TARGETS = $(MYSITE_DEST) $(MYSITE_DIRS_DEST) $(MYSITE_COMMON_DIRS_DEST) $(MYSITE_COMMON_IMAGES_DEST) $(MYSITE_IMAGES_DEST) $(MYSITE_DOCS_DEST)
+        
+MYSITE_WML_FLAGS = $(WML_FLAGS) -DLATEMP_SERVER=mysite
+
+MYSITE_DOCS_DEST = $(patsubst %,$(MYSITE_DEST)/%,$(MYSITE_DOCS))
+
+MYSITE_DIRS_DEST = $(patsubst %,$(MYSITE_DEST)/%,$(MYSITE_DIRS))
+
+MYSITE_IMAGES_DEST = $(patsubst %,$(MYSITE_DEST)/%,$(MYSITE_IMAGES))
+
+MYSITE_COMMON_IMAGES_DEST = $(patsubst %,$(MYSITE_DEST)/%,$(COMMON_IMAGES))
+
+MYSITE_COMMON_DIRS_DEST = $(patsubst %,$(MYSITE_DEST)/%,$(COMMON_DIRS))
+        
+$(MYSITE_DOCS_DEST) :: $(MYSITE_DEST)/% : $(MYSITE_SRC_DIR)/%.wml $(DOCS_COMMON_DEPS) 
+	( cd $(MYSITE_SRC_DIR) && wml $(MYSITE_WML_FLAGS) -DLATEMP_FILENAME=$(patsubst $(MYSITE_DEST)/%,%,$(patsubst %.wml,%,$@)) $(patsubst $(MYSITE_SRC_DIR)/%,%,$<) ) > $@
+
+$(MYSITE_DIRS_DEST) :: $(MYSITE_DEST)/% : unchanged
+	mkdir -p $@
+	touch $@
+
+$(MYSITE_IMAGES_DEST) :: $(MYSITE_DEST)/% : $(MYSITE_SRC_DIR)/%
+	cp -f $< $@
+
+$(MYSITE_COMMON_IMAGES_DEST) :: $(MYSITE_DEST)/% : $(COMMON_SRC_DIR)/%
+	cp -f $< $@
+
+$(MYSITE_COMMON_DIRS_DEST)  :: $(MYSITE_DEST)/% : unchanged
+	mkdir -p $@
+	touch $@
+
+$(MYSITE_DEST): unchanged
+	mkdir -p $@
+	touch $@
+ 
+latemp_targets: $(MYSITE_TARGETS)
+

File site/wml/src/common/print.css

+.navbar 
+{
+    display: none;
+}
+.main
+{
+    background-color : white;
+}
+p.desc { margin-left : 3em }
+.note 
+{ 
+    border-color : black; 
+    border-style : double;
+    padding : 0.5em;
+}
+.righty
+{
+   float: right;
+   text-align: center;
+   font-size: 80%;
+   width: 30%;
+}
+.righty img
+{
+    border : 0;
+}
+.webmaster
+{
+    float : left;
+}
+.center
+{
+    text-align : center;
+}
+.leading_path
+{
+    padding-left: 0.5em;
+    padding-top: 0.2em;
+    padding-bottom: 0.2em;
+    margin-bottom : 0.2em;
+    border-width : thin;
+    border-color : black;
+    border-style : groove;
+    font-size: 85%;
+}
+.footer {
+    clear : both;
+    margin-right : 30px;
+    padding-top: 0.5em;
+}
+tt { font-weight: bold; }
+pre
+{
+    padding-left: 1em;
+    padding-right: 1em;
+    padding-bottom: 0.5em;
+    padding-top: 0.5em;
+    border-width : thin;
+    border-color: #004000;
+    border-style: solid;
+}
+/* Border-less */
+.bless
+{
+    border : none;
+}

File site/wml/src/common/style.css

+/*
+    CSS Stylesheet for better-scm.berlios.de
+    Copyright (c) Shlomi Fish, 2003-2005
+    Feel free to use, modify and re-distribute under the terms of the 
+    MIT X11 License (http://www.opensource.org/licenses/mit-license.php)
+
+    $Id: style.css 175 2005-04-17 07:43:41Z shlomif $
+*/
+
+a:hover { color : red }
+
+.navbar {
+    float : left;
+    background-color : #C5CAE2;
+    width : 200px;
+    padding-left : 0.5em;
+    padding-top : 0.5em;
+}
+
+.main
+{
+    padding-left : 1em;
+    padding-bottom : 1em;
+    padding-top : 0em;
+    padding-right: 1em;
+    margin-left : 220px;
+    margin-top: 1em;
+    margin-right: 1em;
+    background-color : white;
+    border: thin solid black;
+}
+
+p.desc { margin-left : 3em }
+h2 
+{ 
+    background-color: #FFEE00  
+}
+h2, h3, h4
+{
+    padding-left: 0.3em;
+}
+.main p
+{
+    padding-left : 1em;
+}
+.link { background : transparent; }
+/* Opera has a very wide default for margin-left, which causes the navbar
+   to be misrendered. This rule fixes it.
+   */
+.navbar ul
+{
+    margin-left: 0;
+}
+ul.navbarmain
+{ 
+    padding-left : 1em; 
+    font-size: 80%;
+    font-family: sans-serif;
+}
+ul.navbarnested 
+{ 
+    padding-left : 0em ; 
+    margin-left : 2em;
+}
+.note 
+{ 
+    border-color : black; 
+    border-style : double;
+    padding : 0.5em;
+    background-color : #98FB98; /* PaleGreen */
+}
+.note h2
+{
+   background: transparent;
+}
+ul.my li
+{
+    padding-bottom: 0.5em;
+}
+.righty
+{
+   float: right;
+   text-align: center;
+   font-size: 80%;
+   width: 30%;
+}
+.righty img
+{
+    border : 0;
+}
+.foot_left
+{
+    float : left;
+}
+.webmaster
+{
+    margin-bottom: 0em;
+}
+.vcs
+{    
+    margin-top: 0.5em;
+    clear: left;
+}
+.vcs tt
+{
+    font-size: 83%;
+}
+
+.center
+{
+    text-align : center;
+}
+.nav_links
+{
+    text-align: center;
+    padding-left : 0em;
+    padding-top : 0em;
+}
+.nav_links li
+{
+    display: inline;
+    list-style-type: none;
+    padding-right: 0.2em;
+    padding-top: 0em;
+}
+.leading_path
+{
+    padding-left: 0.5em;
+    padding-top: 0.2em;
+    padding-bottom: 0.2em;
+    background-color : #40C040;
+    /* background-color: #FF7070; */
+    margin-bottom : 0.2em;
+    font-size: 85%;
+}
+.leading_path :hover
+{
+    color : yellow;
+}
+.footer {
+    clear : both;
+    margin-right : 30px;
+    padding-top: 0.5em;
+}
+/* Workaround to get the <hr /> element at the bottom to properly display 
+   with Konqueror 3.3.x
+   */
+.footer hr
+{
+    width:100%;
+    clear:both;
+}
+tt { color : #8a2be2; }
+pre
+{
+    padding-left: 1em;
+    padding-right: 1em;
+    padding-bottom: 0.5em;
+    padding-top: 0.5em;
+    background-color: #FF8080;
+    border-width : thin;
+    border-color: #004000;
+    border-style: solid;
+}
+/* Border-less */
+.bless
+{
+    border : none;
+}

File site/wml/src/mysite/about/index.html.wml

+#include "template.wml"
+
+<latemp_subject "About Winapt" />
+
+<p>
+Nothing here yet.
+</p>
+

File site/wml/src/mysite/index.html.wml

+#include "template.wml"
+
+<latemp_subject "Winapt - Package Management for Microsoft Windows" />
+<latemp_version_control_id "$Id$" />
+
+<p>
+Winapt aims to be a package management system for the Microsoft Windows 
+operating systems. For the time being you can read the following documents:
+</p>
+
+<ul>
+<li>
+<a href="./docs/Icehamster-Executive-Summary.html">The Executive Summary</a>
+</li>
+<li>
+<a href="./docs/winapt-design.txt">The Design Document with Various Notes</a>
+</li>
+</ul>
+

File site/wml/src/mysite/links/index.html.wml

+#include "template.wml"
+
+<latemp_subject "Links" />
+<latemp_version_control_id "$Id$" />
+
+<h2>Winapt Links</h2>
+
+<ul>
+<li>
+<a href="http://www.debian.org/doc/manuals/apt-howto/index.en.html">APT 
+Howto</a> - information about Apt - the Debian package resolution system.
+</li>
+</ul>

File site/wml/template.wml

+# Read all the latemp macros 
+#include "latemp/latemp-prelude.wml"
+
+# You can put some customizations here
+
+<set-var latemp_with_head_meta_tags="1" />
+
+# Actually start the page template.
+#include "latemp/latemp-driver.wml"
+<latemp_lang "en-US" />
+<latemp_encoding "utf-8" />
+<latemp_common_keywords "" />
+<latemp_author "John Smith" />
+
+<latemp_webmaster>
+</latemp_webmaster>
+
+<latemp_license>
+</latemp_license>
+
+<latemp_affiliations_buttons>
+</latemp_affiliations_buttons>

File site/wml/unchanged

Empty file added.