All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guido Trentalancia <guido@trentalancia.com>
To: Joshua Brindle <method@manicmethod.com>
Cc: Eric Paris <eparis@redhat.com>,
	Eric Paris <eparis@parisplace.org>,
	SELinux Mail List <selinux@tycho.nsa.gov>
Subject: Re: [RFC] Improve installation of userspace shared libraries (was Re: [RFC] Userspace top-level Makefile)
Date: Mon, 12 Sep 2011 22:17:00 +0200	[thread overview]
Message-ID: <1315858620.2223.13.camel@vortex> (raw)
In-Reply-To: <4E6DFDE5.2070709@manicmethod.com>

Hi Joshua,

thanks very much for your comments !

On Mon, 2011-09-12 at 08:41 -0400, Joshua Brindle wrote:
> Guido Trentalancia wrote:
> > On Sun, 2011-09-11 at 19:22 -0400, Joshua Brindle wrote:
> >> Eric Paris wrote:
> >>> On 09/09/2011 07:12 PM, Guido Trentalancia wrote:
> <snip>>>
> >> gcc doesn't care and I swear we use to have ../ directories in the
> >> include path, not sure what happened to those :X
> >
> > Honestly, I don't know, I can't remember. From reading a bit of git log,
> > perhaps I can speculate it wasn't there, but what I am hitting is also
> > cross-dependencies between the objects in the library directories (so
> > for example libsepol symbols being required by objects in the libselinux
> > directory).
> >
> 
> Probably pre-git
> 
> > @@ -126,7 +126,7 @@ install: all
> >   	install -m 755 $(LIBSO) $(SHLIBDIR)
> >   	test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
> >   	install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
> > -	cd $(LIBDIR)&&  ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET)
> > +	cd $(LIBDIR)&&  ln -sf $(LIBSO) $(TARGET)
> >
> >   install-pywrap: pywrap
> >   	test -d $(PYLIBDIR)/site-packages/selinux || install -m 755 -d $(PYLIBDIR)/site-packages/selinux
> 
> What is the purpose of this? It definitely doesn't seem right to me :\

In the first place it was to be coherent with what is being done by
libsemanage. However, it is not entirely correct, as LIBDIR should be
replaced by SHLIBDIR.

Note that apparently libsepol needs to be installed in /lib instead of
$PREFIX/lib (and there is an evident mismatch between the default values
for LIBDIR and SHLIBDIR compared to the other two cases).

diff -pru selinux-12092011-git-fix-local-build-fix-load_policy-LIBDIR-v2/libselinux/src/Makefile selinux-12092011-test/libselinux/src/Makefile
--- selinux-12092011-git-fix-local-build-fix-load_policy-LIBDIR-v2/libselinux/src/Makefile	2011-09-12 03:05:45.349163662 +0200
+++ selinux-12092011-test/libselinux/src/Makefile	2011-09-12 21:54:51.527394433 +0200
@@ -126,7 +126,7 @@ install: all
 	install -m 755 $(LIBSO) $(SHLIBDIR)
 	test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
 	install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
-	cd $(LIBDIR) && ln -sf $(LIBSO) $(TARGET)
+	cd $(SHLIBDIR) && ln -sf $(LIBSO) $(TARGET)
 
 install-pywrap: pywrap
 	test -d $(PYLIBDIR)/site-packages/selinux || install -m 755 -d $(PYLIBDIR)/site-packages/selinux
diff -pru selinux-12092011-git-fix-local-build-fix-load_policy-LIBDIR-v2/libsemanage/src/Makefile selinux-12092011-test/libsemanage/src/Makefile
--- selinux-12092011-git-fix-local-build-fix-load_policy-LIBDIR-v2/libsemanage/src/Makefile	2011-09-12 03:05:45.350163708 +0200
+++ selinux-12092011-test/libsemanage/src/Makefile	2011-09-12 21:54:20.618245062 +0200
@@ -139,7 +139,7 @@ install: all
 	test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
 	install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
 	test -f $(DEFAULT_SEMANAGE_CONF_LOCATION) || install -m 644 -D semanage.conf $(DEFAULT_SEMANAGE_CONF_LOCATION)
-	cd $(LIBDIR) && ln -sf $(LIBSO) $(TARGET)
+	cd $(SHLIBDIR) && ln -sf $(LIBSO) $(TARGET)
 
 install-pywrap: pywrap 
 	test -d $(PYLIBDIR)/site-packages || install -m 755 -d $(PYLIBDIR)/site-packages
diff -pru selinux-12092011-git-fix-local-build-fix-load_policy-LIBDIR-v2/libsepol/src/Makefile selinux-12092011-test/libsepol/src/Makefile
--- selinux-12092011-git-fix-local-build-fix-load_policy-LIBDIR-v2/libsepol/src/Makefile	2011-09-12 03:05:45.351163751 +0200
+++ selinux-12092011-test/libsepol/src/Makefile	2011-09-12 21:53:56.414127000 +0200
@@ -43,7 +43,7 @@ install: all
 	install -m 755 $(LIBSO) $(SHLIBDIR)
 	test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
 	install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
-	cd $(LIBDIR) && ln -sf $(LIBSO) $(TARGET)
+	cd $(SHLIBDIR) && ln -sf $(LIBSO) $(TARGET)
 
 relabel:
 	/sbin/restorecon $(SHLIBDIR)/$(LIBSO)

Or otherwise, with respect to actual git, it should look like (also
modifies include and link directories):

--- selinux/libselinux/src/Makefile	2011-09-09 20:12:55.992662259 +0200
+++ selinux-12092011-test/libselinux/src/Makefile	2011-09-12 21:54:51.527394433 +0200
@@ -54,7 +54,7 @@ SRCS= $(filter-out $(UNUSED_SRCS) $(GENE
 OBJS= $(patsubst %.c,%.o,$(SRCS))
 LOBJS= $(patsubst %.c,%.lo,$(SRCS))
 CFLAGS ?= -Werror -Wall -W -Wundef -Wshadow -Wmissing-noreturn -Wmissing-format-attribute
-override CFLAGS += -I../include -I$(INCLUDEDIR) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(EMFLAGS)
+override CFLAGS += -I../include -I../../libsepol/include -I$(INCLUDEDIR) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(EMFLAGS)
 RANLIB=ranlib
 
 ARCH := $(patsubst i%86,i386,$(shell uname -m))
@@ -102,7 +102,7 @@ $(AUDIT2WHYLOBJ): audit2why.c
 	$(CC) $(filter-out -Werror, $(CFLAGS)) $(PYINC) -fPIC -DSHARED -c -o $@ $<
 
 $(AUDIT2WHYSO): $(AUDIT2WHYLOBJ)
-	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux ${LIBDIR}/libsepol.a -L$(LIBDIR) -Wl,-soname,$@
+	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux ../../libsepol/src/libsepol.a -L$(LIBDIR) -Wl,-soname,$@
 
 %.o:  %.c policy.h
 	$(CC) $(CFLAGS) $(TLSFLAGS) -c -o $@ $<
@@ -126,7 +126,7 @@ install: all
 	install -m 755 $(LIBSO) $(SHLIBDIR)
 	test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
 	install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
-	cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET)
+	cd $(SHLIBDIR) && ln -sf $(LIBSO) $(TARGET)
 
 install-pywrap: pywrap
 	test -d $(PYLIBDIR)/site-packages/selinux || install -m 755 -d $(PYLIBDIR)/site-packages/selinux
--- selinux/libsemanage/src/Makefile	2011-09-09 20:12:56.008662374 +0200
+++ selinux-12092011-test/libsemanage/src/Makefile	2011-09-12 21:54:20.618245062 +0200
@@ -55,7 +55,7 @@ OBJS= $(patsubst %.c,%.o,$(SRCS)) conf-s
 LOBJS= $(patsubst %.c,%.lo,$(SRCS)) conf-scan.lo conf-parse.lo
 CFLAGS ?= -Werror -Wall -W -Wundef -Wshadow -Wmissing-noreturn -Wmissing-format-attribute
 
-override CFLAGS += -I../include -I$(INCLUDEDIR) -D_GNU_SOURCE 
+override CFLAGS += -I../include -I../../libselinux/include -I../../libsepol/include -I$(INCLUDEDIR) -D_GNU_SOURCE 
 RANLIB=ranlib
 
 SWIG = swig -Wall -python -o $(SWIGCOUT) -outdir ./
@@ -87,7 +87,7 @@ $(LIBA): $(OBJS)
 	$(RANLIB) $@
 
 $(LIBSO): $(LOBJS)
-	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -lsepol -lselinux -lbz2 -lustr -L$(LIBDIR) -Wl,-soname,$(LIBSO),--version-script=libsemanage.map,-z,defs
+	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L../../libsepol/src -lsepol -L../../libselinux/src -lselinux -L$(LIBDIR) -lbz2 -lustr -Wl,-soname,$(LIBSO),--version-script=libsemanage.map,-z,defs
 	ln -sf $@ $(TARGET)
 
 $(LIBPC): $(LIBPC).in
@@ -139,7 +139,7 @@ install: all
 	test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
 	install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
 	test -f $(DEFAULT_SEMANAGE_CONF_LOCATION) || install -m 644 -D semanage.conf $(DEFAULT_SEMANAGE_CONF_LOCATION)
-	cd $(LIBDIR) && ln -sf $(LIBSO) $(TARGET)
+	cd $(SHLIBDIR) && ln -sf $(LIBSO) $(TARGET)
 
 install-pywrap: pywrap 
 	test -d $(PYLIBDIR)/site-packages || install -m 755 -d $(PYLIBDIR)/site-packages
--- selinux/libsepol/src/Makefile	2011-09-09 20:12:56.021662468 +0200
+++ selinux-12092011-test/libsepol/src/Makefile	2011-09-12 21:53:56.414127000 +0200
@@ -43,7 +43,7 @@ install: all
 	install -m 755 $(LIBSO) $(SHLIBDIR)
 	test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
 	install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
-	cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET)
+	cd $(SHLIBDIR) && ln -sf $(LIBSO) $(TARGET)
 
 relabel:
 	/sbin/restorecon $(SHLIBDIR)/$(LIBSO)

Is there anything else that looks odd in it ? Partial description could
be something like this:

Simply use the filename as the target instead of the full path to the
shared libraries when creating the links in SHLIBDIR during
installation.

Regards,

Guido


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

  reply	other threads:[~2011-09-12 20:17 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-09 17:01 [PATCH] Fix include semanage/handle.h for semanage_set_root() as used by semodule Guido Trentalancia
2011-09-09 17:11 ` Guido Trentalancia
2011-09-09 17:17 ` Guido Trentalancia
2011-09-09 17:31   ` Eric Paris
2011-09-09 17:46     ` Guido Trentalancia
2011-09-09 17:59       ` [PATCH] Fix LIBDIR usage for load_policy (was Re: [PATCH] Fix include semanage/handle.h for semanage_set_root() as used by semodule) Guido Trentalancia
2011-09-09 21:19         ` [RFC] Userspace top-level Makefile (was Re: [PATCH] Fix LIBDIR usage for load_policy) Guido Trentalancia
2011-09-09 21:37           ` Joshua Brindle
2011-09-09 21:46             ` Guido Trentalancia
2011-09-09 22:35             ` Guido Trentalancia
2011-09-09 23:07               ` Eric Paris
2011-09-09 23:12                 ` Guido Trentalancia
2011-09-09 23:15                   ` Eric Paris
2011-09-09 23:25                     ` Guido Trentalancia
2011-09-09 23:45                       ` Guido Trentalancia
2011-09-09 23:56                         ` Guido Trentalancia
2011-09-10  1:04                           ` [RFC] Userspace git local build (was Re: [RFC] Userspace top-level Makefile) Guido Trentalancia
2011-09-10  2:39                             ` [RFC v2] Userspace git local build (was Re: [RFC] Userspace git local build) Guido Trentalancia
2011-09-11 23:22                     ` [RFC] Userspace top-level Makefile (was Re: [PATCH] Fix LIBDIR usage for load_policy) Joshua Brindle
2011-09-12  2:12                       ` Guido Trentalancia
2011-09-12 12:41                         ` Joshua Brindle
2011-09-12 20:17                           ` Guido Trentalancia [this message]
2011-09-13 21:00                             ` [RFC] Improve installation of userspace shared libraries (was Re: [RFC] Userspace top-level Makefile) Stephen Smalley
2011-09-13 21:12                               ` Guido Trentalancia
2011-09-13 21:35                                 ` Guido Trentalancia
2011-09-12 12:57     ` [PATCH] Fix include semanage/handle.h for semanage_set_root() as used by semodule Stephen Smalley
2011-09-12 20:29       ` [PATCH] Fix includes for userspace tools and libraries (was Re: [PATCH] Fix include semanage/handle.h for semanage_set_root() as used by semodule) Guido Trentalancia
2011-09-12 22:01         ` Eric Paris
2011-09-12 23:05           ` Guido Trentalancia
2011-09-13  0:53             ` Guido Trentalancia
2011-09-13  2:03               ` [PATCH v2] Fix includes for userspace tools and libraries (was Re: [PATCH] Fix includes for userspace tools and libraries) Guido Trentalancia
2011-09-13  2:41                 ` [PATCH v3] Fix includes for userspace tools and libraries (was Re: [PATCH v2] " Guido Trentalancia
2011-09-13 12:41           ` [PATCH] Fix includes for userspace tools and libraries (was Re: [PATCH] Fix include semanage/handle.h for semanage_set_root() as used by semodule) Stephen Smalley
2011-09-13 16:31             ` Guido Trentalancia
2011-09-13 17:20               ` Stephen Smalley
2011-09-13 18:33                 ` [PATCH] Fix includes for userspace tools and libraries (and possible security issue) Guido Trentalancia
2011-09-13 18:46                   ` Guido Trentalancia
2011-09-13 19:17                     ` Stephen Smalley
2011-09-13 18:48                   ` Stephen Smalley
2011-09-13 19:18                     ` Guido Trentalancia
2011-09-13 19:25                       ` Stephen Smalley
2011-09-13 19:34                         ` Stephen Smalley
2011-09-13 20:04                           ` Guido Trentalancia
2011-09-13 20:20                             ` Stephen Smalley
2011-09-13 20:49                               ` Guido Trentalancia
2011-09-13 20:26                             ` Eric Paris
2011-09-13 20:42                               ` Stephen Smalley
2011-09-13 21:09                                 ` Guido Trentalancia
2011-09-13 22:05                               ` [PATCH v4] " Guido Trentalancia
2011-09-13 23:33                                 ` [PATCH] Fix function arguments in libsemanage tests (was Re: [PATCH v4] Fix includes for userspace tools and libraries) Guido Trentalancia
2011-09-14  0:44                                   ` [PATCH] Change default make target for sepolgen " Guido Trentalancia
2011-09-14  1:10                                     ` [PATCH] Change default make target for some directories in the libraries (was Re: [PATCH] Change default make target for sepolgen) Guido Trentalancia
2011-09-14  1:20                                       ` [PATCH] Change default make target for the man directory of policycoreutils/mcstrans " Guido Trentalancia
2011-09-14 19:16                                     ` [PATCH] Change default make target for sepolgen (was Re: [PATCH v4] Fix includes for userspace tools and libraries) Eric Paris
2011-09-14 19:31                                   ` [PATCH] Fix function arguments in libsemanage tests " Eric Paris
2011-09-15  4:40                                     ` [PATCH v5] Fix makefiles for the userspace tools and libraries Guido Trentalancia
2011-09-15  9:40                                       ` [PATCH] Fix symbolic link creation for the userspace libraries Guido Trentalancia
2011-09-15 11:51                                       ` [PATCH v5] Fix makefiles for the userspace tools and libraries Guido Trentalancia
2011-09-14 12:56                                 ` [PATCH v4] Fix includes for userspace tools and libraries (and possible security issue) Stephen Smalley
2011-09-15  2:44                                   ` [PATCH v5] " Guido Trentalancia
2011-09-15 12:56                                     ` Stephen Smalley
2011-09-15 16:04                                       ` Guido Trentalancia
2011-09-15 16:35                                         ` Stephen Smalley
2011-09-15 17:03                                           ` Guido Trentalancia
2011-09-15 17:16                                             ` Stephen Smalley
2011-09-15 17:26                                               ` Guido Trentalancia
2011-09-15 18:14                                                 ` Stephen Smalley
2011-09-15 19:12                                                   ` [PATCH v5] Fix includes for userspace tools and libraries Guido Trentalancia
2011-09-15 20:00                                                     ` Stephen Smalley
2011-09-15 20:32                                                       ` Guido Trentalancia
2011-09-16 12:39                                                         ` Stephen Smalley
2011-09-16 12:50                                                           ` Guido Trentalancia
2011-09-17 20:48                                                       ` [PATCH v6] " Guido Trentalancia
2011-09-15 19:37                                                   ` [PATCH v5] " Guido Trentalancia
2011-09-15 17:15                                         ` [PATCH v5] Fix includes for userspace tools and libraries (and possible security issue) Eric Paris
2011-09-13 19:42                         ` [PATCH] " Guido Trentalancia
2011-09-13 17:08           ` [PATCH] Fix includes for userspace tools and libraries (was Re: [PATCH] Fix include semanage/handle.h for semanage_set_root() as used by semodule) Stephen Smalley
2011-09-09 17:31   ` [PATCH] Fix include semanage/handle.h for semanage_set_root() as used by semodule Guido Trentalancia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1315858620.2223.13.camel@vortex \
    --to=guido@trentalancia.com \
    --cc=eparis@parisplace.org \
    --cc=eparis@redhat.com \
    --cc=method@manicmethod.com \
    --cc=selinux@tycho.nsa.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.