diff --git a/fdroid b/fdroid
index 76cd597c..e6ef5930 100755
--- a/fdroid
+++ b/fdroid
@@ -1,2 +1,56 @@
-#!/bin/sh
-./fdroid.py $*
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# fdroid.py - part of the FDroid server tools
+# Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+import sys
+import fdroidserver
+
+commands = [
+ "build",
+ "update",
+ "publish",
+ "checkupdates",
+ "import",
+ "rewritemeta",
+ "scanner",
+ "stats"]
+
+def main():
+
+ if len(sys.argv) <= 1:
+ print "Specify a command. Valid commands are:"
+ for command in commands:
+ print " " + command
+ sys.exit(0)
+
+ command = sys.argv[1]
+ if not command in commands:
+ print "Command '" + command + "' not recognised"
+ sys.exit(1)
+
+ # Trick optparse into displaying the right usage when --help is used.
+ sys.argv[0] += ' ' + command
+
+ del sys.argv[1]
+ mod = __import__('fdroidserver.' + command, None, None, [command])
+ mod.main()
+ sys.exit(0)
+
+if __name__ == "__main__":
+ main()
+
diff --git a/fdroid.py b/fdroid.py
deleted file mode 100755
index 9988f0a5..00000000
--- a/fdroid.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# fdroid.py - part of the FDroid server tools
-# Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 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 Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-
-import sys
-
-commands = [
- "build",
- "update",
- "publish",
- "checkupdates",
- "import",
- "rewritemeta",
- "scanner",
- "stats"]
-
-def main():
-
- if len(sys.argv) <= 1:
- print "Specify a command. Valid commands are:"
- for command in commands:
- print " " + command
- sys.exit(0)
-
- command = sys.argv[1]
- if not command in commands:
- print "Command '" + command + "' not recognised"
- sys.exit(1)
-
- # Trick optparse into displaying the right usage when --help is used.
- sys.argv[0] += ' ' + command
-
- del sys.argv[1]
- mod = __import__(command)
- mod.main()
- sys.exit(0)
-
-if __name__ == "__main__":
- main()
-
diff --git a/fdroidserver/__init__.py b/fdroidserver/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/build.py b/fdroidserver/build.py
old mode 100755
new mode 100644
similarity index 100%
rename from build.py
rename to fdroidserver/build.py
diff --git a/checkupdates.py b/fdroidserver/checkupdates.py
old mode 100755
new mode 100644
similarity index 100%
rename from checkupdates.py
rename to fdroidserver/checkupdates.py
diff --git a/common.py b/fdroidserver/common.py
similarity index 100%
rename from common.py
rename to fdroidserver/common.py
diff --git a/import.py b/fdroidserver/import.py
old mode 100755
new mode 100644
similarity index 100%
rename from import.py
rename to fdroidserver/import.py
diff --git a/publish.py b/fdroidserver/publish.py
old mode 100755
new mode 100644
similarity index 100%
rename from publish.py
rename to fdroidserver/publish.py
diff --git a/rewritemeta.py b/fdroidserver/rewritemeta.py
old mode 100755
new mode 100644
similarity index 100%
rename from rewritemeta.py
rename to fdroidserver/rewritemeta.py
diff --git a/scanner.py b/fdroidserver/scanner.py
old mode 100755
new mode 100644
similarity index 100%
rename from scanner.py
rename to fdroidserver/scanner.py
diff --git a/stats.py b/fdroidserver/stats.py
old mode 100755
new mode 100644
similarity index 100%
rename from stats.py
rename to fdroidserver/stats.py
diff --git a/update.py b/fdroidserver/update.py
old mode 100755
new mode 100644
similarity index 100%
rename from update.py
rename to fdroidserver/update.py
diff --git a/setup.py b/setup.py
new file mode 100644
index 00000000..25500175
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,16 @@
+#!/usr/bin/python
+
+from distutils.core import setup
+
+setup(name='FDroidServer',
+ version='0.1',
+ description='F-Droid Server Tools',
+ author='The F-Droid Project',
+ author_email='admin@f-droid.org',
+ url='http://f-droid.org',
+ packages=['fdroidserver'],
+ scripts=['fdroid'],
+ data_files = [('', ['COPYING', 'config.sample.py']),
+ ('docs', ['docs/*.texi'])
+ ]
+ )