diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000000000000000000000000000000000000..2a6c5cb1370f5fbf6c09f867de4646c933e5ec3b
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,10 @@
+2003-04-18  Per Cederqvist  <ceder@ceder.dyndns.org>
+
+	* AUTHORS: New file.
+	* Makefile.am: New file.
+	* NEWS: New file.
+	* README: New file.
+	* bootstrap.sh: New file.
+	* configure.ac: New file.
+	* createdb.sql: New file.
+	* sqltypes.sed: New file.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..e8ae3feb706fb36e474663556e256f7a416af6fe
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,30 @@
+#  isoonline - Backup static hierarchies to ISO images with online index.
+#  Copyright (C) 2003 Per Cederqvist
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+## Process this file with ./bootstrap.sh.
+
+MYSQL = @MYSQL@
+pkgpython_PYTHON = scanner.py
+
+all:
+
+recreate_db: Makefile $(srcdir)/sqltypes.sed $(srcdir)/createdb.sql
+	sed -f $(srcdir)/sqltypes.sed < $(srcdir)/createdb.sql \
+		| $(MYSQL)
+optimize_db: Makefile $(srcdir)/sqltypes.sed $(srcdir)/optimize.sql
+	sed -f $(srcdir)/sqltypes.sed < $(srcdir)/optimize.sql \
+		| $(MYSQL) gpgpathfinder
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000000000000000000000000000000000000..cb4a3a38f62a3b0224559dd4680ef81e2fdd22cd
--- /dev/null
+++ b/NEWS
@@ -0,0 +1 @@
+Nothing to report yet.
diff --git a/README b/README
new file mode 100644
index 0000000000000000000000000000000000000000..11a5d1a845b3e776d528c9640c1b59d4697f9316
--- /dev/null
+++ b/README
@@ -0,0 +1,32 @@
+Yet another CD-R backup utility.
+
+Features: the files to be backed up are permanent files that are never
+removed or altered (such as your photo album or music collection).
+Each file is saved on at least two different ISO images.  An on-line
+index keeps track of all ISO images and all files.  The index contains
+an SHA-1 fingerprint of each file, for easy verification of both the
+online files and the ISO images.  The system keeps track of when each
+media was last verified.
+
+The name "isoonline" is a very bad one.  Google finds 1330 matches (as
+of 2003-04-18).  But I need a name -- any name -- to be able to create
+a CVS repository.  If I ever make a release of this I will probably
+have to come up with a better name, but for now, the highest priority
+is to make a backup copy of my photos.  Figuring out a good name for
+the backup system will have to wait.
+
+Installation
+============
+
+Log in as the mysql "root" user and run this command, substituting
+"ceder" to whatever name you plan to run the program as:
+
+    GRANT ALL ON isoonline.* to ceder@localhost;
+
+Then do the normal "./configure && make && make install" thing.
+Finally, if this is a first-time install, run "make recreate_db".
+
+Bootstrapping from CVS
+======================
+
+Use the bootstrap.sh script to create a configure script.
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000000000000000000000000000000000000..41599d9432b66499b95d662fed7459792d6d9027
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+#  This file is probably useful only to the maintainer.
+#  Create "configure" and all the files it needs.
+#  This file was created by Per Cederqvist and placed in the public domain.
+
+aclocal
+autoconf
+# autoheader
+automake -a
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000000000000000000000000000000000000..bb7a7ee6c268cb6069b459873062657270762064
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,34 @@
+dnl  isoonline - Backup static hierarchies to ISO images with online index.
+dnl  Copyright (C) 2003 Per Cederqvist
+dnl
+dnl  This program is free software; you can redistribute it and/or modify
+dnl  it under the terms of the GNU General Public License as published by
+dnl  the Free Software Foundation; either version 2 of the License, or
+dnl  (at your option) any later version.
+dnl
+dnl  This program is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl  GNU General Public License for more details.
+dnl
+dnl  You should have received a copy of the GNU General Public License
+dnl  along with this program; if not, write to the Free Software
+dnl  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+dnl Process this file with ./bootstrap to produce a configure script.
+
+AC_INIT(isoonline.cfg)
+AM_INIT_AUTOMAKE(isoonline, 0.0)
+
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+
+AM_PATH_PYTHON
+
+AC_PATH_PROG(MYSQL, mysql, nomysql)
+[if test "$MYSQL" = nomysql
+then]
+    AC_ERROR([cannot find mysql in \$PATH, which is set to $PATH])
+[fi]
+
+AC_OUTPUT(Makefile)
diff --git a/createdb.sql b/createdb.sql
new file mode 100644
index 0000000000000000000000000000000000000000..ab1606ec9decb261907319237d37f63c1f1cc3d6
--- /dev/null
+++ b/createdb.sql
@@ -0,0 +1,50 @@
+# Create the database tables needed by isoonline.  Please note that
+# this removes the database if it already exists.
+
+drop database if exists isoonline;
+create database isoonline;
+use isoonline;
+
+create table base (
+	dir_id int64 auto_increment	primary key not null,
+	dir_name varchar(255)		not null,
+	active bool			not null,
+	last_scanned datetime		null,
+	first_scanned datetime		null,
+
+	UNIQUE(dir_name),
+	INDEX(active, last_scanned)
+);
+
+create table file (
+	file_id int64 auto_increment	primary key not null,
+	filename varchar(255)		not null,
+	dir_id int64			not null references base(dir_id),
+	ctime datetime			not null,
+	atime datetime			not null,
+	size int64			not null,
+	md5sum char(32)			not null,
+
+	INDEX(filename),
+	UNIQUE(filename, size, ctime, atime, md5sum),
+	INDEX(md5sum),
+	INDEX(size)
+);
+
+create table media (
+	media_id int32 auto_increment	primary key not null,
+	written datetime		not null,
+	verified datetime		null,
+	broken bool			not null,
+
+	INDEX(written),
+	INDEX(verified)
+);
+
+create table contents (
+	media int32			not null references media(media_id),
+	file int64			not null references file(file_id),
+
+	INDEX(file),
+	INDEX(media)
+);
diff --git a/sqltypes.sed b/sqltypes.sed
new file mode 100644
index 0000000000000000000000000000000000000000..fdaf09e84d18679945918e7f6a86175c45f04c6f
--- /dev/null
+++ b/sqltypes.sed
@@ -0,0 +1,13 @@
+s/[ 	][ 	]*/ /g
+s/bool/tinyint unsigned/g
+s/uint8/tinyint unsigned/g
+s/uint16/smallint unsigned/g
+s/uint24/mediumint unsigned/g
+s/uint32/integer unsigned/g
+s/uint64/bigint unsigned/g
+s/int8/tinyint/g
+s/int16/smallint/g
+s/int24/mediumint/g
+s/int32/integer/g
+s/int64/bigint/g
+s/#.*//g