Group :: Sistema/Bibliotecas
RPM: libsemanage
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: libsemanage-3.2-alt.patch
Download
Download
src/Makefile | 5 +++--
src/genhomedircon.c | 26 +++++++++++++++++++-------
src/libsemanage.pc.in | 3 +--
3 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/src/Makefile b/src/Makefile
index ab6cae51..37bb7dc6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -135,12 +135,13 @@ swigify: $(SWIGIF)
install: all
test -d $(DESTDIR)$(LIBDIR) || install -m 755 -d $(DESTDIR)$(LIBDIR)
+ test -d $(DESTDIR)$(SHLIBDIR) || install -m 755 -d $(DESTDIR)$(SHLIBDIR)
install -m 644 $(LIBA) $(DESTDIR)$(LIBDIR)
- install -m 755 $(LIBSO) $(DESTDIR)$(LIBDIR)
+ install -m 755 $(LIBSO) $(DESTDIR)$(SHLIBDIR)
test -d $(DESTDIR)$(LIBDIR)/pkgconfig || install -m 755 -d $(DESTDIR)$(LIBDIR)/pkgconfig
install -m 644 $(LIBPC) $(DESTDIR)$(LIBDIR)/pkgconfig
test -f $(DESTDIR)$(DEFAULT_SEMANAGE_CONF_LOCATION) || install -m 644 -D semanage.conf $(DESTDIR)$(DEFAULT_SEMANAGE_CONF_LOCATION)
- cd $(DESTDIR)$(LIBDIR) && ln -sf $(LIBSO) $(TARGET)
+ cd $(DESTDIR)$(LIBDIR) && ln -sfr $(DESTDIR)$(SHLIBDIR)/$(LIBSO) $(TARGET)
install-pywrap: pywrap
test -d $(DESTDIR)$(PYTHONLIBDIR) || install -m 755 -d $(DESTDIR)$(PYTHONLIBDIR)
diff --git a/src/genhomedircon.c b/src/genhomedircon.c
index d08c88de..a8c4b06b 100644
--- a/src/genhomedircon.c
+++ b/src/genhomedircon.c
@@ -59,6 +59,8 @@
#define PATH_DEFAULT_HOME "/home"
#define PATH_EXPORT_HOME "/export/home"
#define PATH_ETC_LOGIN_DEFS "/etc/login.defs"
+#define PATH_SRV_HOME "/srv/home"
+#define PATH_VAR_SRV_HOME "/var/srv/home"
/* other paths */
#define PATH_SHELLS_FILE "/etc/shells"
@@ -287,6 +289,15 @@ done:
return retval;
}
+static int push_extra_homedirs(semanage_list_t **phomedir_list, const char *path)
+{
+ struct stat buf;
+
+ if (!lstat(path, &buf) && S_ISDIR(buf.st_mode))
+ return semanage_list_push(phomedir_list, path);
+ return 0;
+}
+
static semanage_list_t *get_home_dirs(genhomedircon_settings_t * s)
{
semanage_list_t *homedir_list = NULL;
@@ -319,13 +330,14 @@ static semanage_list_t *get_home_dirs(genhomedircon_settings_t * s)
}
}
- if (!stat(PATH_EXPORT_HOME, &buf)) {
- if (S_ISDIR(buf.st_mode)) {
- if (semanage_list_push(&homedir_list, PATH_EXPORT_HOME)) {
- goto fail;
- }
- }
- }
+ if (push_extra_homedirs(&homedir_list, PATH_EXPORT_HOME))
+ goto fail;
+
+ if (push_extra_homedirs(&homedir_list, PATH_SRV_HOME))
+ goto fail;
+
+ if (push_extra_homedirs(&homedir_list, PATH_VAR_SRV_HOME))
+ goto fail;
if (!(s->usepasswd))
return homedir_list;
diff --git a/src/libsemanage.pc.in b/src/libsemanage.pc.in
index 43681ddb..8bb62c48 100644
--- a/src/libsemanage.pc.in
+++ b/src/libsemanage.pc.in
@@ -7,7 +7,6 @@ Name: libsemanage
Description: SELinux management library
Version: @VERSION@
URL: http://userspace.selinuxproject.org/
-Requires.private: libselinux libsepol
Libs: -L${libdir} -lsemanage
-Libs.private: -lbz2
+Libs.private: -lbz2 -lselinux -lsepol
Cflags: -I${includedir}