aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2006-04-19 01:22:43 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2006-04-19 01:22:43 +0000
commitaaba816e781109186d9d33820848af5936347924 (patch)
treede5ddcce59f6cc1b0f19d660db49621d47b4f8a4
parent31928b9011ec0585334e747a3a78981b53935666 (diff)
downloadpaludis-aaba816e781109186d9d33820848af5936347924.tar.gz
paludis-aaba816e781109186d9d33820848af5936347924.tar.xz
Rework documentation
-rw-r--r--Makefile.am3
-rw-r--r--README4
-rw-r--r--doc/HOWTO.rst251
-rw-r--r--doc/Makefile.am16
-rw-r--r--doc/doc_bootstrap_howto.doxygen261
-rw-r--r--doc/doc_changelog.doxygen10
-rw-r--r--doc/doc_mainpage.doxygen30
7 files changed, 311 insertions, 264 deletions
diff --git a/Makefile.am b/Makefile.am
index b4cd82a..7330161 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,6 +8,9 @@ SUBDIRS = misc test paludis ebuild src doc
doxygen :
$(MAKE) -C doc doxygen
+upload-homepage :
+ $(MAKE) -C doc upload-homepage
+
check-local :
touch $(top_builddir)/done-check
diff --git a/README b/README
index 70df57f..740368d 100644
--- a/README
+++ b/README
@@ -11,6 +11,8 @@ installed, and having GraphViz will help too). It will be created under
stuck in a disused lavatory with a sign on the door saying 'Beware of the
Leopard'.
-There's also a mini howto type thing in 'doc/HOWTO.rst'.
+If you don't feel like building your own docs, see:
+
+ http://paludis.berlios.de/
.. vim: set spell spelllang=en tw=80 : ..
diff --git a/doc/HOWTO.rst b/doc/HOWTO.rst
deleted file mode 100644
index c9e41b7..0000000
--- a/doc/HOWTO.rst
+++ /dev/null
@@ -1,251 +0,0 @@
-=====================================
-HOWTO Break your system using Paludis
-=====================================
----------------------------------------------
-and maybe get a usable chroot if you're lucky
----------------------------------------------
-
-.. DANGER::
- READ EVERYTHING CAREFULLY, OR YOU WILL BREAK YOUR SYSTEM!
-
-THIS WILL PROBABLY NOT ACTUALLY WORK! Paludis is at the very early alpha stage.
-It can sometimes install things, if you're very lucky, and if you're really
-lucky it might let you upgrade or uninstall them too. There are zillions of
-things that are not implemented. There are zillions of things that Paludis does
-differently from Portage -- some of these are intentional, some are not.
-
-You should join the ``#paludis`` channel on Freenode. If you're doing anything
-development-related, you should probably also ask to be allowed to subscribe
-to the ``paludis-sekrit`` mailing list.
-
-Do not try to use Paludis and Portage to install things inside the same root.
-The config and vdb formats are not compatible!
-
-------------
-Requirements
-------------
-
-Install Paludis locally, being sure to configure ``sysconfdir`` as ``/etc`` to
-avoid confusion later on. There's an ebuild at::
-
- http://svn.berlios.de/viewcvs/*checkout*/paludis/overlay/sys-apps/paludis/paludis-0.ebuild
-
-You'll need ``libebt``, ``eselect`` and ``subversion``. You'll also need either
-``g++-3.4``, ``g++-4.1`` or some other reasonably standard C++ compiler. If
-you're trying to run on non-Linux, you'll also need to fix a few includes.
-
-.. Important:: You should seriously consider grabbing an svn snapshot of
- ``eselect`` if 1.0.2 hasn't been released yet, or you will encounter weird "You
- are not root" errors even when you're root.
-
-Make sure the test suite passes (either ``FEATURES="test"`` for Portage, or
-``make check``). If it fails, don't continue until you figure out why.
-
--------------
-Configuration
--------------
-
-Set up a local bootstrap config directory. We're assuming you're using
-``/mychroot`` as the root path. The reason for doing things this way will
-become apparent later on.
-
-::
-
- mkdir ~/.paludis-bootstrap
- cat <<END > ~/.paludis-bootstrap/specpath
- root = /mychroot
- config-suffix =
- END
-
-Make some skeleton directories and files::
-
- mkdir -p /mychroot/etc/{env.d,paludis/repositories}
- mkdir -p /mychroot/var/{db/pkg,paludis/repositories/gentoo/distfiles}
- mkdir -p /mychroot/tmp/
- touch /mychroot/etc/ld.so.conf
-
-Set up your ``keywords.conf``. At the very least, you'll need a ``* keywords``
-line. Further lines can be added in the form "atom keywords". Like with
-Portage, accepting ``~keyword`` does *not* accept ``keyword``, so if you want a
-fully ``~arch`` system you should use ``* arch ~arch``.
-
-::
-
- cat <<END > /mychroot/etc/paludis/keywords.conf
- * x86
- dev-cpp/libebt x86 ~x86
- sys-apps/paludis x86 ~x86
- dev-util/subversion x86 ~x86
- app-admin/eselect x86 ~x86
- app-editors/vim x86 ~x86
- app-editors/vim-core x86 ~x86
- END
-
-Set up your ``use.conf``. At the very least, you'll need a ``* flags`` line. Again,
-additional per-atom lines can be specified. The ``-apache2`` is important, if you
-value your sanity, since you'll be installing subversion. We're experimenting with
-a slightly different way of handling ``USE_EXPAND`` variables that allows different
-settings for different packages. This may change.
-
-::
-
- cat <<END > /mychroot/etc/paludis/use.conf
- * -doc nls -apache2 LINGUAS: en INPUT_DEVICES: keyboard mouse VIDEO_CARDS: ati
- app-editors/vim -nls
- END
-
-Set up your ``licenses.conf``. If you don't care about licences, which is
-probably wise until we get licence grouping, it should look like this::
-
- cat <<END > /mychroot/etc/paludis/licenses.conf
- * *
- END
-
-If you want some more fun, the following list is probably enough to install a
-base system with any fairly close to default USE flags::
-
- cat <<END > /mychroot/etc/paludis/licenses.conf
- * LGPL-2.1 LGPL-2 GPL-2 BSD MIT as-is tcp_wrappers_license freedist
- END
-
-Set up your ``package_unmask.conf`` and ``package_mask.conf``, if necessary::
-
- cat <<END > /mychroot/etc/paludis/package_unmask.conf
- app-editors/vim
- app-editors/vim-core
- END
-
-Set up your ``bashrc``. This must **NOT** be used to change any values that
-affect dependency resolution (e.g. USE, LINGUAS). It can be used to set CFLAGS,
-CHOST and the like (on some archs you'll have to do this to avoid getting junk
-from your profile).
-
-.. Note:: The backslash before the dollar is for cat. If you're not using cat,
- don't include the backslash before the dollar signs.
-
-::
-
- cat <<END > /mychroot/etc/paludis/bashrc
- export CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer"
- export CXXFLAGS="\${CFLAGS}"
- export CHOST="i686-pc-linux-gnu"
- export MAKEOPTS="-j2"
- export EBEEP_IGNORE="yes"
- export EPAUSE_IGNORE="yes"
- END
-
-Set up your repository files. Do not tinker with the VDB location! Here we'll
-avoid using ``/usr/portage`` for the main tree because sticking data that gets
-changed on ``/usr`` is silly. We use the ``${ROOT}`` variable, which is set
-magically, to make the config work both in and outside of a chroot (this is one
-of the reasons we have the weird-looking specpath thing)::
-
- cat <<END > /mychroot/etc/paludis/repositories/gentoo.conf
- location = \${ROOT}/var/paludis/repositories/gentoo/
- sync = rsync://rsync.europe.gentoo.org/gentoo-portage/
- profile = \${ROOT}/var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0
- format = portage
- END
-
- cat <<END > /mychroot/etc/paludis/repositories/installed.conf
- location = \${ROOT}/var/db/pkg/
- format = vdb
- END
-
- cat <<END > /mychroot/etc/paludis/repositories/paludis-overlay.conf
- location = \${ROOT}/var/paludis/repositories/paludis-overlay/
- sync = svn://svn.berlios.de/paludis/overlay
- profile = \${ROOT}/var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0
- eclassdir = \${ROOT}/var/paludis/repositories/gentoo/eclass
- distdir = \${ROOT}/var/paludis/repositories/gentoo/distfiles
- cache = /var/empty
- format = portage
- importance = 10
- END
-
-
-------------
-Initial Sync
-------------
-
-Now check that the config looks ok, and sync::
-
- paludis --config-suffix bootstrap --list-repositories
- sudo paludis --config-suffix bootstrap --sync
-
-If you have problems, try adding ``--log-level debug``. This may or may not
-give helpful information... This applies at all stages.
-
-The initial sync will be slow. You can cheat and copy an existing Portage tree
-checkout into ``/mychroot/var/paludis/repositories/gentoo/``, but remember to
-preserve mtimes and permissions if you do. Note that there's no hideously
-painful 'Updating the Portage cache...' to go through. Paludis will use the
-metadata cache, if available, but does not use the dep cache.
-
------------------
-Installing Things
------------------
-
-Now install baselayout and then system. We install baselayout manually first
-because it's easier than creating a bunch of directories by hand.
-
-Note that Paludis will use src_test regardless of FEATURES (FEATURES is a
-Portage thing, and Paludis doesn't use it any more than it has to).
-
-.. Important:: Unfortunately, various system packages have broken test suites,
- so the system install will probably bomb out midway unless you export
- SKIP_FUNCTIONS=test beforehand. You can do this in your environment or
- (better) in ``/mychroot/etc/paludis/bashrc``. If you're especially sneaky,
- you can do it conditional upon ``$PN``.
-
-Also note that there're a whole load of circular dependencies in system
-(ncurses <-> gpm, patch <-> patch, gcc <-> glibc for example), so you'll
-almost certainly need --dl-drop-circular at this stage.
-
-::
-
- paludis --config-suffix bootstrap --install --pretend --dl-drop-all sys-apps/baselayout
- sudo paludis --config-suffix bootstrap --install --dl-drop-all sys-apps/baselayout
-
- paludis --config-suffix bootstrap --install --pretend --dl-drop-circular system
- sudo paludis --config-suffix bootstrap --install --dl-drop-circular system
-
-Note that system will pull in Portage. That's a profiles thing that's
-unavoidable for now. It won't pull in Paludis, so we do that manually::
-
- paludis --config-suffix bootstrap --install --pretend sys-apps/paludis
- sudo paludis --config-suffix bootstrap --install sys-apps/paludis
-
----------
-Chrooting
----------
-
-And that should (but probably won't) give you a usable chroot::
-
- sudo cp /etc/resolv.conf /mychroot/etc/
- sudo chroot /mychroot
- reset
- export HOME=/root
- cd
- cp /etc/skel/.bashrc .
- . .bashrc
- ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
- mount -tproc none /proc
- mount -tsysfs none /sys
- udevstart
- mount -tdevpts none /dev/pts
- eselect env update
- source /etc/profile
- ( . /etc/paludis/bashrc ; export REAL_CHOST=$CHOST ; gcc-config 1 )
- eselect env update
- source /etc/profile
- paludis --uninstall sys-apps/portage
- paludis --install app-editors/vim
- paludis --uninstall app-editors/nano
-
-If you're especially crazy you can tar up your chroot and use it like a stage 3
-when installing a system. This has worked at least once for one person, but
-note that there was a full moon at the time.
-
-.. vim: set et sw=4 sts=4 spell spelllang=en ft=glep :
-
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 1605929..84b3a79 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,4 +1,4 @@
-CLEANFILES = *~ html/* html HOWTO.html
+CLEANFILES = *~ html/* html
MAINTAINERCLEANFILES = Makefile.in
docfiles = \
@@ -9,9 +9,11 @@ docfiles = \
doc_directories.doxygen \
doc_references.doxygen \
doc_licence.doxygen \
- doc_authors.doxygen
+ doc_authors.doxygen \
+ doc_bootstrap_howto.doxygen \
+ doc_changelog.doxygen
-EXTRA_DIST = doxygen.conf.in $(docfiles) HOWTO.rst
+EXTRA_DIST = doxygen.conf.in $(docfiles)
if HAVE_DOXYGEN
@@ -27,9 +29,7 @@ doxygen :
endif
-HOWTO.html : HOWTO.rst
- rst2html.py $? > $@
-
-upload-howto : HOWTO.html
- scp $? shell.berlios.de:/home/groups/paludis/htdocs/
+upload-homepage : doxygen
+ cd `readlink -f $(top_srcdir)/doc/html` && tar jc ./ | \
+ ssh shell.berlios.de tar vjx -C /home/groups/paludis/htdocs/
diff --git a/doc/doc_bootstrap_howto.doxygen b/doc/doc_bootstrap_howto.doxygen
new file mode 100644
index 0000000..68c9809
--- /dev/null
+++ b/doc/doc_bootstrap_howto.doxygen
@@ -0,0 +1,261 @@
+/* vim: set ft=cpp tw=80 sw=4 et : */
+
+/**
+\page BootstrapHowto Bootstrap Howto
+
+\section BootstrapHowtoMain How to make a Paludis chroot
+
+\warning READ EVERYTHING CAREFULLY, OR YOU WILL BREAK YOUR SYSTEM!
+
+<b>THIS WILL PROBABLY NOT ACTUALLY WORK!</b> Paludis is at the very
+early alpha stage. It can sometimes install things, if you're very lucky, and
+if you're really lucky it might let you upgrade or uninstall them too. There are
+zillions of things that are not implemented. There are zillions of things that
+Paludis does differently from Portage -- some of these are intentional, some are
+not.
+
+You should join the <code>#paludis</code> channel on Freenode. If you're doing
+anything development-related, you should probably also ask to be allowed to
+subscribe to the <code>paludis-sekrit</code> mailing list.
+
+\warning Do not try to use Paludis and Portage to install things inside the same
+ root. The config and vdb formats are not compatible!
+
+\section BootstrapHowtoRequirements Requirements
+
+Install Paludis locally, being sure to configure <code>sysconfdir</code> as
+<code>/etc</code> to avoid confusion later on. There's an ebuild <a
+href="http://svn.berlios.de/viewcvs/%2acheckout%2a/paludis/overlay/sys-apps/paludis/paludis-0.ebuild">here</a>.
+
+You'll need libebt, eselect and Subversion. You'll also need either g++-3.4,
+g++-4.1 or some other reasonably standard C++ compiler along with a complete
+standard library implementation (so no uClibc++). If you're trying to run on
+non-Linux, you'll also need to fix a few includes and submit a patch.
+
+Make sure the test suite passes (either <code>FEATURES="test"</code> for
+Portage, or <code>make check</code>). If it fails, don't continue until you
+figure out why.
+
+\section BootstrapConfiguration Configuration
+
+Set up a local bootstrap config directory. We're assuming in this document that
+you're using <code>/mychroot</code> as the root path, but anywhere not on a
+noexec / nodev filesystem should work. The reason for doing things this way will
+become apparent later on.
+
+\verbatim
+ mkdir ~/.paludis-bootstrap
+ cat <<END > ~/.paludis-bootstrap/specpath
+ root = /mychroot
+ config-suffix =
+ END
+\endverbatim
+
+Make some skeleton directories and files:
+
+\verbatim
+ mkdir -p /mychroot/etc/{env.d,paludis/repositories}
+ mkdir -p /mychroot/var/{db/pkg,paludis/repositories/gentoo/distfiles}
+ mkdir -p /mychroot/tmp/
+ touch /mychroot/etc/ld.so.conf
+\endverbatim
+
+Set up your <code>keywords.conf</code>. At the very least, you'll need a <code>*
+keywords</code> line. Further lines can be added in the form "atom keywords".
+Like with Portage, accepting <code>~keyword</code> does <b>not</b> accept
+<code>keyword</code>, so if you want a fully <code>~arch</code> system you
+should use <code>* arch ~arch</code>.
+
+\verbatim
+ cat <<END > /mychroot/etc/paludis/keywords.conf
+ * x86
+ dev-cpp/libebt x86 ~x86
+ sys-apps/paludis x86 ~x86
+ dev-util/subversion x86 ~x86
+ app-admin/eselect x86 ~x86
+ app-editors/vim x86 ~x86
+ app-editors/vim-core x86 ~x86
+ END
+\endverbatim
+
+Set up your <code>use.conf</code>. At the very least, you'll need a <code>*
+flags</code> line. Again, additional per-atom lines can be specified. The
+<code>-apache2</code> is important, if you value your sanity, since you'll be
+installing subversion. We're experimenting with a slightly different way of
+handling <code>USE_EXPAND</code> variables that allows different settings for
+different packages. This may change, but for now it looks like this:
+
+\verbatim
+ cat <<END > /mychroot/etc/paludis/use.conf
+ * -doc nls -apache2 LINGUAS: en INPUT_DEVICES: keyboard mouse VIDEO_CARDS: ati
+ app-editors/vim -nls
+ END
+\endverbatim
+
+Set up your <code>licenses.conf</code>. If you don't care about licences, which
+is probably wise until we get licence grouping, it should look like this:
+
+\verbatim
+ cat <<END > /mychroot/etc/paludis/licenses.conf
+ * *
+ END
+\endverbatim
+
+If you want some more fun, the following list might be enough to install a
+base system with any fairly close to default USE flags:
+
+\verbatim
+ cat <<END > /mychroot/etc/paludis/licenses.conf
+ * LGPL-2.1 LGPL-2 GPL-2 BSD MIT as-is tcp_wrappers_license freedist
+ END
+\endverbatim
+
+Set up your <code>package_unmask.conf</code> and <code>package_mask.conf</code>,
+if necessary::
+
+\verbatim
+ cat <<END > /mychroot/etc/paludis/package_unmask.conf
+ app-editors/vim
+ app-editors/vim-core
+ END
+\endverbatim
+
+Set up your <code>bashrc</code>. This must <b>NOT</b> be used to change any
+values that affect dependency resolution (e.g. <code>USE</code>,
+ <code>LINGUAS</code>). It can be used to set <code>CFLAGS</code>,
+ <code>CHOST</code> and the like (on some archs you'll have to do this to
+ avoid getting junk from your profile). Remember to
+ <code>export</code> your variables.
+
+\note The backslash before the dollar is for cat. If you're not using cat,
+ don't include the backslash before the dollar signs.
+
+\verbatim
+ cat <<END > /mychroot/etc/paludis/bashrc
+ export CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer"
+ export CXXFLAGS="\${CFLAGS}"
+ export CHOST="i686-pc-linux-gnu"
+ export MAKEOPTS="-j2"
+ export EBEEP_IGNORE="yes"
+ export EPAUSE_IGNORE="yes"
+ END
+\endverbatim
+
+Set up your repository files. Do not tinker with the VDB location, it
+<b>must</b> go in <code>${ROOT}/var/db/pkg</code>. Here we'll avoid using
+<code>/usr/portage</code> for the main tree because sticking data that gets
+changed on <code>/usr</code> is silly. We use the <code>${ROOT}</code> variable,
+which is set magically, to make the config work both in and outside of a
+chroot (this is one of the reasons we have the weird-looking specpath
+thing):
+
+\verbatim
+ cat <<END > /mychroot/etc/paludis/repositories/gentoo.conf
+ location = \${ROOT}/var/paludis/repositories/gentoo/
+ sync = rsync://rsync.europe.gentoo.org/gentoo-portage/
+ profile = \${ROOT}/var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0
+ format = portage
+ END
+
+ cat <<END > /mychroot/etc/paludis/repositories/installed.conf
+ location = \${ROOT}/var/db/pkg/
+ format = vdb
+ END
+
+ cat <<END > /mychroot/etc/paludis/repositories/paludis-overlay.conf
+ location = \${ROOT}/var/paludis/repositories/paludis-overlay/
+ sync = svn://svn.berlios.de/paludis/overlay
+ profile = \${ROOT}/var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0
+ eclassdir = \${ROOT}/var/paludis/repositories/gentoo/eclass
+ distdir = \${ROOT}/var/paludis/repositories/gentoo/distfiles
+ cache = /var/empty
+ format = portage
+ importance = 10
+ END
+\endverbatim
+
+\section BootstrapHowtoSync Initial Sync
+
+Now check that the config looks ok, and sync:
+
+\verbatim
+ paludis --config-suffix bootstrap --list-repositories
+ sudo paludis --config-suffix bootstrap --sync
+\endverbatim
+
+If you have problems, try adding <code>--log-level debug</code>. This may or may
+not give helpful information... This applies at all stages.
+
+The initial sync will be slow. You can cheat and copy an existing Portage tree
+checkout into <code>/mychroot/var/paludis/repositories/gentoo/</code>, but
+remember to preserve mtimes and permissions if you do. Note that there's no
+hideously painful 'Updating the Portage cache...' to go through. Paludis will
+use the metadata cache, if available, but does not use the dep cache.
+
+\section BootstrapInstalling Installing Things
+
+Now install baselayout and then system. We install baselayout manually first
+because it's easier than creating a bunch of directories by hand.
+
+Note that Paludis will use src_test regardless of FEATURES (FEATURES is a
+Portage thing, and Paludis doesn't use it any more than it has to).
+
+\note Unfortunately, various system packages have broken test suites, so the
+ system install will probably bomb out midway unless you export
+ SKIP_FUNCTIONS=test beforehand. You can do this in your environment or (better)
+ in <code>/mychroot/etc/paludis/bashrc</code>. If you're especially sneaky,
+ you can do it conditional upon <code>$PN</code>.
+
+Also note that there're a whole load of circular dependencies in system
+(ncurses <-> gpm, patch <-> patch, gcc <-> glibc for example), so you'll
+almost certainly need --dl-drop-circular at this stage.
+
+\verbatim
+ paludis --config-suffix bootstrap --install --pretend --dl-drop-all sys-apps/baselayout
+ sudo paludis --config-suffix bootstrap --install --dl-drop-all sys-apps/baselayout
+
+ paludis --config-suffix bootstrap --install --pretend --dl-drop-circular system
+ sudo paludis --config-suffix bootstrap --install --dl-drop-circular system
+\endverbatim
+
+Note that system will pull in Portage. That's a profiles thing that's
+unavoidable for now. It won't pull in Paludis, so we do that manually:
+
+\verbatim
+ paludis --config-suffix bootstrap --install --pretend sys-apps/paludis
+ sudo paludis --config-suffix bootstrap --install sys-apps/paludis
+\endverbatim
+
+\section BootstrapHowtoChroot Chrooting
+
+And that should (but probably won't) give you a usable chroot:
+
+\verbatim
+ sudo cp /etc/resolv.conf /mychroot/etc/
+ sudo chroot /mychroot
+ reset
+ export HOME=/root
+ cd
+ cp /etc/skel/.bashrc .
+ . .bashrc
+ ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
+ mount -tproc none /proc
+ mount -tsysfs none /sys
+ udevstart
+ mount -tdevpts none /dev/pts
+ eselect env update
+ source /etc/profile
+ ( . /etc/paludis/bashrc ; export REAL_CHOST=$CHOST ; gcc-config 1 )
+ eselect env update
+ source /etc/profile
+ paludis --uninstall sys-apps/portage
+ paludis --install app-editors/vim
+ paludis --uninstall app-editors/nano
+\endverbatim
+
+If you're especially crazy you can tar up your chroot and use it like a stage 3
+when installing a system. This has worked at least once for one person, but
+note that there was a full moon at the time.
+
+*/
+
diff --git a/doc/doc_changelog.doxygen b/doc/doc_changelog.doxygen
new file mode 100644
index 0000000..7d387e2
--- /dev/null
+++ b/doc/doc_changelog.doxygen
@@ -0,0 +1,10 @@
+/* vim: set ft=cpp tw=80 sw=4 et : */
+
+/**
+\page ChangeLog ChangeLog
+
+\verbinclude ChangeLog
+
+*/
+
+
diff --git a/doc/doc_mainpage.doxygen b/doc/doc_mainpage.doxygen
index 353f60c..fcbd547 100644
--- a/doc/doc_mainpage.doxygen
+++ b/doc/doc_mainpage.doxygen
@@ -2,14 +2,37 @@
/** \mainpage
+\section overview Overview
+
+This is the documentation for Paludis, the other package manager. It is available as part of Paludis via <code>make doxygen</code>, or on the web at <a href="http://paludis.berlios.de/">the Paludis project page</a>.
+
+\section userdocs For End Users
+
+You shouldn't be touching Paludis at the moment. Paludis will delete all your
+files, then delete everyone else's files, then rape your dog. Go away.
+
+If you're still here, read \link BootstrapHowto the Bootstrap HOWTO \endlink for
+how to break your system or possibly set up a chroot.
+
+We have a <a href="https://developer.berlios.de/bugs/?group_id=6360">bug
+tracker</a> and some
+<a href="https://developer.berlios.de/mail/?group_id=6360">mailing lists</a>, but
+you shouldn't try to use these until after you've discussed your problem in our
+IRC channel. Read the howto for more details.
+
\section developerdocs For Developers
+Start by getting a
+<a href="https://developer.berlios.de/svn/?group_id=6360">Subversion checkout</a>.
+
It's best to start by skimming over the main program to get a feel for how
everything fits together. Useful files:
- src/paludis.cc The main program.
- src/query.cc The --query action handler.
- src/install.cc The --install action handler.
+- src/applets.cc Various small action handlers.
+- src/list.cc The --list action handlers
After that, the following classes are good places to begin:
@@ -17,6 +40,9 @@ After that, the following classes are good places to begin:
operating environment.
- paludis::PackageDatabase provides routines for querying packages. An
instance can be obtained via paludis::DefaultEnvironment.
+- paludis::DepList can be used for making dependency lists.
+- paludis::Repository is subclassed to do querying, installing,
+ uninstalling, syncing and the like.
The <a href="modules.html">Modules</a> link in the header bar will probably
be of more use than any of the full class lists.
@@ -24,8 +50,4 @@ be of more use than any of the full class lists.
You should also read \link CodingStandards the Coding Standards \endlink
before tinkering.
-\section userdocs For End Users
-
-You shouldn't be touching paludis at the moment. Go away.
-
*/