summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2024-02-24 14:20:19 -0300
committerSilvio Rhatto <rhatto@riseup.net>2024-02-24 14:20:19 -0300
commit91275ac998c439420da747fc047379a6547f7c1c (patch)
treecb460090697db1d90caa5dbaf53292f5a9297ebb
parent9857a3c262e9af2ea02698820be1e887cd3bf36c (diff)
downloaddebian-91275ac998c439420da747fc047379a6547f7c1c.tar.gz
debian-91275ac998c439420da747fc047379a6547f7c1c.tar.bz2
Feat: convert docs from Ikiwiki to MkDocs
-rw-r--r--.gitignore1
-rw-r--r--Makefile4
l---------README.md2
-rw-r--r--docs/basics.md (renamed from basics.md)35
-rw-r--r--docs/building.md (renamed from building.md)11
-rw-r--r--docs/checking.md (renamed from checking.md)2
-rw-r--r--docs/cross.md (renamed from cross.md)10
-rw-r--r--docs/custom/leap.md (renamed from leap.md)17
-rw-r--r--docs/custom/python.md (renamed from python.md)2
-rw-r--r--docs/custom/ruby.md (renamed from ruby.md)2
-rw-r--r--docs/env.md (renamed from env.md)11
-rw-r--r--docs/index.md12
-rw-r--r--docs/itp.md (renamed from itp.md)8
-rw-r--r--docs/references.md (renamed from references.md)2
-rw-r--r--docs/repositories.md (renamed from repositories.md)11
-rw-r--r--docs/todo.md7
-rw-r--r--ikiwiki.yaml425
-rw-r--r--index.md29
-rw-r--r--mkdocs.yml19
-rw-r--r--todo.md7
20 files changed, 86 insertions, 531 deletions
diff --git a/.gitignore b/.gitignore
index 929d984..3093b79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ tmp
build-area
puppet/modules
keyring
+site
diff --git a/Makefile b/Makefile
index e415d15..9496741 100644
--- a/Makefile
+++ b/Makefile
@@ -17,10 +17,10 @@
.PHONY: keyring
web:
- @ikiwiki --setup ikiwiki.yaml
+ @mkdocs build
web_deploy:
- @rsync -avz --delete --exclude=keyring www/ debian:/var/sites/debian/www/
+ @rsync -avz --delete --exclude=keyring site/ debian:/var/sites/debian/www/
publish: web web_deploy
diff --git a/README.md b/README.md
index dd0ea36..e892330 120000
--- a/README.md
+++ b/README.md
@@ -1 +1 @@
-index.md \ No newline at end of file
+docs/index.md \ No newline at end of file
diff --git a/basics.md b/docs/basics.md
index 9de641e..6eafa91 100644
--- a/basics.md
+++ b/docs/basics.md
@@ -1,20 +1,18 @@
-[[!meta title="Basic packaging"]]
+# Basic packaging
-Configuration files
--------------------
+## Configuration files
-All the commands in this guide assumes that you're using [these configuration files](https://git.fluxo.info/?p=rhatto/dotfiles/debian.git;a=summary).
+All the commands in this guide assumes that you're using [these configuration
+files](https://git.fluxo.info/?p=rhatto/dotfiles/debian.git;a=summary).
-Starting a new package
-----------------------
+## Starting a new package
We use the `packages/` folder from this repo to store sources:
mkdir packages/$package
cd packages/$package
-Getting the debianized source
------------------------------
+## Getting the debianized source
Using `dget`:
@@ -25,20 +23,17 @@ Using `apt-get`:
apt-get source package
-Checking the source
--------------------
+## Checking the source
See `checking.md`.
-Extracting the source
----------------------
+## Extracting the source
If needed, do this after your successfully verified the sources:
dpkg-source -x *.dsc
-Getting dependencies
---------------------
+## Getting dependencies
To get:
@@ -48,8 +43,7 @@ To remove:
hydractl remove-dep package
-Creating the `debian/` structure
---------------------------------
+## Creating the `debian/` structure
If the package wasn't debianized, proceed with
@@ -57,21 +51,18 @@ If the package wasn't debianized, proceed with
dh_make -p ${package}_${version} --createorig
fi
-Simple build
-------------
+## Simple build
dch -i
dpkg-buildpackage -rfakeroot -sa -k$KEY_ID
-Creating a new debian source
-----------------------------
+## Creating a new debian source
cd ..
dpkg-source -b $package*
debsign $package*.dsc
-Building and signing
---------------------
+## Building and signing
To generate signatures, remove `-uc` and `-us` from `dpkg-buildpackage` (see
[Complete build](http://www.debian.org/doc/maint-guide/ch-build.pt-br.html#s-completebuild)):
diff --git a/building.md b/docs/building.md
index 692fcc4..0f7009c 100644
--- a/building.md
+++ b/docs/building.md
@@ -1,19 +1,16 @@
-[[!meta title="Building"]]
+# Building
-Standard build
---------------
+## Standard build
DIST=stretch sudo -E cowbuilder --build $package*.dsc
-Signing
--------
+## Signing
To sign both the `.dsc` and the `.changes` files:
debsign $package*.changes
-Uploading
----------
+## Uploading
Simply run
diff --git a/checking.md b/docs/checking.md
index de399a6..ee3f32c 100644
--- a/checking.md
+++ b/docs/checking.md
@@ -1,4 +1,4 @@
-[[!meta title="Integrity checking"]]
+# Integrity checking
## Debian Images
diff --git a/cross.md b/docs/cross.md
index 5354aa0..45255f7 100644
--- a/cross.md
+++ b/docs/cross.md
@@ -1,4 +1,6 @@
-[[!meta title="Crosscompilation"]]
+# Crosscompilation
+
+## Basic references
* [BuildingCrossCompilers - Debian Wiki](http://wiki.debian.org/BuildingCrossCompilers).
* [EmdebianToolchain - Debian Wiki](http://wiki.debian.org/EmdebianToolchain).
@@ -10,16 +12,16 @@
* [How to cross-compile Git for ARM?](http://stackoverflow.com/questions/15516168/how-to-cross-compile-git-for-arm).
* [Allow to compile with Debian/Ubuntu ARM toolchain · Issue #34 · libopencm3/libopencm3](https://github.com/libopencm3/libopencm3/issues/34).
-## Configuração básica
+## Basic configuration
- (0) [20130426 13:37:57] vagrant@vagrant-debian-wheezy:~ $ cat /etc/apt/sources.list.d/emdebian.list
+ (0) [20130426 13:37:57] vagrant@vagrant-debian-wheezy:~ $ cat /etc/apt/sources.list.d/emdebian.list
#
# -- Emdebian cross toolchains
#
# deb http://www.emdebian.org/debian/ unstable main
# deb http://www.emdebian.org/debian/ testing main
deb http://www.emdebian.org/debian wheezy main
- (0) [20130426 13:38:12] vagrant@vagrant-debian-wheezy:~ $
+ (0) [20130426 13:38:12] vagrant@vagrant-debian-wheezy:~ $
(0) [20130426 13:38:12] vagrant@vagrant-debian-wheezy:~ $ cat /etc/apt/sources.list.d/squeeze.list
deb http://http.debian.net/debian/ squeeze main contrib non-free
diff --git a/leap.md b/docs/custom/leap.md
index 61725f2..cd657c9 100644
--- a/leap.md
+++ b/docs/custom/leap.md
@@ -1,9 +1,8 @@
-[[!meta title="Example: packaging leap_cli and dependencies"]]
+# Example: packaging leap_cli and dependencies
Upstream: https://leap.se/code/issues/6503
-Determine dependencies
-----------------------
+## Determine dependencies
First, in a *fresh* vagrant box with *sid* and *testing* in the `sources.list`:
@@ -106,23 +105,20 @@ In summary, we need to port the following `$new_packages`:
* ruby-ya2yaml
* ruby-leap-cli
-Build remaining packages
-------------------------
+## Build remaining packages
for gem in $gems; do
gem2deb $gem
done
-Getting the source for the existing packages
---------------------------------------------
+## Getting the source for the existing packages
for package in $already_ported; do
apt-get -t jessie source --download-only $package
dpkg-source -x $package*dsc
done
-Next steps
-----------
+## Next steps
* Fix `debian/control` and other `FIXME` on each package.
* Put `debian/` folder in a `debian` branch on each source.
@@ -134,8 +130,7 @@ Next steps
* Upstream pull requests.
* Backport everything to `wheezy`.
-Per-package tasks
------------------
+## Per-package tasks
* ruby-faker:
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765124
diff --git a/python.md b/docs/custom/python.md
index ada80f0..85dd263 100644
--- a/python.md
+++ b/docs/custom/python.md
@@ -1,4 +1,4 @@
-[[!meta title="Python packaging"]]
+# Python packaging
## Old procedure
diff --git a/ruby.md b/docs/custom/ruby.md
index cb2cf29..be79085 100644
--- a/ruby.md
+++ b/docs/custom/ruby.md
@@ -1,4 +1,4 @@
-[[!meta title="Ruby packaging"]]
+# Ruby packaging
* See [this](https://wiki.debian.org/Teams/Ruby/Packaging).
* Example: [LEAP](/leap).
diff --git a/env.md b/docs/env.md
index 8069642..cb38509 100644
--- a/env.md
+++ b/docs/env.md
@@ -1,7 +1,6 @@
-[[!meta title="Environment"]]
+# Environment
-Build environment creation
---------------------------
+## Build environment creation
The following steps needs to be run just once for each arch and distro version.
@@ -30,8 +29,7 @@ with `git-buildpackage` not getting `~/.pbuilderrc` from the local user:
( cd /var/cache/pbuilder/ && sudo ln -s sid-amd64/base.cow )
-External repo integration
--------------------------
+## External repository integration
If your package storage lives elsewhere, make a symlink like this:
@@ -41,8 +39,7 @@ If your package storage lives elsewhere, make a symlink like this:
sudo ln -s /var/data/distros/debian/packages/build-area/jessie-amd64 result
)
-Environment maintenance
------------------------
+## Environment maintenance
These steps should be run once in a while to ensure we have an up to date packaging environment.
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..6e416b6
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,12 @@
+# Debian packaging effort!
+
+In the past, we used to be [heavy slackware
+users](https://simplepkg.fluxo.info) when we just had a few boxes to manage.
+Then we had to change our whole packaging paradigm when we switched to Debian.
+
+These notes are mainly references to the detailed Debian/Ubuntu documentations
+we're using in the course of learning the intricacies of Debian packaging.
+
+Grab this repository using
+
+ git clone --recursive https://git.fluxo.info/debian
diff --git a/itp.md b/docs/itp.md
index 32cc50d..a0692ee 100644
--- a/itp.md
+++ b/docs/itp.md
@@ -1,15 +1,13 @@
-[[!meta title="Local ITP"]]
+# ITP
-WNPP
-----
+## WNPP
Before packaging anything, have a look at:
* [WNPP](http://wnpp.debian.net).
* [Debian Git](http://anonscm.debian.org/gitweb/).
-Software
---------
+## Software
* [zathura-epub](https://git.pwmt.org/pwmt/zathura-epub).
* [bdsync](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724344).
diff --git a/references.md b/docs/references.md
index 4474d60..0080468 100644
--- a/references.md
+++ b/docs/references.md
@@ -1,4 +1,4 @@
-[[!meta title="References"]]
+# References
## General
diff --git a/repositories.md b/docs/repositories.md
index c9fb2af..d6cf48e 100644
--- a/repositories.md
+++ b/docs/repositories.md
@@ -1,15 +1,13 @@
-[[!meta title="Repositories"]]
+# Repositories
-Documentation
--------------
+## Documentation
* [DebianRepository/Setup - Debian Wiki](https://wiki.debian.org/DebianRepository/Setup).
* [Debian Repository HOWTO (Obsolete Documentation)](https://www.debian.org/doc/manuals/repository-howto/repository-howto).
* [HowToSetupADebianRepository](https://wiki.debian.org/HowToSetupADebianRepository).
* [Setting up your own APT repository with upload support](http://www.debian-administration.org/article/286/Setting_up_your_own_APT_repository_with_upload_support).
-Reprepro
---------
+## Reprepro
* [puppet-reprepro](https://git.fluxo.info/puppet-reprepro).
Alguns links sobre como instalar e usar o reprepro:
@@ -23,8 +21,7 @@ Removing a package from the repository:
su reprepro -c "reprepro -b /var/reprepro remove squeeze kedpm"
-Other
------
+## Other
* [aptly - Debian repository management tool](https://www.aptly.info/) ([package](https://packages.debian.org/stretch/aptly)).
* [debify: Tool for building simple Debian repositories](https://github.com/spotify/debify).
diff --git a/docs/todo.md b/docs/todo.md
new file mode 100644
index 0000000..713b4a7
--- /dev/null
+++ b/docs/todo.md
@@ -0,0 +1,7 @@
+# TODO
+
+* Merge all `build-area` folders.
+* Deploy debian project as a ikiwiki with a git-annex'ed package repository.
+* Try an [AutomateBackports](https://wiki.debian.org/AutomateBackports) setup.
+* Set [SecurePbuilder](https://wiki.debian.org/SecurePbuilder).
+* How to make an offline apt-repository in an encrypted usb drive.
diff --git a/ikiwiki.yaml b/ikiwiki.yaml
deleted file mode 100644
index 30e6ad0..0000000
--- a/ikiwiki.yaml
+++ /dev/null
@@ -1,425 +0,0 @@
-# IkiWiki::Setup::Yaml - YAML formatted setup file
-#
-# Setup file for ikiwiki.
-#
-# Passing this to ikiwiki --setup will make ikiwiki generate
-# wrappers and build the wiki.
-#
-# Remember to re-run ikiwiki --setup any time you edit this file.
-#
-# name of the wiki
-wikiname: Debian Packages
-# contact email for wiki
-adminemail: debian@fluxo.info
-# users who are wiki admins
-adminuser: []
-# users who are banned from the wiki
-banned_users: []
-# where the source of the wiki is located
-srcdir: .
-# where to build the wiki
-destdir: www
-# base url to the wiki
-url: https://debian.fluxo.info
-# url to the ikiwiki.cgi
-cgiurl: https://debian.fluxo.info/ikiwiki.cgi
-# do not adjust cgiurl if CGI is accessed via different URL
-reverse_proxy: 0
-# filename of cgi wrapper to generate
-cgi_wrapper: ''
-# mode for cgi_wrapper (can safely be made suid)
-cgi_wrappermode: 06755
-# number of seconds to delay CGI requests when overloaded
-cgi_overload_delay: ''
-# message to display when overloaded (may contain html)
-cgi_overload_message: ''
-# enable optimization of only refreshing committed changes?
-only_committed_changes: 0
-# rcs backend to use
-rcs: git
-# plugins to add to the default configuration
-add_plugins:
-- goodstuff
-- sidebar
-# plugins to disable
-disable_plugins:
-- openid
-- editpage
-# additional directory to search for template files
-templatedir: /usr/share/ikiwiki/templates
-# base wiki source location
-underlaydir: /usr/share/ikiwiki/basewiki
-# display verbose messages?
-#verbose: 1
-# log to syslog?
-#syslog: 1
-# create output files named page/index.html?
-usedirs: 1
-# use '!'-prefixed preprocessor directives?
-prefix_directives: 1
-# use page/index.mdwn source files
-indexpages: 0
-# enable Discussion pages?
-discussion: 0
-# name of Discussion pages
-discussionpage: Discussion
-# use elements new in HTML5 like <section>?
-html5: 0
-# only send cookies over SSL connections?
-sslcookie: 0
-# extension to use for new pages
-default_pageext: mdwn
-# extension to use for html files
-htmlext: html
-# strftime format string to display date
-timeformat: '%c'
-# UTF-8 locale to use
-#locale: en_US.UTF-8
-# put user pages below specified page
-userdir: ''
-# how many backlinks to show before hiding excess (0 to show all)
-numbacklinks: 10
-# attempt to hardlink source files? (optimisation for large files)
-hardlink: 0
-# force ikiwiki to use a particular umask (keywords public, group or private, or a number)
-umask: 2
-# group for wrappers to run in
-#wrappergroup: ikiwiki
-# extra library and plugin directories
-libdirs: []
-# extra library and plugin directory (searched after libdirs)
-libdir: ''
-# environment variables
-ENV: {}
-# time zone name
-timezone: :/etc/localtime
-# regexp of normally excluded files to include
-#include: ^\.htaccess$
-# regexp of files that should be skipped
-exclude: (?^i:(www|build-area|keyring))
-# specifies the characters that are allowed in source filenames
-wiki_file_chars: -[:alnum:]+/.:_
-# allow symlinks in the path leading to the srcdir (potentially insecure)
-allow_symlinks_before_srcdir: 0
-# cookie control
-cookiejar:
- file: /home/rhatto/.ikiwiki/cookies
-# set custom user agent string for outbound HTTP requests e.g. when fetching aggregated RSS feeds
-useragent: ikiwiki/3.20170111
-# theme has a responsive layout? (mobile-optimized)
-responsive_layout: 1
-# try harder to produce deterministic output
-deterministic: 0
-
-######################################################################
-# core plugins
-# (editpage, git, htmlscrubber, inline, link, meta, parentlinks,
-# templatebody)
-######################################################################
-
-# git plugin
-# git hook to generate
-#git_wrapper: /git/wiki.git/hooks/post-update
-# shell command for git_wrapper to run, in the background
-#git_wrapper_background_command: git push github
-# mode for git_wrapper (can safely be made suid)
-#git_wrappermode: 06755
-# git pre-receive hook to generate
-#git_test_receive_wrapper: /git/wiki.git/hooks/pre-receive
-# unix users whose commits should be checked by the pre-receive hook
-#untrusted_committers: []
-# gitweb url to show file history ([[file]] substituted)
-historyurl: https://git.fluxo.info/debian/log/[[file]]
-# gitweb url to show a diff ([[file]], [[sha1_to]], [[sha1_from]], [[sha1_commit]], and [[sha1_parent]] substituted)
-diffurl: https://git.fluxo.info/debian/commit/[[file]]?id=[[sha1_commit]]
-# where to pull and push changes (set to empty string to disable)
-gitorigin_branch: ''
-# branch that the wiki is stored in
-gitmaster_branch: master
-
-# htmlscrubber plugin
-# PageSpec specifying pages not to scrub
-#htmlscrubber_skip: '!*/Discussion'
-
-# inline plugin
-# enable rss feeds by default?
-rss: 1
-# enable atom feeds by default?
-#atom: 0
-# allow rss feeds to be used?
-#allowrss: 0
-# allow atom feeds to be used?
-#allowatom: 0
-# urls to ping (using XML-RPC) on feed update
-pingurl: []
-
-######################################################################
-# auth plugins
-# (anonok, blogspam, emailauth, httpauth, lockedit, moderatedcomments,
-# opendiscussion, openid, passwordauth, signinedit)
-######################################################################
-
-# anonok plugin
-# PageSpec to limit which pages anonymous users can edit
-#anonok_pagespec: '*/discussion'
-
-# blogspam plugin
-# PageSpec of pages to check for spam
-#blogspam_pagespec: postcomment(*)
-# options to send to blogspam server
-#blogspam_options: blacklist=1.2.3.4,blacklist=8.7.6.5,max-links=10
-# blogspam server JSON url
-#blogspam_server: ''
-
-# emailauth plugin
-# email address to send emailauth mails as (default: adminemail)
-#emailauth_sender: ''
-
-# httpauth plugin
-# url to redirect to when authentication is needed
-#cgiauthurl: http://example.com/wiki/auth/ikiwiki.cgi
-# PageSpec of pages where only httpauth will be used for authentication
-#httpauth_pagespec: '!*/Discussion'
-
-# lockedit plugin
-# PageSpec controlling which pages are locked
-#locked_pages: '!*/Discussion'
-
-# moderatedcomments plugin
-# PageSpec matching users or comment locations to moderate
-#moderate_pagespec: '*'
-
-# openid plugin
-# url pattern of openid realm (default is cgiurl)
-#openid_realm: ''
-# url to ikiwiki cgi to use for openid authentication (default is cgiurl)
-#openid_cgiurl: ''
-
-# passwordauth plugin
-# a password that must be entered when signing up for an account
-#account_creation_password: s3cr1t
-# cost of generating a password using Authen::Passphrase::BlowfishCrypt
-#password_cost: 8
-
-######################################################################
-# format plugins
-# (creole, highlight, hnb, html, mdwn, otl, po, rawhtml, rst, textile,
-# txt)
-######################################################################
-
-# highlight plugin
-# types of source files to syntax highlight
-#tohighlight: .c .h .cpp .pl .py Makefile:make
-# location of highlight's filetypes.conf
-#filetypes_conf: /etc/highlight/filetypes.conf
-# location of highlight's langDefs directory
-#langdefdir: /usr/share/highlight/langDefs
-
-# mdwn plugin
-# enable multimarkdown features?
-#multimarkdown: 0
-# disable use of markdown discount?
-#nodiscount: 0
-
-# po plugin
-# master language (non-PO files)
-#po_master_language: en|English
-# slave languages (translated via PO files) format: ll|Langname
-#po_slave_languages:
-#- fr|Français
-#- es|Español
-#- de|Deutsch
-# PageSpec controlling which pages are translatable
-#po_translatable_pages: '* and !*/Discussion'
-# internal linking behavior (default/current/negotiated)
-#po_link_to: current
-
-######################################################################
-# special-purpose plugins
-# (osm, underlay)
-######################################################################
-
-# osm plugin
-# the default zoom when you click on the map link
-#osm_default_zoom: 15
-# the icon shown on links and on the main map
-#osm_default_icon: ikiwiki/images/osm.png
-# the alt tag of links, defaults to empty
-#osm_alt: ''
-# the output format for waypoints, can be KML, GeoJSON or CSV (one or many, comma-separated)
-#osm_format: KML
-# the icon attached to a tag, displayed on the map for tagged pages
-#osm_tag_default_icon: icon.png
-# Url for the OpenLayers.js file
-#osm_openlayers_url: http://www.openlayers.org/api/OpenLayers.js
-# Layers to use in the map. Can be either the 'OSM' string or a type option for Google maps (GoogleNormal, GoogleSatellite, GoogleHybrid or GooglePhysical). It can also be an arbitrary URL in a syntax acceptable for OpenLayers.Layer.OSM.url parameter.
-#osm_layers:
-# OSM: GoogleSatellite
-# Google maps API key, Google layer not used if missing, see https://code.google.com/apis/console/ to get an API key
-#osm_google_apikey: ''
-
-# underlay plugin
-# extra underlay directories to add
-#add_underlays:
-#- /home/rhatto/wiki.underlay
-
-######################################################################
-# web plugins
-# (404, attachment, comments, editdiff, edittemplate, getsource, google,
-# goto, mirrorlist, remove, rename, repolist, search, theme, userlist,
-# websetup, wmd)
-######################################################################
-
-# attachment plugin
-# enhanced PageSpec specifying what attachments are allowed
-#allowed_attachments: virusfree() and mimetype(image/*) and maxsize(50kb)
-# virus checker program (reads STDIN, returns nonzero if virus found)
-#virus_checker: clamdscan -
-
-# comments plugin
-# PageSpec of pages where comments are allowed
-#comments_pagespec: blog/* and !*/Discussion
-# PageSpec of pages where posting new comments is not allowed
-#comments_closed_pagespec: blog/controversial or blog/flamewar
-# Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12"
-#comments_pagename: ''
-# Interpret directives in comments?
-#comments_allowdirectives: 0
-# Allow anonymous commenters to set an author name?
-#comments_allowauthor: 0
-# commit comments to the VCS
-#comments_commit: 1
-# Restrict formats for comments to (no restriction if empty)
-#comments_allowformats: mdwn txt
-
-# getsource plugin
-# Mime type for returned source.
-#getsource_mimetype: text/plain; charset=utf-8
-
-# mirrorlist plugin
-# list of mirrors
-#mirrorlist: {}
-# generate links that point to the mirrors' ikiwiki CGI
-#mirrorlist_use_cgi: 1
-
-# repolist plugin
-# URIs of repositories containing the wiki's source
-#repositories:
-#- svn://svn.example.org/wiki/trunk
-
-# search plugin
-# path to the omega cgi program
-#omega_cgi: /usr/lib/cgi-bin/omega/omega
-# use google site search rather than internal xapian index?
-#google_search: 1
-
-# theme plugin
-# name of theme to enable
-#theme: actiontabs
-
-# websetup plugin
-# list of plugins that cannot be enabled/disabled via the web interface
-#websetup_force_plugins: []
-# list of additional setup field keys to treat as unsafe
-#websetup_unsafe: []
-# show unsafe settings, read-only, in web interface?
-#websetup_show_unsafe: 1
-
-######################################################################
-# widget plugins
-# (calendar, color, conditional, cutpaste, date, format, fortune,
-# graphviz, haiku, headinganchors, img, linkmap, listdirectives, map,
-# more, orphans, pagecount, pagestats, poll, polygen, postsparkline,
-# progress, shortcut, sparkline, table, template, teximg, toc, toggle,
-# version)
-######################################################################
-
-# calendar plugin
-# base of the archives hierarchy
-#archivebase: archives
-# PageSpec of pages to include in the archives, if option `calendar_autocreate` is true.
-#archive_pagespec: page(posts/*) and !*/Discussion
-# autocreate new calendar pages?
-#calendar_autocreate: 1
-# if set, when building calendar pages, also build pages of year and month when no pages were published (building empty calendars).
-#calendar_fill_gaps: 1
-
-# img plugin
-# Image formats to process (jpeg, png, gif, svg, pdf or 'everything' to accept all)
-#img_allowed_formats: ''
-
-# listdirectives plugin
-# directory in srcdir that contains directive descriptions
-#directive_description_dir: ikiwiki/directive
-
-# teximg plugin
-# Should teximg use dvipng to render, or dvips and convert?
-#teximg_dvipng: ''
-# LaTeX prefix for teximg plugin
-#teximg_prefix: |
-# \documentclass{article}
-# \usepackage[utf8]{inputenc}
-# \usepackage{amsmath}
-# \usepackage{amsfonts}
-# \usepackage{amssymb}
-# \pagestyle{empty}
-# \begin{document}
-# LaTeX postfix for teximg plugin
-#teximg_postfix: \end{document}
-
-######################################################################
-# other plugins
-# (aggregate, autoindex, brokenlinks, camelcase, ddate, embed, favicon,
-# filecheck, flattr, goodstuff, htmlbalance, localstyle, loginselector,
-# notifyemail, pagetemplate, pingee, pinger, prettydate, recentchanges,
-# recentchangesdiff, relativedate, rsync, sidebar, smiley,
-# sortnaturally, tag, testpagespec, trail, transient)
-######################################################################
-
-# aggregate plugin
-# enable aggregation to internal pages?
-#aggregateinternal: 1
-# allow aggregation to be triggered via the web?
-#aggregate_webtrigger: 0
-
-# autoindex plugin
-# commit autocreated index pages
-#autoindex_commit: 1
-
-# camelcase plugin
-# list of words to not turn into links
-#camelcase_ignore: []
-
-# flattr plugin
-# userid or user name to use by default for Flattr buttons
-#flattr_userid: joeyh
-
-# pinger plugin
-# how many seconds to try pinging before timing out
-#pinger_timeout: 15
-
-# prettydate plugin
-# format to use to display date
-#prettydateformat: '%X, %B %o, %Y'
-
-# recentchanges plugin
-# name of the recentchanges page
-recentchangespage: recentchanges
-# number of changes to track
-recentchangesnum: 100
-
-# rsync plugin
-# command to run to sync updated pages
-#rsync_command: rsync -qa --delete . user@host:/path/to/docroot/
-
-# sidebar plugin
-# show sidebar page on all pages?
-#global_sidebars: 1
-
-# tag plugin
-# parent page tags are located under
-#tagbase: tag
-# autocreate new tag pages?
-#tag_autocreate: 1
-# commit autocreated tag pages
-tag_autocreate_commit: 1
diff --git a/index.md b/index.md
deleted file mode 100644
index 90c5a05..0000000
--- a/index.md
+++ /dev/null
@@ -1,29 +0,0 @@
-[[!meta title="Debian packaging effort!"]]
-
-In the past, we used to be [heavy slackware users](https://simplepkg.fluxo.info) when we just
-had a few boxes to manage. Then we had to change our whole packaging paradigm when we switched
-to Debian.
-
-These notes are mainly references to the detailed Debian/Ubuntu documentations we're using in
-the course of learning the intricacies of Debian packaging.
-
-Grab this repository using
-
- git clone --recursive https://git.fluxo.info/debian
-
-Index
------
-
-* [Basics](basics).
-* [Environment](env).
-* [Checking sources](checking).
-* [Building](building).
-* [Repositories](repositories).
-* [Cross compilation](cross).
-* [References](references).
-* [Local ITP](itp).
-* [TODO](todo).
-* Custom procedures:
- * [LEAP](leap).
- * [Python](python).
- * [Ruby](ruby).
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..73f08df
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,19 @@
+site_name: A Debian packaging effort
+
+theme:
+ name: readthedocs
+
+nav:
+ - index.md
+ - basics.md
+ - env.md
+ - checking.md
+ - building.md
+ - repositories.md
+ - cross.md
+ - custom/python.md
+ - custom/ruby.md
+ - custom/leap.md
+ - itp.md
+ - todo.md
+ - references.md
diff --git a/todo.md b/todo.md
deleted file mode 100644
index 4045ab6..0000000
--- a/todo.md
+++ /dev/null
@@ -1,7 +0,0 @@
-[[!meta title="TODO"]]
-
-* merge all `build-area` folders.
-* deploy debian project as a ikiwiki with a git-annex'ed package repository.
-* try an [AutomateBackports](https://wiki.debian.org/AutomateBackports) setup.
-* set [SecurePbuilder](https://wiki.debian.org/SecurePbuilder).
-* how to make an offline apt-repository in an encrypted usb drive.