diff --git a/.gitignore b/.gitignore
index 9ef219e..f8a653f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ systemd-*src.rpm
 /systemd-25.tar.bz2
 /systemd-26.tar.bz2
 /systemd-28.tar.bz2
+/systemd-29.tar.bz2
diff --git a/0001-exec-Fix-number-of-unit-types.patch b/0001-exec-Fix-number-of-unit-types.patch
deleted file mode 100644
index 5f60ac2..0000000
--- a/0001-exec-Fix-number-of-unit-types.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9a66640832d103f906c2ef609a1d19d43fc542f6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ozan=20=C3=87a=C4=9Flayan?= <ozan@pardus.org.tr>
-Date: Fri, 27 May 2011 08:24:22 +0300
-Subject: [PATCH 1/6] exec: Fix number of unit types
-
-There are four unit types mentioned in here, not three
----
- man/systemd.exec.xml |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml
-index de1d9bf..7b4f7e3 100644
---- a/man/systemd.exec.xml
-+++ b/man/systemd.exec.xml
-@@ -57,13 +57,13 @@
-         <refsect1>
-                 <title>Description</title>
- 
--                <para>Unit configuration files for services, sockets
-+                <para>Unit configuration files for services, sockets,
-                 mount points and swap devices share a subset of
-                 configuration options which define the execution
-                 environment of spawned processes.</para>
- 
-                 <para>This man page lists the configuration options
--                shared by these three unit types. See
-+                shared by these four unit types. See
-                 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-                 for the common options of all unit configuration
-                 files, and
--- 
-1.7.4.4
-
diff --git a/0002-systemctl-fix-double-unref-of-a-dbus-message.patch b/0002-systemctl-fix-double-unref-of-a-dbus-message.patch
deleted file mode 100644
index 07e96e8..0000000
--- a/0002-systemctl-fix-double-unref-of-a-dbus-message.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 78e39b43b89c6bf9ce401d6030939a004a23c850 Mon Sep 17 00:00:00 2001
-From: Michal Schmidt <mschmidt@redhat.com>
-Date: Sun, 5 Jun 2011 17:22:37 +0200
-Subject: [PATCH 2/6] systemctl: fix double unref of a dbus message
-
----
- src/systemctl.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/src/systemctl.c b/src/systemctl.c
-index 99ada38..a82cce4 100644
---- a/src/systemctl.c
-+++ b/src/systemctl.c
-@@ -1565,6 +1565,7 @@ static int check_unit(DBusConnection *bus, char **args, unsigned n) {
- 
-                         dbus_error_free(&error);
-                         dbus_message_unref(m);
-+                        m = NULL;
-                         continue;
-                 }
- 
--- 
-1.7.4.4
-
diff --git a/0003-cryptsetup-generator-fix-etc-cryptsetup-options.patch b/0003-cryptsetup-generator-fix-etc-cryptsetup-options.patch
deleted file mode 100644
index 8c5b89d..0000000
--- a/0003-cryptsetup-generator-fix-etc-cryptsetup-options.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From aae5220d961a419a1e160de90ee5c393c7c13607 Mon Sep 17 00:00:00 2001
-From: Michal Schmidt <mschmidt@redhat.com>
-Date: Mon, 6 Jun 2011 22:59:19 +0200
-Subject: [PATCH 3/6] cryptsetup-generator: fix /etc/cryptsetup options
-
-cryptsetup-generator parses the options in /etc/cryptsetup incorrectly.
-It fails to find the 'swap' option in
-  swap,foo
-and instead it matches on
-  swaplalala,foo
-
-The condition for the comma separator is reversed.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=710839
----
- src/cryptsetup-generator.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c
-index 696f44a..db8ebdf 100644
---- a/src/cryptsetup-generator.c
-+++ b/src/cryptsetup-generator.c
-@@ -47,7 +47,7 @@ static bool has_option(const char *haystack, const char *needle) {
-                         continue;
-                 }
- 
--                if (f[l] != 0 && f[l] == ',') {
-+                if (f[l] != 0 && f[l] != ',') {
-                         f++;
-                         continue;
-                 }
--- 
-1.7.4.4
-
diff --git a/0004-selinux-selinuxfs-can-be-mounted-on-sys-fs-selinux.patch b/0004-selinux-selinuxfs-can-be-mounted-on-sys-fs-selinux.patch
deleted file mode 100644
index 1863ecc..0000000
--- a/0004-selinux-selinuxfs-can-be-mounted-on-sys-fs-selinux.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From ef9d7dca5463e64510e174d55a869b4d5a3c4e84 Mon Sep 17 00:00:00 2001
-From: Michal Schmidt <mschmidt@redhat.com>
-Date: Tue, 7 Jun 2011 00:48:16 +0200
-Subject: [PATCH 4/6] selinux: selinuxfs can be mounted on /sys/fs/selinux
-
-The kernel now provides the /sys/fs/selinux mountpoint and libselinux
-prefers it if it's available.
-
-systemd currently tests only for /selinux and this leads to an infinite
-loop of policy reloads in the latest Rawhide.
-
-Fix it by checking both possible mountpoints.
-Also add the new path to ignore_paths[].
-
-/selinux appears also in nspawn.c. I don't think it's necessary to
-change it there at this point.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=711015
----
- src/mount-setup.c   |    1 +
- src/selinux-setup.c |    3 ++-
- 2 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/src/mount-setup.c b/src/mount-setup.c
-index 48c32ea..6feee6a 100644
---- a/src/mount-setup.c
-+++ b/src/mount-setup.c
-@@ -63,6 +63,7 @@ static const MountPoint mount_table[] = {
-  * we just list them here so that we know that we should ignore them */
- 
- static const char * const ignore_paths[] = {
-+        "/sys/fs/selinux",
-         "/selinux",
-         "/proc/bus/usb"
- };
-diff --git a/src/selinux-setup.c b/src/selinux-setup.c
-index c32c7ad..9ff27dc 100644
---- a/src/selinux-setup.c
-+++ b/src/selinux-setup.c
-@@ -39,7 +39,8 @@ int selinux_setup(char *const argv[]) {
-        int enforce = 0;
- 
-        /* Already initialized? */
--       if (path_is_mount_point("/selinux") > 0)
-+       if (path_is_mount_point("/sys/fs/selinux") > 0 ||
-+           path_is_mount_point("/selinux") > 0)
-                return 0;
- 
-        /* Before we load the policy we create a flag file to ensure
--- 
-1.7.4.4
-
diff --git a/0005-enable-chkconfig-support-in-systemctl-for-openSUSE.patch b/0005-enable-chkconfig-support-in-systemctl-for-openSUSE.patch
deleted file mode 100644
index 353686f..0000000
--- a/0005-enable-chkconfig-support-in-systemctl-for-openSUSE.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From dc725264f34f3a81eb47b7472f4484f849e0461d Mon Sep 17 00:00:00 2001
-From: Frederic Crozat <fcrozat@suse.com>
-Date: Wed, 8 Jun 2011 17:34:22 +0200
-Subject: [PATCH 5/6] enable chkconfig support in systemctl for openSUSE
-
----
- src/systemctl.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/systemctl.c b/src/systemctl.c
-index a82cce4..faca797 100644
---- a/src/systemctl.c
-+++ b/src/systemctl.c
-@@ -4089,7 +4089,7 @@ static int install_info_apply(const char *verb, LookupPaths *paths, InstallInfo
-         }
- 
-         if (!f) {
--#if (defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA)) || defined(TARGET_MEEGO) && defined (HAVE_SYSV_COMPAT)
-+#if (defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_SUSE)) || defined(TARGET_MEEGO) && defined (HAVE_SYSV_COMPAT)
- 
-                 if (endswith(i->name, ".service")) {
-                         char *sysv;
--- 
-1.7.4.4
-
diff --git a/0006-readahead-common-fix-total-memory-size-detection.patch b/0006-readahead-common-fix-total-memory-size-detection.patch
deleted file mode 100644
index 4f3a3ea..0000000
--- a/0006-readahead-common-fix-total-memory-size-detection.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 597b99b09a007dfa8ddfce31c480765b0c7baa6a Mon Sep 17 00:00:00 2001
-From: Michal Schmidt <mschmidt@redhat.com>
-Date: Fri, 10 Jun 2011 14:37:21 +0200
-Subject: [PATCH 6/6] readahead-common: fix total memory size detection
-
-sysinfo returns the total memory size in multiples of mem_unit bytes.
-As long as the size in bytes fits into unsigned long, the kernel uses
-mem_unit = 1, but this is not true on i386 with more than 4 GB RAM.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=712341
----
- src/readahead-common.c |    5 ++---
- 1 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/src/readahead-common.c b/src/readahead-common.c
-index 8a75b2e..f0d57b4 100644
---- a/src/readahead-common.c
-+++ b/src/readahead-common.c
-@@ -154,9 +154,8 @@ bool enough_ram(void) {
- 
-         assert_se(sysinfo(&si) >= 0);
- 
--        return si.totalram > 127 * 1024*1024; /* Enable readahead only
--                                               * with at least 128MB
--                                               * memory */
-+        /* Enable readahead only with at least 128MB memory */
-+        return si.totalram > 127 * 1024*1024 / si.mem_unit;
- }
- 
- int open_inotify(void) {
--- 
-1.7.4.4
-
diff --git a/sources b/sources
index b80f019..dc77e6e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-be37500f576a0494f82fed7fa47cc306  systemd-28.tar.bz2
+e91ffd208c5f03e5c11966eee7b684b0  systemd-29.tar.bz2
diff --git a/systemd.spec b/systemd.spec
index 99d9de6..0fc17c1 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -1,8 +1,8 @@
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-Version:        28
-Release:        4%{?dist}
+Version:        29
+Release:        1%{?dist}
 License:        GPLv2+
 Group:          System Environment/Base
 Summary:        A System and Service Manager
@@ -37,12 +37,6 @@ Source0:        http://www.freedesktop.org/software/systemd/%{name}-%{version}.t
 # Adds support for the %%{_unitdir} macro
 Source1:        macros.systemd
 Source2:        systemd-sysv-convert
-Patch1:         0001-exec-Fix-number-of-unit-types.patch
-Patch2:         0002-systemctl-fix-double-unref-of-a-dbus-message.patch
-Patch3:         0003-cryptsetup-generator-fix-etc-cryptsetup-options.patch
-Patch4:         0004-selinux-selinuxfs-can-be-mounted-on-sys-fs-selinux.patch
-Patch5:         0005-enable-chkconfig-support-in-systemctl-for-openSUSE.patch
-Patch6:         0006-readahead-common-fix-total-memory-size-detection.patch
 
 # For sysvinit tools
 Obsoletes:      SysVinit < 2.86-24, sysvinit < 2.86-24
@@ -96,12 +90,6 @@ SysV compatibility tools for systemd
 
 %prep
 %setup -q
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
 
 %build
 %configure --with-rootdir= --with-distro=fedora
@@ -302,6 +290,9 @@ fi
 %{_bindir}/systemd-sysv-convert
 
 %changelog
+* Thu Jun 16 2011 Lennart Poettering <lpoetter@redhat.com> - 29-1
+- New upstream release
+
 * Mon Jun 13 2011 Michal Schmidt <mschmidt@redhat.com> - 28-4
 - Apply patches from current upstream.
 - Fixes memory size detection on 32-bit with >4GB RAM (BZ712341)