Ubunto and Fedora have moved to a model where the initrd executes load_policy -i. This means load_policy has to be in /sbin since /usr might not be mounted.
diff --git a/libsemanage/src/conf-parse.y b/libsemanage/src/conf-parse.y index 23661bf..16e3c30 100644 --- a/libsemanage/src/conf-parse.y +++ b/libsemanage/src/conf-parse.y @@ -263,7 +263,7 @@ static int semanage_conf_init(semanage_conf_t * conf) calloc(1, sizeof(*(current_conf->load_policy)))) == NULL) { return -1; } - if ((conf->load_policy->path = strdup("/usr/sbin/load_policy")) == NULL) { + if ((conf->load_policy->path = strdup("/sbin/load_policy")) == NULL) { return -1; } conf->load_policy->args = NULL; diff --git a/policycoreutils/load_policy/Makefile b/policycoreutils/load_policy/Makefile index 2dd2943..91dc6c8 100644 --- a/policycoreutils/load_policy/Makefile +++ b/policycoreutils/load_policy/Makefile @@ -1,6 +1,7 @@ # Installation directories. PREFIX ?= ${DESTDIR}/usr -SBINDIR ?= $(PREFIX)/sbin +SBINDIR ?= $(DESTDIR)/sbin +USRSBINDIR ?= $(PREFIX)/sbin MANDIR ?= $(PREFIX)/share/man LOCALEDIR ?= /usr/share/locale @@ -17,6 +18,8 @@ install: all install -m 755 $(TARGETS) $(SBINDIR) test -d $(MANDIR)/man8 || install -m 755 -d $(MANDIR)/man8 install -m 644 load_policy.8 $(MANDIR)/man8/ + -mkdir -p $(USRSBINDIR) + ln -s /sbin/load_policy $(USRSBINDIR)/load_policy clean: -rm -f $(TARGETS) *.o