diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..fbe4bde
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,82 @@
+reclass (1.4.1-1) unstable; urgency=low
+
+  * New upstream release reverting the logging changes, which weren't ready
+    yet.
+
+ -- martin f. krafft <madduck@debian.org>  Tue, 28 Oct 2014 15:56:59 +0100
+
+reclass (1.4-1) unstable; urgency=low
+
+  * New upstream release (closes: #761952).
+  * Compliant with Debian Policy 3.9.6.
+
+ -- martin f. krafft <madduck@debian.org>  Sat, 25 Oct 2014 15:12:25 +0200
+
+reclass (1.3-2) UNRELEASED; urgency=medium
+
+  * Add myself as uploader.
+  * Update Vcs-Git and Vcs-Browser URLs.
+  * Improve long description of reclass-doc.
+  * Have python-reclass depend on python-pkg-resources.
+    Closes: bug#757423.
+
+ -- Jonas Smedegaard <dr@jones.dk>  Wed, 17 Sep 2014 10:17:04 +0200
+
+reclass (1.3-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- martin f. krafft <madduck@debian.org>  Sat, 01 Mar 2014 14:48:19 +0100
+
+reclass (1.2.2-1) unstable; urgency=medium
+
+  * New upstream release, fixing recursion of class mappings.
+  * Updated Standards-Version to 3.9.5; no changes required.
+
+ -- martin f. krafft <madduck@debian.org>  Fri, 27 Dec 2013 09:44:42 +1300
+
+reclass (1.2.1-1) unstable; urgency=low
+
+  * New upstream release, fixing the Salt adapter.
+
+ -- martin f. krafft <madduck@debian.org>  Thu, 26 Dec 2013 17:08:15 +1300
+
+reclass (1.2-1) unstable; urgency=low
+
+  * New upstream release, with the following major changes:
+    - class mappings
+    - parameter interpolation across lists
+    - classes caching
+    - yaml_fs: nodes may reside in subdirectories
+  * Remove dangling symlink from /usr/share/doc/reclass/html, add a note about
+    documentation in reclass-doc (and online) to README.Debian instead.
+
+ -- martin f. krafft <madduck@debian.org>  Wed, 28 Aug 2013 13:24:17 +0200
+
+reclass (1.1-1) unstable; urgency=low
+
+  * Add a build-dependency on python-yaml, thanks Jeroen Dekkers.
+  * Fix inter-package dependencies (use binary:Version instead of
+    source:Version), again thanks Jeroen Dekkers.
+  * Move reclass binary package into 'admin' section.
+
+ -- martin f. krafft <madduck@debian.org>  Wed, 28 Aug 2013 09:13:48 +0200
+
+reclass (1.0.2-1) unstable; urgency=low
+
+  * New upstream release (version number fix).
+  * Split Python module into python-reclass.
+
+ -- martin f. krafft <madduck@debian.org>  Tue, 27 Aug 2013 21:43:20 +0200
+
+reclass (1.0.1-1) unstable; urgency=low
+
+  * New upstream release (documentation updates only).
+
+ -- martin f. krafft <madduck@debian.org>  Tue, 27 Aug 2013 18:07:39 +0200
+
+reclass (1.0-1) unstable; urgency=low
+
+  * Initial release (closes: #720922).
+
+ -- martin f. krafft <madduck@debian.org>  Mon, 26 Aug 2013 10:52:31 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..45a4fb7
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+8
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..225c29f
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,70 @@
+Source: reclass
+Section: python
+Priority: extra
+Maintainer: martin f. krafft <madduck@debian.org>
+Uploaders: Jonas Smedegaard <dr@jones.dk>
+Build-Depends: python-setuptools, python, debhelper (>= 8.9.7), python-sphinx, python-yaml
+Standards-Version: 3.9.6
+XS-Python-Version: all
+Homepage: http://reclass.pantsfullofunix.net/
+Vcs-Git: git://anonscm.debian.org/collab-maint/reclass.git
+Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/reclass.git?h=debian
+
+Package: reclass
+Architecture: all
+Section: admin
+Depends: python-reclass (= ${binary:Version}), ${misc:Depends}, ${python:Depends}
+Suggests: reclass-doc
+Description: hierarchical inventory backend for configuration management systems
+ reclass is an "external node classifier" (ENC) as can be used with automation
+ tools, such as Puppet, Salt, and Ansible. It is also a stand-alone tool for
+ merging data sources recursively.
+ .
+ The purpose of an ENC is to allow a system administrator to maintain an
+ inventory of nodes to be managed, completely separately from the configuration
+ of the automation tool. Usually, the external node classifier completely
+ replaces the tool-specific inventory (such as site.pp for Puppet,
+ ext_pillar/master_tops for Salt, or /etc/ansible/hosts).
+ .
+ reclass allows you to define your nodes through class inheritance, while
+ always able to override details further up the tree (i.e. in more specific
+ nodes). Think of classes as feature sets, as commonalities between nodes, or
+ as tags. Add to that the ability to nest classes (multiple inheritance is
+ allowed, well-defined, and encouraged), and piece together your infrastructure
+ from smaller bits, eliminating redundancy and exposing all important
+ parameters to a single location, logically organised.
+ .
+ This package provides the reclass CLI and adapters for Salt and Ansible.
+
+Package: python-reclass
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}, python-pkg-resources
+Description: hierarchical inventory backend for configuration management systems
+ reclass is an "external node classifier" (ENC) as can be used with automation
+ tools, such as Puppet, Salt, and Ansible. It is also a stand-alone tool for
+ merging data sources recursively.
+ .
+ The purpose of an ENC is to allow a system administrator to maintain an
+ inventory of nodes to be managed, completely separately from the configuration
+ of the automation tool. Usually, the external node classifier completely
+ replaces the tool-specific inventory (such as site.pp for Puppet,
+ ext_pillar/master_tops for Salt, or /etc/ansible/hosts).
+ .
+ reclass allows you to define your nodes through class inheritance, while
+ always able to override details further up the tree (i.e. in more specific
+ nodes). Think of classes as feature sets, as commonalities between nodes, or
+ as tags. Add to that the ability to nest classes (multiple inheritance is
+ allowed, well-defined, and encouraged), and piece together your infrastructure
+ from smaller bits, eliminating redundancy and exposing all important
+ parameters to a single location, logically organised.
+
+Package: reclass-doc
+Architecture: all
+Section: doc
+Depends: ${sphinxdoc:Depends}, ${misc:Depends}
+Description: reclass documentation
+ reclass is an "external node classifier" (ENC) as can be used with automation
+ tools, such as Puppet, Salt, and Ansible. It is also a stand-alone tool for
+ merging data sources recursively.
+ .
+ This package provides the documentation for reclass.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..a009446
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,189 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: reclass
+Source: https://github.com/madduck/reclass
+
+Files: *
+Copyright: 2007–2013 martin f. krafft <madduck@madduck.net>
+License: Artistic-2.0
+
+Files: debian/*
+Copyright: 2013 martin f. krafft <madduck@debian.org>
+License: Artistic-2.0
+
+License: Artistic-2.0
+ "The Artistic Licence 2.0"
+ Copyright (c) 2000-2006, The Perl Foundation.
+ http://www.perlfoundation.org/legal/licenses/artistic-2_0.html
+ .
+ Everyone is permitted to copy and distribute verbatim copies of this license
+ document, but changing it is not allowed.
+ .
+ Preamble
+ ~~~~~~~~
+ This license establishes the terms under which a given free software Package
+ may be copied, modified, distributed, and/or redistributed. The intent is that
+ the Copyright Holder maintains some artistic control over the development of
+ that Package while still keeping the Package available as open source and free
+ software.
+ .
+ You are always permitted to make arrangements wholly outside of this license
+ directly with the Copyright Holder of a given Package. If the terms of this
+ license do not permit the full use that you propose to make of the Package,
+ you should contact the Copyright Holder and seek a different licensing
+ arrangement.
+ .
+ Definitions
+ ~~~~~~~~~~~
+ "Copyright Holder" means the individual(s) or organization(s) named in the
+ copyright notice for the entire Package.
+ .
+ "Contributor" means any party that has contributed code or other material to
+ the Package, in accordance with the Copyright Holder's procedures.
+ .
+ "You" and "your" means any person who would like to copy, distribute, or
+ modify the Package.
+ .
+ "Package" means the collection of files distributed by the Copyright Holder,
+ and derivatives of that collection and/or of those files. A given Package may
+ consist of either the Standard Version, or a Modified Version.
+ .
+ "Distribute" means providing a copy of the Package or making it accessible to
+ anyone else, or in the case of a company or organization, to others outside of
+ your company or organization.
+ .
+ "Distributor Fee" means any fee that you charge for Distributing this Package
+ or providing support for this Package to another party. It does not mean
+ licensing fees.
+ .
+ "Standard Version" refers to the Package if it has not been modified, or has
+ been modified only in ways explicitly requested by the Copyright Holder.
+ .
+ "Modified Version" means the Package, if it has been changed, and such changes
+ were not explicitly requested by the Copyright Holder.
+ .
+ "Original License" means this Artistic License as Distributed with the
+ Standard Version of the Package, in its current version or as it may be
+ modified by The Perl Foundation in the future.
+ .
+ "Source" form means the source code, documentation source, and configuration
+ files for the Package.
+ .
+ "Compiled" form means the compiled bytecode, object code, binary, or any other
+ form resulting from mechanical transformation or translation of the Source
+ form.
+ .
+ Permission for Use and Modification Without Distribution
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ (1) You are permitted to use the Standard Version and create and use Modified
+ Versions for any purpose without restriction, provided that you do not
+ Distribute the Modified Version.
+ .
+ Permissions for Redistribution of the Standard Version
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ (2) You may Distribute verbatim copies of the Source form of the Standard
+ Version of this Package in any medium without restriction, either gratis or
+ for a Distributor Fee, provided that you duplicate all of the original
+ copyright notices and associated disclaimers. At your discretion, such
+ verbatim copies may or may not include a Compiled form of the Package.
+ .
+ (3) You may apply any bug fixes, portability changes, and other modifications
+ made available from the Copyright Holder. The resulting Package will still be
+ considered the Standard Version, and as such will be subject to the Original
+ License.
+ .
+ Distribution of Modified Versions of the Package as Source
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ (4) You may Distribute your Modified Version as Source (either gratis or for
+ a Distributor Fee, and with or without a Compiled form of the Modified
+ Version) provided that you clearly document how it differs from the Standard
+ Version, including, but not limited to, documenting any non-standard features,
+ executables, or modules, and provided that you do at least ONE of the
+ following:
+ .
+     (a) make the Modified Version available to the Copyright Holder of the
+         Standard Version, under the Original License, so that the Copyright
+         Holder may include your modifications in the Standard Version.
+     (b) ensure that installation of your Modified Version does not prevent the
+         user installing or running the Standard Version. In addition, the
+         Modified Version must bear a name that is different from the name of
+         the Standard Version.
+     (c) allow anyone who receives a copy of the Modified Version to make the
+         Source form of the Modified Version available to others under
+         (i) the Original License or
+         (ii) a license that permits the licensee to freely copy, modify and
+             redistribute the Modified Version using the same licensing terms
+             that apply to the copy that the licensee received, and requires
+             that the Source form of the Modified Version, and of any works
+             derived from it, be made freely available in that license fees
+             are prohibited but Distributor Fees are allowed.
+ .
+ Distribution of Compiled Forms of the Standard Version or Modified Versions
+ without the Source
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ (5) You may Distribute Compiled forms of the Standard Version without the
+ Source, provided that you include complete instructions on how to get the
+ Source of the Standard Version. Such instructions must be valid at the time of
+ your distribution. If these instructions, at any time while you are carrying
+ out such distribution, become invalid, you must provide new instructions on
+ demand or cease further distribution. If you provide valid instructions or
+ cease distribution within thirty days after you become aware that the
+ instructions are invalid, then you do not forfeit any of your rights under
+ this license.
+ .
+ (6) You may Distribute a Modified Version in Compiled form without the Source,
+ provided that you comply with Section 4 with respect to the Source of the
+ Modified Version.
+ .
+ Aggregating or Linking the Package
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ (7) You may aggregate the Package (either the Standard Version or Modified
+ Version) with other packages and Distribute the resulting aggregation provided
+ that you do not charge a licensing fee for the Package. Distributor Fees are
+ permitted, and licensing fees for other components in the aggregation are
+ permitted. The terms of this license apply to the use and Distribution of the
+ Standard or Modified Versions as included in the aggregation.
+ .
+ (8) You are permitted to link Modified and Standard Versions with other works,
+ to embed the Package in a larger work of your own, or to build stand-alone
+ binary or bytecode versions of applications that include the Package, and
+ Distribute the result without restriction, provided the result does not expose
+ a direct interface to the Package.
+ .
+ Items That are Not Considered Part of a Modified Version
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ (9) Works (including, but not limited to, modules and scripts) that merely
+ extend or make use of the Package, do not, by themselves, cause the Package to
+ be a Modified Version. In addition, such works are not considered parts of the
+ Package itself, and are not subject to the terms of this license.
+ .
+ General Provisions
+ ~~~~~~~~~~~~~~~~~~
+ (10) Any use, modification, and distribution of the Standard or Modified
+ Versions is governed by this Artistic License. By using, modifying or
+ distributing the Package, you accept this license. Do not use, modify, or
+ distribute the Package, if you do not accept this license.
+ .
+ (11) If your Modified Version has been derived from a Modified Version made by
+ someone other than you, you are nevertheless required to ensure that your
+ Modified Version complies with the requirements of this license.
+ .
+ (12) This license does not grant you the right to use any trademark, service
+ mark, tradename, or logo of the Copyright Holder.
+ .
+ (13) This license includes the non-exclusive, worldwide, free-of-charge patent
+ license to make, have made, use, offer to sell, sell, import and otherwise
+ transfer the Package with respect to any patent claims licensable by the
+ Copyright Holder that are necessarily infringed by the Package. If you
+ institute patent litigation (including a cross-claim or counterclaim) against
+ any party alleging that the Package constitutes direct or contributory patent
+ infringement, then this Artistic License to you shall terminate on the date
+ that such litigation is filed.
+ .
+ (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER
+ AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+ NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW.
+ UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY
+ OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..c6e32d4
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,6 @@
+[DEFAULT]
+upstream-branch = master
+debian-branch = debian
+upstream-tag = reclass-%(version)s
+pristine-tar = True
+pristine-tar-commit = True
diff --git a/debian/python-reclass.install b/debian/python-reclass.install
new file mode 100644
index 0000000..06b4743
--- /dev/null
+++ b/debian/python-reclass.install
@@ -0,0 +1 @@
+usr/lib/python2.7/dist-packages/reclass*
diff --git a/debian/reclass-doc.docs b/debian/reclass-doc.docs
new file mode 100644
index 0000000..8137b04
--- /dev/null
+++ b/debian/reclass-doc.docs
@@ -0,0 +1 @@
+doc/build/html
diff --git a/debian/reclass.README.Debian b/debian/reclass.README.Debian
new file mode 100644
index 0000000..395d91c
--- /dev/null
+++ b/debian/reclass.README.Debian
@@ -0,0 +1,10 @@
+reclass for Debian
+==================
+
+The documentation for reclass is provided in the reclass-doc package. Once
+installed, please have a look at /usr/share/doc/reclass-doc/html/index.html.
+
+Alternatively, you may also view the documentation online at
+http://reclass.pantsfullofunix.net/
+
+ -- martin f. krafft <madduck@debian.org>  Wed, 28 Aug 2013 13:23:23 +0200
diff --git a/debian/reclass.dirs b/debian/reclass.dirs
new file mode 100644
index 0000000..8289f78
--- /dev/null
+++ b/debian/reclass.dirs
@@ -0,0 +1 @@
+usr/share/reclass
diff --git a/debian/reclass.docs b/debian/reclass.docs
new file mode 100644
index 0000000..a1320b1
--- /dev/null
+++ b/debian/reclass.docs
@@ -0,0 +1 @@
+README.rst
diff --git a/debian/reclass.examples b/debian/reclass.examples
new file mode 100644
index 0000000..e39721e
--- /dev/null
+++ b/debian/reclass.examples
@@ -0,0 +1 @@
+examples/*
diff --git a/debian/reclass.install b/debian/reclass.install
new file mode 100644
index 0000000..f600704
--- /dev/null
+++ b/debian/reclass.install
@@ -0,0 +1 @@
+usr/bin/reclass
diff --git a/debian/reclass.manpages b/debian/reclass.manpages
new file mode 100644
index 0000000..4afc6ec
--- /dev/null
+++ b/debian/reclass.manpages
@@ -0,0 +1 @@
+doc/build/man/reclass.1
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..de18930
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,27 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+DH_BUILDSYSTEM_OPTION=--buildsystem=python_distutils
+DH_OPTIONS=--with python2,sphinxdoc $(DH_BUILDSYSTEM_OPTION)
+
+%:
+	dh $@ $(DH_OPTIONS)
+
+override_dh_sphinxdoc:
+	dh_sphinxdoc || :
+
+override_dh_auto_build:
+	PYTHONPATH=.. $(MAKE) -C doc man html
+
+override_dh_install:
+	dh_install
+	mv debian/tmp/usr/bin/reclass-* debian/reclass/usr/share/reclass
+
+override_dh_installchangelogs:
+	dh_installchangelogs doc/source/changelog.rst
+
+override_dh_clean:
+	dh_clean -O$(DH_BUILDSYSTEM_OPTION)
+	$(MAKE) docsclean
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 0000000..5e0de7b
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1 @@
+extend-diff-ignore = "^(\.coverage$|reclass\.egg-info)"
