[DSE-Dev] Re: openssh packages with updated selinux patch

Manoj Srivastava srivasta at debian.org
Tue Oct 24 21:10:40 UTC 2006


> On Tue, Oct 24, 2006 at 12:19:59AM -0500, Manoj Srivastava wrote:
>> On Tue, 24 Oct 2006 06:36:34 +0200, Aurelien Jarno
>> <aurelien at aurel32.net> said:
>> 
>> > Manoj Srivastava a écrit :
>> >> Hi,
>> >> 
>> >> I have created openssh packages with updated SELinux patches,
>> >> this brings us in line with the new SELinux release. The patch
>> >> is recorded in Bug#394795.  The packages are available at:
>> ....
>> >> Please test these packages out. I would like to see the SELinux
>> >> updates enter Etch, and would be happy to do an NMU, if desired.
>> 
>> > With your patch, sshd is unconditionally linked with
>> > libselinux. This breaks debian-installer on architectures using
>> > ssh for the installation, and also non-Linux architectures.
>> 
>> No, it is not. The configure patch:

>> ensures that LIBSELINUX expands to -lselinux only on machines where
>> it is available, not otherwise.
>> 
>> Unless you are saying that the configure.ac patch is broken, in
>> which case please supply a log of the regenerated configure script
>> showing that it fails.
>> 

> I don't say the configure.ac patch is broken, I say the patch as a
> whole is broken.

        Then you have not actually applied the patch in the BTS. (If
 you used the .dsc on people.d.o, please refresh, since I hadn't meant
 that .dsc to be public -- it is an older version used for testing). I
 have now replaced it with a real version based on the patch.

> After a few searches it seems the problem is in
> Makefile.in:

        And that is proof.

> [bode:/tmp/openssh-4.3p2]$ grep LIBSELINUX Makefile.in
> LIBSELINUX=-lselinux
>         $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat
>         $(LIBWRAP) $(LIBPAM) $(LIBSELINUX) $(LIBS)
> [bode:/tmp/openssh-4.3p2]$

> I can confirm that the resulting udeb package is linked with
> libselinux, even if selinux support is disabled for the udeb pass:

        With that Makefile.in, sure. Here is what is in the patch
 submitted:

======================================================================
diff -uBbwr ../debian-current/openssh-4.3p2/Makefile.in openssh-4.3p2/Makefile.in
--- ../debian-current/openssh-4.3p2/Makefile.in 2006-10-20 12:53:04.000000000 -0500
+++ openssh-4.3p2/Makefile.in   2006-10-20 15:34:48.000000000 -0500
@@ -43,6 +43,7 @@
 CFLAGS=@CFLAGS@
 CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@
 LIBS=@LIBS@
+LIBSELINUX=@LIBSELINUX@
 LIBEDIT=@LIBEDIT@
 LIBPAM=@LIBPAM@
 LIBWRAP=@LIBWRAP@
@@ -136,7 +137,7 @@
        $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
 
 sshd$(EXEEXT): libssh.a        $(LIBCOMPAT) $(SSHDOBJS)
-       $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBWRAP) $(LIBPAM) $(LIBS)
+       $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBWRAP) $(LIBPAM) $(LIBSELINUX) $(LIBS)
 
 scp$(EXEEXT): $(LIBCOMPAT) libssh.a scp.o progressmeter.o
        $(LD) -o $@ scp.o progressmeter.o bufaux.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
======================================================================
        
        I now have a smaller configure.ac patch, which shows better
 what the improvement in configuration is:
======================================================================
diff -uBbwr ../debian-current/openssh-4.3p2/configure.ac openssh-4.3p2/configure.ac
--- ../debian-current/openssh-4.3p2/configure.ac        2006-10-20 12:53:04.000000000 -0500
+++ openssh-4.3p2/configure.ac  2006-10-24 15:25:30.000000000 -0500
@@ -2986,15 +2986,25 @@
 
 # Check whether user wants SELinux support
 SELINUX_MSG="no"
+LIBSELINUX=""
 AC_ARG_WITH(selinux,
-       [  --with-selinux          Enable SELinux support],
+       [  --with-selinux[[=LIBSELINUX-PATH]]   Enable SELinux support],
        [ if test "x$withval" != "xno" ; then
+               if test "x$withval" != "xyes"; then
+                       CPPFLAGS="$CPPFLAGS -I${withval}/include"
+                       if test -n "${need_dash_r}"; then
+                               LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
+                       else
+                               LDFLAGS="-L${withval}/lib ${LDFLAGS}"
+                       fi
+               fi 
                AC_DEFINE(WITH_SELINUX, 1, [Define if you want SELinux support.])
                SELINUX_MSG="yes"
                AC_CHECK_HEADERS(selinux/selinux.h)
-               LIBS="$LIBS -lselinux"
+               LIBSELINUX="-lselinux"
        fi
        ])
+AC_SUBST(LIBSELINUX)
 
 # Check whether user wants Kerberos 5 support
 KRB5_MSG="no"

======================================================================

        manoj
-- 
"I not only use all the brains that I have, but all that I can
borrow." -Woodrow Wilson
Manoj Srivastava <srivasta at debian.org> <http://www.debian.org/~srivasta/>
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C



More information about the SELinux-devel mailing list