diff --git a/debian/rules b/debian/rules
new file mode 100644
index 0000000..864fb31
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,211 @@
+#! /usr/bin/make -f
+# -*- makefile -*-
+#
+# Invoke each target with `./debian/rules <target>'.  All targets should be
+# invoked with the package root as the current directory.
+#
+# The `binary' target must be run as root, as it needs to install files with
+# specific ownerships.
+
+# be paranoid
+export LC_ALL=C
+
+DEB_BUILD_ARCH := $(shell dpkg --print-architecture)
+DEB_BUILD_GNU_TYPE := $(shell ./config.guess)
+ifndef DEB_HOST_ARCH
+  DEB_HOST_ARCH := ${DEB_BUILD_ARCH}
+endif
+DEB_HOST_GNU_CPU := $(patsubst hurd-%,%,$(DEB_HOST_ARCH))
+ifeq ($(filter-out hurd-%,${DEB_HOST_ARCH}),)
+  DEB_HOST_GNU_SYSTEM := gnu
+else
+# FIXME: we won't always have only Hurd and Linux
+  DEB_HOST_GNU_SYSTEM := linux
+endif
+DEB_HOST_GNU_TYPE := ${DEB_HOST_GNU_CPU}-${DEB_HOST_GNU_SYSTEM}
+
+
+# find the version for the main package, from changelog file
+MAIN_VERSION = $(shell head -1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g')
+# find versions for libraries going into their own packages, from their Makefile.in's
+COMERR_VERSION = $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3)
+COMERR_MAJOR = $(word 1,$(subst ., ,${COMERR_VERSION}))
+SS_VERSION = $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
+SS_MAJOR = $(word 1,$(subst ., ,${SS_VERSION}))
+UUID_VERSION = $(shell grep ELF_VERSION lib/uuid/Makefile.in | cut '-d ' -f3)
+UUID_MAJOR = $(word 1,$(subst ., ,${UUID_VERSION}))
+
+package=e2fsprogs
+
+topdir=$(shell pwd)
+debdir=${topdir}/debian
+maindir=${debdir}/tmp
+builddir=${debdir}/BUILD
+docdir=${maindir}/usr/share/doc/${package}
+MANDIR=/usr/share/man
+mandir=${maindir}${MANDIR}
+
+SUBPACKAGES_DIRS = tmp e2fslibs-dev comerr-dev ss-dev
+
+installdoc = install -m 644
+installbin = install -m 755
+
+CCOPTS = -g -O2 -fsigned-char
+LIBC-DEV = libc6-dev
+
+ifeq (${DEB_HOST_ARCH},alpha)
+CCOPTS += -DHAVE_NETINET_IN_H
+LIBC-DEV = libc6.1-dev
+else
+CCOPTS += -D__NO_STRING_INLINES
+endif
+
+build: build-stamp
+build-stamp: configure-stamp
+	dh_testdir
+	make -C ${builddir}
+	( cd ${builddir}/doc && \
+	  texi2html -split_chapter ${topdir}/doc/libext2fs.texinfo )
+	( cd ${builddir}/lib/et && make com_err.info && \
+	  texi2html -split_chapter -expandinfo ${topdir}/lib/et/com_err.texinfo )
+	touch build-stamp
+
+configure-stamp:
+	dh_testdir
+	mkdir -p ${builddir}
+ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+	cd ${builddir} && CFLAGS="${CFLAGS}" \
+		${topdir}/configure --with-ccopts="${CCOPTS}" \
+		--enable-elf-shlibs --enable-dynamic-e2fsck \
+		--enable-nls --enable-compression \
+		--mandir=${MANDIR} --infodir=/usr/share/info
+else
+	cd ${builddir} && CFLAGS="${CFLAGS}" CC="${DEB_HOST_GNU_TYPE}-gcc" \
+		${topdir}/configure --with-ccopts="${CCOPTS}" \
+		--enable-elf-shlibs --enable-dynamic-e2fsck \
+		--enable-nls --enable-compression \
+		--mandir=${MANDIR} --infodir=/usr/share/info \
+		--build=$(DEB_BUILD_GNU_TYPE) $(DEB_HOST_GNU_TYPE)
+endif
+	touch configure-stamp
+
+clean:
+	dh_testdir
+	rm -f build-stamp configure-stamp install
+	-make -C ${builddir} -i distclean
+	rm -rf ${builddir}
+	rm -f doc/libext2fs_*.html lib/et/com_err_*.html
+	dh_clean
+
+binary-indep: build
+  # no arch-independant debs.
+
+binary-arch: build
+	dh_testversion 0.56 # == 0.53 + fixes
+	dh_testdir -a
+	dh_testroot -a
+	dh_clean -a
+	dh_installdirs -a
+
+	mkdir -p ${maindir}/sbin
+	make -C ${builddir} install DESTDIR=${maindir}
+  # static libs and .h files
+	make -C ${builddir} install-libs DESTDIR=${maindir}
+
+# correct locations
+	(cd ${maindir}/sbin && mv debugfs ../usr/sbin/)
+	(cd ${maindir}/sbin && mv e2label ../usr/sbin/)
+
+# docs
+  # fully handled by debhelper
+	rm -rf ${maindir}/usr/share/info
+
+	mkdir -p ${debdir}/e2fslibs-dev/usr/share/doc/e2fsprogs
+	ln -sf e2fsprogs ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev
+
+	mkdir -p ${maindir}/usr/share/doc/libcomerr${COMERR_MAJOR}
+	mkdir -p ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_MAJOR}
+	ln -sf libcomerr${COMERR_MAJOR} ${debdir}/comerr-dev/usr/share/doc/comerr-dev
+
+	mkdir -p ${maindir}/usr/share/doc/libss${SS_MAJOR}
+	mkdir -p ${debdir}/ss-dev/usr/share/doc/libss${SS_MAJOR}
+	ln -sf libss${SS_MAJOR} ${debdir}/ss-dev/usr/share/doc/ss-dev
+
+	mkdir -p ${debdir}/uuid-dev/usr/share/doc/e2fsprogs
+	ln -sf e2fsprogs ${debdir}/uuid-dev/usr/share/doc/uuid-dev
+
+	dh_installdocs -a
+
+	for i in libcomerr${COMERR_MAJOR} libss${SS_MAJOR}; do \
+		install -m 644 debian/$$i.copyright ${maindir}/usr/share/doc/$$i/copyright ;\
+	done
+
+  # HTML docs
+	install -d ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev/html-info/
+	install -p ${builddir}/doc/libext2fs_*.html \
+	   ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev/html-info/
+	install -d ${debdir}/comerr-dev/usr/share/doc/comerr-dev/html-info/
+	install -p ${builddir}/lib/et/com_err_*.html \
+	   ${debdir}/comerr-dev/usr/share/doc/comerr-dev/html-info/
+
+  # texinfo docs
+	install -p ${topdir}/doc/libext2fs.texinfo \
+	   ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev/libext2fs.texi
+	install -p ${topdir}/lib/et/com_err.texinfo \
+	   ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_MAJOR}/com_err.texi
+
+  # info docs
+#	dh_installinfo -pcomerr-dev ${builddir}/lib/et/com_err.info
+	dh_installinfo -pe2fslibs-dev ${builddir}/doc/libext2fs.info
+
+  # examples
+	dh_installexamples -a
+
+  # dh_installmanpages still makes a mess as of 0.54 (see below dh_movefiles)
+	ln -s e2fsck.8 ${mandir}/man8/fsck.ext2.8
+	ln -s mke2fs.8 ${mandir}/man8/mkfs.ext2.8
+
+	dh_movefiles -a
+  # cleanup empty dirs
+	cd ${maindir}/usr/include/ && rmdir * && cd .. && rmdir include/
+	cd ${maindir}/usr/share/ && rmdir et ss && cd man && rmdir man3
+	cd ${maindir}/usr && rmdir lib
+
+  # broken + useless in 0.52
+  #	dh_installmanpages -a
+
+	dh_undocumented -a
+
+	dh_installchangelogs -pe2fsprogs ChangeLog
+	for i in libcomerr${COMERR_MAJOR} libss${SS_MAJOR}; do \
+		ln -s ../e2fsprogs/changelog.Debian.gz ${maindir}/usr/share/doc/$$i/ ;\
+		ln -s ../e2fsprogs/changelog.gz ${maindir}/usr/share/doc/$$i/ ;\
+	done
+
+	dh_strip -a
+	dh_compress -a
+	dh_fixperms -a
+
+	echo "libcdev:Depends=${LIBC-DEV}" >> debian/comerr-dev.substvars
+	echo "libcdev:Depends=${LIBC-DEV}" >> debian/ss-dev.substvars
+	echo "libcdev:Depends=${LIBC-DEV}" >> debian/uuid-dev.substvars
+	echo "libcdev:Depends=${LIBC-DEV}" >> debian/e2fslibs-dev.substvars
+
+	dh_installdeb -a
+	LD_LIBRARY_PATH=${builddir}/lib:/lib:/usr/lib \
+	  dh_shlibdeps -a
+	dh_gencontrol -pe2fsprogs -pe2fslibs-dev
+	dh_gencontrol -pcomerr-dev \
+	  -u '-v${COMERR_VERSION}-${MAIN_VERSION}'
+	dh_gencontrol -pss-dev \
+	  -u '-v${SS_VERSION}-${MAIN_VERSION}'
+	dh_gencontrol -puuid-dev \
+	  -u '-v${UUID_VERSION}-${MAIN_VERSION}'
+# We do this one by hand
+#	dh_makeshlibs -a
+	dh_md5sums -a
+	dh_builddeb -a
+
+binary: binary-indep binary-arch
+
+.PHONY: binary binary-arch binary-indep clean checkroot
