diff --git a/Makefile.am b/Makefile.am index bebfd2f737..3c54043975 100644 --- a/Makefile.am +++ b/Makefile.am @@ -195,7 +195,8 @@ if TARGET_SUSE dist_systemunit_DATA += \ units/suse/halt.service \ units/suse/poweroff.service \ - units/suse/reboot.service + units/suse/reboot.service \ + units/suse/fsck.target endif if TARGET_GENTOO @@ -787,6 +788,11 @@ if TARGET_GENTOO rm -f xdm.service && \ $(LN_S) $(systemunitdir)/xdm.service xdm.service ) endif +if !TARGET_SUSE + ( cd $(DESTDIR)$(systemunitdir) && \ + rm -f fsck.target && \ + $(LN_S) sysinit.target fsck.target ) +endif DISTCHECK_CONFIGURE_FLAGS = \ --with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \ diff --git a/src/mount.c b/src/mount.c index c1a1d51141..76e4aa9bb2 100644 --- a/src/mount.c +++ b/src/mount.c @@ -281,7 +281,7 @@ static int mount_add_default_dependencies(Mount *m) { if (m->meta.manager->running_as == MANAGER_SYSTEM) { - if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, SPECIAL_SYSINIT_TARGET, NULL, true)) < 0) + if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, SPECIAL_FSCK_TARGET, NULL, true)) < 0) return r; if (!path_equal(m->where, "/")) diff --git a/src/special.h b/src/special.h index 9ffd3d8922..bbc64806bf 100644 --- a/src/special.h +++ b/src/special.h @@ -51,6 +51,7 @@ #define SPECIAL_BASIC_TARGET "basic.target" #define SPECIAL_SOCKETS_TARGET "sockets.target" #define SPECIAL_SYSINIT_TARGET "sysinit.target" +#define SPECIAL_FSCK_TARGET "fsck.target" #define SPECIAL_RESCUE_TARGET "rescue.target" #define SPECIAL_EXIT_SERVICE "exit.service" #define SPECIAL_EMERGENCY_TARGET "emergency.target" diff --git a/units/sysinit.target.m4 b/units/sysinit.target.m4 index 30180c9749..8ca37fff95 100644 --- a/units/sysinit.target.m4 +++ b/units/sysinit.target.m4 @@ -23,3 +23,7 @@ m4_dnl Hook in Arch's /etc/rc.sysinit Requires=sysinit.service After=sysinit.service )m4_dnl +m4_ifdef(`TARGET_SUSE',`', +m4_dnl On Suse, fsck.target is seperate, everywhere else it is just an alias for sysinit.target +Names=fsck.target +)m4_dnl