[PATCH 1/1] libselinux, libsemanage: remove *swig_python_exception.i if its creation failed

2016-11-05 Thread Nicolas Iooss
When compiling libselinux with CC=clang, "make pywrap" reports the
following message:

bash exception.sh > selinuxswig_python_exception.i
clang-3.9: error: no such file or directory: 'temp.aux'
awk: fatal: cannot open file `temp.aux' for reading (No such file or
directory)

This does not make the build fail as exception.sh returns an "OK"
status. Use "bash -e" with this script to make it return an error value.

In order not to keep an empty selinuxswig_python_exception.i file after
a build fails (which would make a second run of "make pywrap" incorrectly
succeed), remove the file when exception.sh fails.

As libsemanage uses the same code to build
semanageswig_python_exception.i, modify its Makefile too.

By the way, on Linux clang does not seem to currently support -aux-info
so it cannot be used to craft selinuxswig_python_exception.i.

Signed-off-by: Nicolas Iooss 
---
 libselinux/src/Makefile  | 2 +-
 libsemanage/src/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
index b92fe1c8f5f9..24946cee8a01 100644
--- a/libselinux/src/Makefile
+++ b/libselinux/src/Makefile
@@ -140,7 +140,7 @@ $(LIBPC): $(LIBPC).in ../VERSION
sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; 
s:@libdir@:$(LIBBASE):; s:@includedir@:$(INCLUDEDIR):' < $< > $@
 
 selinuxswig_python_exception.i: ../include/selinux/selinux.h
-   bash exception.sh > $@ 
+   bash -e exception.sh > $@ || (rm -f $@ ; false)
 
 $(AUDIT2WHYLOBJ): audit2why.c
$(CC) $(filter-out -Werror, $(CFLAGS)) $(PYINC) -fPIC -DSHARED -c -o $@ 
$<
diff --git a/libsemanage/src/Makefile b/libsemanage/src/Makefile
index 55e3f469b0ba..cd29a8abf5ab 100644
--- a/libsemanage/src/Makefile
+++ b/libsemanage/src/Makefile
@@ -98,7 +98,7 @@ $(LIBPC): $(LIBPC).in ../VERSION
sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; 
s:@libdir@:$(LIBBASE):; s:@includedir@:$(INCLUDEDIR):' < $< > $@
 
 semanageswig_python_exception.i: ../include/semanage/semanage.h
-   bash exception.sh > $@
+   bash -e exception.sh > $@ || (rm -f $@ ; false)
 
 conf-scan.c: conf-scan.l conf-parse.h
$(LEX) $(LFLAGS) -t $< > $@
-- 
2.10.2

___
Selinux mailing list
Selinux@tycho.nsa.gov
To unsubscribe, send email to selinux-le...@tycho.nsa.gov.
To get help, send an email containing "help" to selinux-requ...@tycho.nsa.gov.


Re: [PATCH 1/1] libselinux, libsemanage: remove *swig_python_exception.i if its creation failed

2016-11-07 Thread Stephen Smalley
On 11/05/2016 05:24 PM, Nicolas Iooss wrote:
> When compiling libselinux with CC=clang, "make pywrap" reports the
> following message:
> 
> bash exception.sh > selinuxswig_python_exception.i
> clang-3.9: error: no such file or directory: 'temp.aux'
> awk: fatal: cannot open file `temp.aux' for reading (No such file or
> directory)
> 
> This does not make the build fail as exception.sh returns an "OK"
> status. Use "bash -e" with this script to make it return an error value.
> 
> In order not to keep an empty selinuxswig_python_exception.i file after
> a build fails (which would make a second run of "make pywrap" incorrectly
> succeed), remove the file when exception.sh fails.
> 
> As libsemanage uses the same code to build
> semanageswig_python_exception.i, modify its Makefile too.
> 
> By the way, on Linux clang does not seem to currently support -aux-info
> so it cannot be used to craft selinuxswig_python_exception.i.

Thanks, applied all three.  Maybe we need to just always set CC to gcc
in exception.sh?

> 
> Signed-off-by: Nicolas Iooss 
> ---
>  libselinux/src/Makefile  | 2 +-
>  libsemanage/src/Makefile | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
> index b92fe1c8f5f9..24946cee8a01 100644
> --- a/libselinux/src/Makefile
> +++ b/libselinux/src/Makefile
> @@ -140,7 +140,7 @@ $(LIBPC): $(LIBPC).in ../VERSION
>   sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; 
> s:@libdir@:$(LIBBASE):; s:@includedir@:$(INCLUDEDIR):' < $< > $@
>  
>  selinuxswig_python_exception.i: ../include/selinux/selinux.h
> - bash exception.sh > $@ 
> + bash -e exception.sh > $@ || (rm -f $@ ; false)
>  
>  $(AUDIT2WHYLOBJ): audit2why.c
>   $(CC) $(filter-out -Werror, $(CFLAGS)) $(PYINC) -fPIC -DSHARED -c -o $@ 
> $<
> diff --git a/libsemanage/src/Makefile b/libsemanage/src/Makefile
> index 55e3f469b0ba..cd29a8abf5ab 100644
> --- a/libsemanage/src/Makefile
> +++ b/libsemanage/src/Makefile
> @@ -98,7 +98,7 @@ $(LIBPC): $(LIBPC).in ../VERSION
>   sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; 
> s:@libdir@:$(LIBBASE):; s:@includedir@:$(INCLUDEDIR):' < $< > $@
>  
>  semanageswig_python_exception.i: ../include/semanage/semanage.h
> - bash exception.sh > $@
> + bash -e exception.sh > $@ || (rm -f $@ ; false)
>  
>  conf-scan.c: conf-scan.l conf-parse.h
>   $(LEX) $(LFLAGS) -t $< > $@
> 

___
Selinux mailing list
Selinux@tycho.nsa.gov
To unsubscribe, send email to selinux-le...@tycho.nsa.gov.
To get help, send an email containing "help" to selinux-requ...@tycho.nsa.gov.


Re: [PATCH 1/1] libselinux, libsemanage: remove *swig_python_exception.i if its creation failed

2016-11-07 Thread William Roberts
On Nov 7, 2016 13:03, "Stephen Smalley"  wrote:
>
> On 11/05/2016 05:24 PM, Nicolas Iooss wrote:
> > When compiling libselinux with CC=clang, "make pywrap" reports the
> > following message:
> >
> > bash exception.sh > selinuxswig_python_exception.i
> > clang-3.9: error: no such file or directory: 'temp.aux'
> > awk: fatal: cannot open file `temp.aux' for reading (No such file or
> > directory)
> >
> > This does not make the build fail as exception.sh returns an "OK"
> > status. Use "bash -e" with this script to make it return an error value.
> >
> > In order not to keep an empty selinuxswig_python_exception.i file after
> > a build fails (which would make a second run of "make pywrap"
incorrectly
> > succeed), remove the file when exception.sh fails.
> >
> > As libsemanage uses the same code to build
> > semanageswig_python_exception.i, modify its Makefile too.
> >
> > By the way, on Linux clang does not seem to currently support -aux-info
> > so it cannot be used to craft selinuxswig_python_exception.i.
>
> Thanks, applied all three.  Maybe we need to just always set CC to gcc
> in exception.sh?
>

What if you don't have GCC? We should support CC consistently and not set
it under the hood IMHO.

> >
> > Signed-off-by: Nicolas Iooss 
> > ---
> >  libselinux/src/Makefile  | 2 +-
> >  libsemanage/src/Makefile | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
> > index b92fe1c8f5f9..24946cee8a01 100644
> > --- a/libselinux/src/Makefile
> > +++ b/libselinux/src/Makefile
> > @@ -140,7 +140,7 @@ $(LIBPC): $(LIBPC).in ../VERSION
> >   sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; 
> > s:@libdir@:$(LIBBASE):;
s:@includedir@:$(INCLUDEDIR):' < $< > $@
> >
> >  selinuxswig_python_exception.i: ../include/selinux/selinux.h
> > - bash exception.sh > $@
> > + bash -e exception.sh > $@ || (rm -f $@ ; false)
> >
> >  $(AUDIT2WHYLOBJ): audit2why.c
> >   $(CC) $(filter-out -Werror, $(CFLAGS)) $(PYINC) -fPIC -DSHARED -c
-o $@ $<
> > diff --git a/libsemanage/src/Makefile b/libsemanage/src/Makefile
> > index 55e3f469b0ba..cd29a8abf5ab 100644
> > --- a/libsemanage/src/Makefile
> > +++ b/libsemanage/src/Makefile
> > @@ -98,7 +98,7 @@ $(LIBPC): $(LIBPC).in ../VERSION
> >   sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; 
> > s:@libdir@:$(LIBBASE):;
s:@includedir@:$(INCLUDEDIR):' < $< > $@
> >
> >  semanageswig_python_exception.i: ../include/semanage/semanage.h
> > - bash exception.sh > $@
> > + bash -e exception.sh > $@ || (rm -f $@ ; false)
> >
> >  conf-scan.c: conf-scan.l conf-parse.h
> >   $(LEX) $(LFLAGS) -t $< > $@
> >
>
> ___
> Selinux mailing list
> Selinux@tycho.nsa.gov
> To unsubscribe, send email to selinux-le...@tycho.nsa.gov.
> To get help, send an email containing "help" to
selinux-requ...@tycho.nsa.gov.
___
Selinux mailing list
Selinux@tycho.nsa.gov
To unsubscribe, send email to selinux-le...@tycho.nsa.gov.
To get help, send an email containing "help" to selinux-requ...@tycho.nsa.gov.

Re: [PATCH 1/1] libselinux, libsemanage: remove *swig_python_exception.i if its creation failed

2016-11-07 Thread Nicolas Iooss
On 07/11/16 22:19, William Roberts wrote:
> On Nov 7, 2016 13:03, "Stephen Smalley"  > wrote:
>>
>> On 11/05/2016 05:24 PM, Nicolas Iooss wrote:
>> > When compiling libselinux with CC=clang, "make pywrap" reports the
>> > following message:
>> >
>> > bash exception.sh > selinuxswig_python_exception.i
>> > clang-3.9: error: no such file or directory: 'temp.aux'
>> > awk: fatal: cannot open file `temp.aux' for reading (No such file or
>> > directory)
>> >
>> > This does not make the build fail as exception.sh returns an "OK"
>> > status. Use "bash -e" with this script to make it return an error value.
>> >
>> > In order not to keep an empty selinuxswig_python_exception.i file after
>> > a build fails (which would make a second run of "make pywrap"
> incorrectly
>> > succeed), remove the file when exception.sh fails.
>> >
>> > As libsemanage uses the same code to build
>> > semanageswig_python_exception.i, modify its Makefile too.
>> >
>> > By the way, on Linux clang does not seem to currently support -aux-info
>> > so it cannot be used to craft selinuxswig_python_exception.i.
>>
>> Thanks, applied all three.  Maybe we need to just always set CC to gcc
>> in exception.sh?
>>
> 
> What if you don't have GCC? We should support CC consistently and not
> set it under the hood IMHO.

There are also valid scenarios where exception.sh works without CC being
gcc, for example when cross-compiling with CC=arm--gcc, or building
with wrappers like CC=musl-gcc, etc.
What about using gcc as a fallback if $CC did not work? i.e. something
like this in exception.sh:

if ! ${CC:-gcc} -x c -c -I../include - -aux-info  ; then
# clang does not support -aux-info so fall back to gcc
gcc -x c -c -I../include - -aux-info 
fi

Nicolas
___
Selinux mailing list
Selinux@tycho.nsa.gov
To unsubscribe, send email to selinux-le...@tycho.nsa.gov.
To get help, send an email containing "help" to selinux-requ...@tycho.nsa.gov.


Re: [PATCH 1/1] libselinux, libsemanage: remove *swig_python_exception.i if its creation failed

2016-11-08 Thread William Roberts
On Mon, Nov 7, 2016 at 2:07 PM, Nicolas Iooss  wrote:
> On 07/11/16 22:19, William Roberts wrote:
>> On Nov 7, 2016 13:03, "Stephen Smalley" > > wrote:
>>>
>>> On 11/05/2016 05:24 PM, Nicolas Iooss wrote:
>>> > When compiling libselinux with CC=clang, "make pywrap" reports the
>>> > following message:
>>> >
>>> > bash exception.sh > selinuxswig_python_exception.i
>>> > clang-3.9: error: no such file or directory: 'temp.aux'
>>> > awk: fatal: cannot open file `temp.aux' for reading (No such file or
>>> > directory)
>>> >
>>> > This does not make the build fail as exception.sh returns an "OK"
>>> > status. Use "bash -e" with this script to make it return an error value.
>>> >
>>> > In order not to keep an empty selinuxswig_python_exception.i file after
>>> > a build fails (which would make a second run of "make pywrap"
>> incorrectly
>>> > succeed), remove the file when exception.sh fails.
>>> >
>>> > As libsemanage uses the same code to build
>>> > semanageswig_python_exception.i, modify its Makefile too.
>>> >
>>> > By the way, on Linux clang does not seem to currently support -aux-info
>>> > so it cannot be used to craft selinuxswig_python_exception.i.
>>>
>>> Thanks, applied all three.  Maybe we need to just always set CC to gcc
>>> in exception.sh?
>>>
>>
>> What if you don't have GCC? We should support CC consistently and not
>> set it under the hood IMHO.
>
> There are also valid scenarios where exception.sh works without CC being
> gcc, for example when cross-compiling with CC=arm--gcc, or building
> with wrappers like CC=musl-gcc, etc.
> What about using gcc as a fallback if $CC did not work? i.e. something
> like this in exception.sh:
>
> if ! ${CC:-gcc} -x c -c -I../include - -aux-info  ; then
> # clang does not support -aux-info so fall back to gcc
> gcc -x c -c -I../include - -aux-info 
> fi
>
> Nicolas

Looking at exception.sh it appears that it takes in selinux.h and
produces custom
exception handlers for the swig interface.

We could potentially do this without -aux-info and just write the swig
interface by hand.
___
Selinux mailing list
Selinux@tycho.nsa.gov
To unsubscribe, send email to selinux-le...@tycho.nsa.gov.
To get help, send an email containing "help" to selinux-requ...@tycho.nsa.gov.