mbrose wrote:
> Attached to this email is a tarball snapshot of a new build system
> for the SELinux toolchain that I have been working on for the last
> couple of months.
>
> This autoconf/automake build system has many advantages over the
> current Makefiles.
>
> 1) It is capable of correctly cross compiling all libraries and
> tools, including the python wrappers.
> 2) It allows the distro maintainer to set sysconfdir, prefix,
> pamdir, startupdir etc..
> 3) It employs no "hacks", it is to-the-book, clean, GNU Automake,
> Autoconf code, formatted to ~80 char line length.
> 4) It lets RPM spec and .deb control take advantage of the autoconf
> infrastructure already built into these package formats, allowing
> distro maintainers to quickly and effortlessly build distro
> packages.
> 5) It is completely self dependent, ie. one can build the complete
> toolchain now resolving dependencies within the build, without
> needing to link against a system wide library.
>
> Due to an incompatibility with libtool, related to the current
> naming convention of the python wrappers and classes, a patch is
> supplied to rename:
> *) _selinux.so to libpyselinux.so
> *) _semanage.so to libpysemanage.so
> *) _audit2why.so to libpyaudit2why.so
>
> Similarily, the update also renames:
> *) selinux.py to __init__.py
> *) semanage.py to __init__.py
> and installs these plugins into their own sub site-packages folder.
>
> For Example: libselinux/src/Makefile.am
> line 35 # When the upstream tree is patched this should be removed
> line 36 # and selinux.py must be renamed to __init__.py
> line 37 __init__.py : selinux.py
> line 38 cp selinux.py $@
>
> A similar measure is taken in libsemanage/src/Makefile.am for semanage.py.
>
> On a similar note, the code currently uses a macro called SHARED,
> which is currently being wrapped with a forced -include libtool_compat.h
> using -DPIC (a libtool defined macro). This too can be removed if the code
> can be reformatted.
>
> This build system has been thoroughly tested to function correctly.
> Compiling natively for localhost, as well as cross compiling for
> the following platforms:
> *) PPC32
> *) PPC64
> *) ARM (Versatile family)
> *) Common PC X86_64
>
> It has also been tested on mainstream Linux distributions such
> as Ubuntu 8.04 and Fedora 9.
>
> This new build system is a replacement for the existing build system.
> They cannot be used concurrently. I leave no guarantee on backward
> compatibility after applying this update.
>
> Recently a Ruby wrapper was added to the SELinux trunk, this build
> system does not build it. Though with the current infrastructure in
> place, it is a very simple procedure for anyone familiar with ruby
> to include it.
>
> This contribution comes out of the integration efforts WindRiver has
> recently taken to add a SELinux feature to WindRiver Linux. It comes
> with no obligation or indemnity from WindRiver or myself. Distributed
> as not copyrighted, public domain software, in accordance with
> libselinux.
>
> I ask if this update can be merged into the main SELinux trunk.
> I will help coordinate the merge if necessary.
>
>
2008-08-19 20:04:11 +00:00
|
|
|
# -*- Autoconf -*-
|
|
|
|
# Process this file with autoconf to produce a configure script.
|
|
|
|
|
|
|
|
AC_PREREQ(2.61)
|
Author: Vikram Noel Ambrose
Email: noel.ambrose@gmail.com
Subject: AC_INIT VERSION info fix + checkpolicy test
Date: Fri, 03 Oct 2008 19:42:04 -0400
Jason Tang wrote:
> Subject: [autotools][patch] AC_INIT VERSION info fix + checkpolicy test
> Date: Tue, 30 Sep 2008 13:17:55 -0400
> From: Vikram Noel Ambrose <noel.ambrose@gmail.com>
> To: owner-selinux@tycho.nsa.gov
> CC: Joshua Brindle <method@manicmethod.com>
>
>
>> Changelog.
>> 1. AC_INIT gets version string from $srcdir/VERSION file
>> 2. checkpolicy tests are now being built with --enable-tests
>>
>
> With this patch applied against the current autotools branch on git, the following issues seem to exist:
>
> libsepol:
> 1. Version information is in both configure.ac as well as the VERSION file. Consider having configure.ac generate the VERSION file via a @VERSION@ substitution in AC_CONFIG_FILE.
> 2. Default behavior of libsepol should be to enable_tests.
> 3. Syntax of subsequent AM_CONDITIONAL is incorrect; there is a stray right bracket.
> 4. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
> 5. No Makefile.am for tests subdirectory.
>
>
1,2,3 -> Fixed with attached libsepol-fixes.patch
-1- The VERSION file is deleted, it is redundant. From
now on the only file that will track the version string
will be configure.ac for all packages
4. -> This is an issue for the distro maintainer, not the package
maintainer.
5 -> I dont understand how to build the tests for libsepol. Can someone
explain the libsepol/tests/Makefile from the master branch to me? I have
just stubbed it out for now
// make distcheck OK after patch
> libselinux:
> 1. No Ruby support in configure.ac.
> 2. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no"), but then it does not actually guess the Python site folder despite what the help message claims.
> 3. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 4. In utils/Makefile.am, instead of $(builddir)/.., this should simply be $(top_builddir). Likewise, consider $(top_srcdir) instead of $(srcdir)/...
> 5. In src/Makefile.am, private header files are not included.
> 6. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
1 -> I'm not going to address this one. If someone knows how to use
ruby, go ahead and add it.
2 -> You seem to be mixing 2 very different things here.
-1- $with_python refers to building code that needs python
support and yes, by default, it is set to no.
Python is extra functionality, it is not a mandatory
dependency, use --with-python=/path/to/include/python2.4
if you want these python features from libselinux
-2- The python site-packages folder is indeed guessed if
one is not specified, why do you say differently?
Did you look at the resulting/guessed site-packages
folder after running configure without specifying
--with-python-site?
libselinux-fixes.patch stops the WARNING message
from being displayed if the libpy* cannot be built
3 -> Like I said previously, can you give me the logs from
the machine you claim fails the swig checks?
4 -> Fixed with attached libselinux-fixes.patch
5 -> Not sure what you mean
6 -> As in libsepol, this is a distro maintainer policy, not one to be
enforced by the build system.
// make distcheck OK after patch
> libsemanage:
> 1. Instead of using AC_SEARCH_LIBS in configure.ac, why not use AC_CHECK_LIB? There are no alternatives to libselinux, libsepol, and libustr, respectively, AC_CHECK_LIB would be simpler.
> 2. Defining HAVE_SELINUX_SELINUX_H and its kin are unnecessary. In no case would it be possible to compile libsemanage without having these defines be false.
> 3. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no").
> 4. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 5. No Makefile.am for tests subdirectory.
> 6. In src/Makefile.am, private header files are not included.
> 7. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
>
1,2 -> Fixed with attached libsemanage-fixes.patch
3 -> Yup, that's true. Python is not needed for libsemanage. If you need
this extra functionality (ie, libpysemanage), then specify the headers
you want to build with.
./configure --with-python=/these/guys/include/python2.4
4 -> Why? Whats wrong with the current test?
5 -> Fixed with attached libsemanage-fixes.patch
-1- I have not tested the tests. CUnit header checks may
also be needed in configure.ac
6 -> Not sure what you mean
7 -> Again this is a site policy and no concern of the package
maintainer. The distro maintainer adjusts these sort of things according
to the policies of the distro.
// make distcheck OK after patch
phew....that was some work...
I've attached my quilt series file along with the patches. So that you
can apply them in stack, as i had them.
Thanks again Jason for taking such a close look at the autotools branch.
5 patches! have fun Josh.
Vikram
2008-11-09 16:35:11 +00:00
|
|
|
AC_INIT([libsepol], 2.0.33, selinux@tycho.nsa.gov)
|
mbrose wrote:
> Attached to this email is a tarball snapshot of a new build system
> for the SELinux toolchain that I have been working on for the last
> couple of months.
>
> This autoconf/automake build system has many advantages over the
> current Makefiles.
>
> 1) It is capable of correctly cross compiling all libraries and
> tools, including the python wrappers.
> 2) It allows the distro maintainer to set sysconfdir, prefix,
> pamdir, startupdir etc..
> 3) It employs no "hacks", it is to-the-book, clean, GNU Automake,
> Autoconf code, formatted to ~80 char line length.
> 4) It lets RPM spec and .deb control take advantage of the autoconf
> infrastructure already built into these package formats, allowing
> distro maintainers to quickly and effortlessly build distro
> packages.
> 5) It is completely self dependent, ie. one can build the complete
> toolchain now resolving dependencies within the build, without
> needing to link against a system wide library.
>
> Due to an incompatibility with libtool, related to the current
> naming convention of the python wrappers and classes, a patch is
> supplied to rename:
> *) _selinux.so to libpyselinux.so
> *) _semanage.so to libpysemanage.so
> *) _audit2why.so to libpyaudit2why.so
>
> Similarily, the update also renames:
> *) selinux.py to __init__.py
> *) semanage.py to __init__.py
> and installs these plugins into their own sub site-packages folder.
>
> For Example: libselinux/src/Makefile.am
> line 35 # When the upstream tree is patched this should be removed
> line 36 # and selinux.py must be renamed to __init__.py
> line 37 __init__.py : selinux.py
> line 38 cp selinux.py $@
>
> A similar measure is taken in libsemanage/src/Makefile.am for semanage.py.
>
> On a similar note, the code currently uses a macro called SHARED,
> which is currently being wrapped with a forced -include libtool_compat.h
> using -DPIC (a libtool defined macro). This too can be removed if the code
> can be reformatted.
>
> This build system has been thoroughly tested to function correctly.
> Compiling natively for localhost, as well as cross compiling for
> the following platforms:
> *) PPC32
> *) PPC64
> *) ARM (Versatile family)
> *) Common PC X86_64
>
> It has also been tested on mainstream Linux distributions such
> as Ubuntu 8.04 and Fedora 9.
>
> This new build system is a replacement for the existing build system.
> They cannot be used concurrently. I leave no guarantee on backward
> compatibility after applying this update.
>
> Recently a Ruby wrapper was added to the SELinux trunk, this build
> system does not build it. Though with the current infrastructure in
> place, it is a very simple procedure for anyone familiar with ruby
> to include it.
>
> This contribution comes out of the integration efforts WindRiver has
> recently taken to add a SELinux feature to WindRiver Linux. It comes
> with no obligation or indemnity from WindRiver or myself. Distributed
> as not copyrighted, public domain software, in accordance with
> libselinux.
>
> I ask if this update can be merged into the main SELinux trunk.
> I will help coordinate the merge if necessary.
>
>
2008-08-19 20:04:11 +00:00
|
|
|
AM_INIT_AUTOMAKE
|
|
|
|
AC_CONFIG_SRCDIR([utils/chkcon.c])
|
|
|
|
AC_CONFIG_HEADER([config.h])
|
|
|
|
|
|
|
|
# Checks for programs.
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
AC_PROG_LN_S
|
|
|
|
# semodule_deps in policycoreutils builds against libsepol.a
|
2008-08-31 00:12:40 +00:00
|
|
|
# Uncomment to change default behavior
|
|
|
|
#AC_DISABLE_STATIC
|
mbrose wrote:
> Attached to this email is a tarball snapshot of a new build system
> for the SELinux toolchain that I have been working on for the last
> couple of months.
>
> This autoconf/automake build system has many advantages over the
> current Makefiles.
>
> 1) It is capable of correctly cross compiling all libraries and
> tools, including the python wrappers.
> 2) It allows the distro maintainer to set sysconfdir, prefix,
> pamdir, startupdir etc..
> 3) It employs no "hacks", it is to-the-book, clean, GNU Automake,
> Autoconf code, formatted to ~80 char line length.
> 4) It lets RPM spec and .deb control take advantage of the autoconf
> infrastructure already built into these package formats, allowing
> distro maintainers to quickly and effortlessly build distro
> packages.
> 5) It is completely self dependent, ie. one can build the complete
> toolchain now resolving dependencies within the build, without
> needing to link against a system wide library.
>
> Due to an incompatibility with libtool, related to the current
> naming convention of the python wrappers and classes, a patch is
> supplied to rename:
> *) _selinux.so to libpyselinux.so
> *) _semanage.so to libpysemanage.so
> *) _audit2why.so to libpyaudit2why.so
>
> Similarily, the update also renames:
> *) selinux.py to __init__.py
> *) semanage.py to __init__.py
> and installs these plugins into their own sub site-packages folder.
>
> For Example: libselinux/src/Makefile.am
> line 35 # When the upstream tree is patched this should be removed
> line 36 # and selinux.py must be renamed to __init__.py
> line 37 __init__.py : selinux.py
> line 38 cp selinux.py $@
>
> A similar measure is taken in libsemanage/src/Makefile.am for semanage.py.
>
> On a similar note, the code currently uses a macro called SHARED,
> which is currently being wrapped with a forced -include libtool_compat.h
> using -DPIC (a libtool defined macro). This too can be removed if the code
> can be reformatted.
>
> This build system has been thoroughly tested to function correctly.
> Compiling natively for localhost, as well as cross compiling for
> the following platforms:
> *) PPC32
> *) PPC64
> *) ARM (Versatile family)
> *) Common PC X86_64
>
> It has also been tested on mainstream Linux distributions such
> as Ubuntu 8.04 and Fedora 9.
>
> This new build system is a replacement for the existing build system.
> They cannot be used concurrently. I leave no guarantee on backward
> compatibility after applying this update.
>
> Recently a Ruby wrapper was added to the SELinux trunk, this build
> system does not build it. Though with the current infrastructure in
> place, it is a very simple procedure for anyone familiar with ruby
> to include it.
>
> This contribution comes out of the integration efforts WindRiver has
> recently taken to add a SELinux feature to WindRiver Linux. It comes
> with no obligation or indemnity from WindRiver or myself. Distributed
> as not copyrighted, public domain software, in accordance with
> libselinux.
>
> I ask if this update can be merged into the main SELinux trunk.
> I will help coordinate the merge if necessary.
>
>
2008-08-19 20:04:11 +00:00
|
|
|
AC_PROG_LIBTOOL
|
|
|
|
AM_PROG_CC_C_O
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Checks for libraries.
|
|
|
|
AC_CHECK_LIB([fl], [yywrap])
|
|
|
|
|
|
|
|
# Checks for header files.
|
|
|
|
AC_HEADER_STDC
|
|
|
|
AC_CHECK_HEADERS([arpa/inet.h \
|
|
|
|
limits.h \
|
|
|
|
netinet/in.h \
|
|
|
|
stddef.h \
|
|
|
|
stdint.h \
|
|
|
|
stdio_ext.h \
|
|
|
|
stdlib.h \
|
|
|
|
string.h \
|
|
|
|
sys/socket.h \
|
|
|
|
unistd.h])
|
|
|
|
|
|
|
|
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_HEADER_STDBOOL
|
|
|
|
AC_C_CONST
|
|
|
|
AC_C_INLINE
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
AC_TYPE_SSIZE_T
|
|
|
|
AC_TYPE_UINT16_T
|
|
|
|
AC_TYPE_UINT32_T
|
|
|
|
AC_TYPE_UINT64_T
|
|
|
|
AC_TYPE_UINT8_T
|
|
|
|
|
|
|
|
# Checks for library functions.
|
|
|
|
AC_FUNC_MALLOC
|
|
|
|
AC_FUNC_MEMCMP
|
|
|
|
AC_FUNC_REALLOC
|
|
|
|
AC_FUNC_VPRINTF
|
|
|
|
AC_CHECK_FUNCS([memset strcasecmp strchr strdup strerror strncasecmp strrchr])
|
|
|
|
|
2008-08-28 19:31:31 +00:00
|
|
|
AC_ARG_ENABLE([tests],
|
Author: Vikram Noel Ambrose
Email: noel.ambrose@gmail.com
Subject: AC_INIT VERSION info fix + checkpolicy test
Date: Fri, 03 Oct 2008 19:42:04 -0400
Jason Tang wrote:
> Subject: [autotools][patch] AC_INIT VERSION info fix + checkpolicy test
> Date: Tue, 30 Sep 2008 13:17:55 -0400
> From: Vikram Noel Ambrose <noel.ambrose@gmail.com>
> To: owner-selinux@tycho.nsa.gov
> CC: Joshua Brindle <method@manicmethod.com>
>
>
>> Changelog.
>> 1. AC_INIT gets version string from $srcdir/VERSION file
>> 2. checkpolicy tests are now being built with --enable-tests
>>
>
> With this patch applied against the current autotools branch on git, the following issues seem to exist:
>
> libsepol:
> 1. Version information is in both configure.ac as well as the VERSION file. Consider having configure.ac generate the VERSION file via a @VERSION@ substitution in AC_CONFIG_FILE.
> 2. Default behavior of libsepol should be to enable_tests.
> 3. Syntax of subsequent AM_CONDITIONAL is incorrect; there is a stray right bracket.
> 4. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
> 5. No Makefile.am for tests subdirectory.
>
>
1,2,3 -> Fixed with attached libsepol-fixes.patch
-1- The VERSION file is deleted, it is redundant. From
now on the only file that will track the version string
will be configure.ac for all packages
4. -> This is an issue for the distro maintainer, not the package
maintainer.
5 -> I dont understand how to build the tests for libsepol. Can someone
explain the libsepol/tests/Makefile from the master branch to me? I have
just stubbed it out for now
// make distcheck OK after patch
> libselinux:
> 1. No Ruby support in configure.ac.
> 2. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no"), but then it does not actually guess the Python site folder despite what the help message claims.
> 3. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 4. In utils/Makefile.am, instead of $(builddir)/.., this should simply be $(top_builddir). Likewise, consider $(top_srcdir) instead of $(srcdir)/...
> 5. In src/Makefile.am, private header files are not included.
> 6. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
1 -> I'm not going to address this one. If someone knows how to use
ruby, go ahead and add it.
2 -> You seem to be mixing 2 very different things here.
-1- $with_python refers to building code that needs python
support and yes, by default, it is set to no.
Python is extra functionality, it is not a mandatory
dependency, use --with-python=/path/to/include/python2.4
if you want these python features from libselinux
-2- The python site-packages folder is indeed guessed if
one is not specified, why do you say differently?
Did you look at the resulting/guessed site-packages
folder after running configure without specifying
--with-python-site?
libselinux-fixes.patch stops the WARNING message
from being displayed if the libpy* cannot be built
3 -> Like I said previously, can you give me the logs from
the machine you claim fails the swig checks?
4 -> Fixed with attached libselinux-fixes.patch
5 -> Not sure what you mean
6 -> As in libsepol, this is a distro maintainer policy, not one to be
enforced by the build system.
// make distcheck OK after patch
> libsemanage:
> 1. Instead of using AC_SEARCH_LIBS in configure.ac, why not use AC_CHECK_LIB? There are no alternatives to libselinux, libsepol, and libustr, respectively, AC_CHECK_LIB would be simpler.
> 2. Defining HAVE_SELINUX_SELINUX_H and its kin are unnecessary. In no case would it be possible to compile libsemanage without having these defines be false.
> 3. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no").
> 4. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 5. No Makefile.am for tests subdirectory.
> 6. In src/Makefile.am, private header files are not included.
> 7. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
>
1,2 -> Fixed with attached libsemanage-fixes.patch
3 -> Yup, that's true. Python is not needed for libsemanage. If you need
this extra functionality (ie, libpysemanage), then specify the headers
you want to build with.
./configure --with-python=/these/guys/include/python2.4
4 -> Why? Whats wrong with the current test?
5 -> Fixed with attached libsemanage-fixes.patch
-1- I have not tested the tests. CUnit header checks may
also be needed in configure.ac
6 -> Not sure what you mean
7 -> Again this is a site policy and no concern of the package
maintainer. The distro maintainer adjusts these sort of things according
to the policies of the distro.
// make distcheck OK after patch
phew....that was some work...
I've attached my quilt series file along with the patches. So that you
can apply them in stack, as i had them.
Thanks again Jason for taking such a close look at the autotools branch.
5 patches! have fun Josh.
Vikram
2008-11-09 16:35:11 +00:00
|
|
|
[AC_HELP_STRING([--disable-tests],[Disable building tests])],
|
2008-08-28 19:31:31 +00:00
|
|
|
[enable_tests=$enableval],
|
Author: Vikram Noel Ambrose
Email: noel.ambrose@gmail.com
Subject: AC_INIT VERSION info fix + checkpolicy test
Date: Fri, 03 Oct 2008 19:42:04 -0400
Jason Tang wrote:
> Subject: [autotools][patch] AC_INIT VERSION info fix + checkpolicy test
> Date: Tue, 30 Sep 2008 13:17:55 -0400
> From: Vikram Noel Ambrose <noel.ambrose@gmail.com>
> To: owner-selinux@tycho.nsa.gov
> CC: Joshua Brindle <method@manicmethod.com>
>
>
>> Changelog.
>> 1. AC_INIT gets version string from $srcdir/VERSION file
>> 2. checkpolicy tests are now being built with --enable-tests
>>
>
> With this patch applied against the current autotools branch on git, the following issues seem to exist:
>
> libsepol:
> 1. Version information is in both configure.ac as well as the VERSION file. Consider having configure.ac generate the VERSION file via a @VERSION@ substitution in AC_CONFIG_FILE.
> 2. Default behavior of libsepol should be to enable_tests.
> 3. Syntax of subsequent AM_CONDITIONAL is incorrect; there is a stray right bracket.
> 4. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
> 5. No Makefile.am for tests subdirectory.
>
>
1,2,3 -> Fixed with attached libsepol-fixes.patch
-1- The VERSION file is deleted, it is redundant. From
now on the only file that will track the version string
will be configure.ac for all packages
4. -> This is an issue for the distro maintainer, not the package
maintainer.
5 -> I dont understand how to build the tests for libsepol. Can someone
explain the libsepol/tests/Makefile from the master branch to me? I have
just stubbed it out for now
// make distcheck OK after patch
> libselinux:
> 1. No Ruby support in configure.ac.
> 2. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no"), but then it does not actually guess the Python site folder despite what the help message claims.
> 3. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 4. In utils/Makefile.am, instead of $(builddir)/.., this should simply be $(top_builddir). Likewise, consider $(top_srcdir) instead of $(srcdir)/...
> 5. In src/Makefile.am, private header files are not included.
> 6. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
1 -> I'm not going to address this one. If someone knows how to use
ruby, go ahead and add it.
2 -> You seem to be mixing 2 very different things here.
-1- $with_python refers to building code that needs python
support and yes, by default, it is set to no.
Python is extra functionality, it is not a mandatory
dependency, use --with-python=/path/to/include/python2.4
if you want these python features from libselinux
-2- The python site-packages folder is indeed guessed if
one is not specified, why do you say differently?
Did you look at the resulting/guessed site-packages
folder after running configure without specifying
--with-python-site?
libselinux-fixes.patch stops the WARNING message
from being displayed if the libpy* cannot be built
3 -> Like I said previously, can you give me the logs from
the machine you claim fails the swig checks?
4 -> Fixed with attached libselinux-fixes.patch
5 -> Not sure what you mean
6 -> As in libsepol, this is a distro maintainer policy, not one to be
enforced by the build system.
// make distcheck OK after patch
> libsemanage:
> 1. Instead of using AC_SEARCH_LIBS in configure.ac, why not use AC_CHECK_LIB? There are no alternatives to libselinux, libsepol, and libustr, respectively, AC_CHECK_LIB would be simpler.
> 2. Defining HAVE_SELINUX_SELINUX_H and its kin are unnecessary. In no case would it be possible to compile libsemanage without having these defines be false.
> 3. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no").
> 4. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 5. No Makefile.am for tests subdirectory.
> 6. In src/Makefile.am, private header files are not included.
> 7. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
>
1,2 -> Fixed with attached libsemanage-fixes.patch
3 -> Yup, that's true. Python is not needed for libsemanage. If you need
this extra functionality (ie, libpysemanage), then specify the headers
you want to build with.
./configure --with-python=/these/guys/include/python2.4
4 -> Why? Whats wrong with the current test?
5 -> Fixed with attached libsemanage-fixes.patch
-1- I have not tested the tests. CUnit header checks may
also be needed in configure.ac
6 -> Not sure what you mean
7 -> Again this is a site policy and no concern of the package
maintainer. The distro maintainer adjusts these sort of things according
to the policies of the distro.
// make distcheck OK after patch
phew....that was some work...
I've attached my quilt series file along with the patches. So that you
can apply them in stack, as i had them.
Thanks again Jason for taking such a close look at the autotools branch.
5 patches! have fun Josh.
Vikram
2008-11-09 16:35:11 +00:00
|
|
|
[enable_tests=yes]
|
2008-08-28 19:31:31 +00:00
|
|
|
)
|
|
|
|
|
Author: Vikram Noel Ambrose
Email: noel.ambrose@gmail.com
Subject: AC_INIT VERSION info fix + checkpolicy test
Date: Fri, 03 Oct 2008 19:42:04 -0400
Jason Tang wrote:
> Subject: [autotools][patch] AC_INIT VERSION info fix + checkpolicy test
> Date: Tue, 30 Sep 2008 13:17:55 -0400
> From: Vikram Noel Ambrose <noel.ambrose@gmail.com>
> To: owner-selinux@tycho.nsa.gov
> CC: Joshua Brindle <method@manicmethod.com>
>
>
>> Changelog.
>> 1. AC_INIT gets version string from $srcdir/VERSION file
>> 2. checkpolicy tests are now being built with --enable-tests
>>
>
> With this patch applied against the current autotools branch on git, the following issues seem to exist:
>
> libsepol:
> 1. Version information is in both configure.ac as well as the VERSION file. Consider having configure.ac generate the VERSION file via a @VERSION@ substitution in AC_CONFIG_FILE.
> 2. Default behavior of libsepol should be to enable_tests.
> 3. Syntax of subsequent AM_CONDITIONAL is incorrect; there is a stray right bracket.
> 4. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
> 5. No Makefile.am for tests subdirectory.
>
>
1,2,3 -> Fixed with attached libsepol-fixes.patch
-1- The VERSION file is deleted, it is redundant. From
now on the only file that will track the version string
will be configure.ac for all packages
4. -> This is an issue for the distro maintainer, not the package
maintainer.
5 -> I dont understand how to build the tests for libsepol. Can someone
explain the libsepol/tests/Makefile from the master branch to me? I have
just stubbed it out for now
// make distcheck OK after patch
> libselinux:
> 1. No Ruby support in configure.ac.
> 2. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no"), but then it does not actually guess the Python site folder despite what the help message claims.
> 3. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 4. In utils/Makefile.am, instead of $(builddir)/.., this should simply be $(top_builddir). Likewise, consider $(top_srcdir) instead of $(srcdir)/...
> 5. In src/Makefile.am, private header files are not included.
> 6. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
1 -> I'm not going to address this one. If someone knows how to use
ruby, go ahead and add it.
2 -> You seem to be mixing 2 very different things here.
-1- $with_python refers to building code that needs python
support and yes, by default, it is set to no.
Python is extra functionality, it is not a mandatory
dependency, use --with-python=/path/to/include/python2.4
if you want these python features from libselinux
-2- The python site-packages folder is indeed guessed if
one is not specified, why do you say differently?
Did you look at the resulting/guessed site-packages
folder after running configure without specifying
--with-python-site?
libselinux-fixes.patch stops the WARNING message
from being displayed if the libpy* cannot be built
3 -> Like I said previously, can you give me the logs from
the machine you claim fails the swig checks?
4 -> Fixed with attached libselinux-fixes.patch
5 -> Not sure what you mean
6 -> As in libsepol, this is a distro maintainer policy, not one to be
enforced by the build system.
// make distcheck OK after patch
> libsemanage:
> 1. Instead of using AC_SEARCH_LIBS in configure.ac, why not use AC_CHECK_LIB? There are no alternatives to libselinux, libsepol, and libustr, respectively, AC_CHECK_LIB would be simpler.
> 2. Defining HAVE_SELINUX_SELINUX_H and its kin are unnecessary. In no case would it be possible to compile libsemanage without having these defines be false.
> 3. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no").
> 4. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 5. No Makefile.am for tests subdirectory.
> 6. In src/Makefile.am, private header files are not included.
> 7. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
>
1,2 -> Fixed with attached libsemanage-fixes.patch
3 -> Yup, that's true. Python is not needed for libsemanage. If you need
this extra functionality (ie, libpysemanage), then specify the headers
you want to build with.
./configure --with-python=/these/guys/include/python2.4
4 -> Why? Whats wrong with the current test?
5 -> Fixed with attached libsemanage-fixes.patch
-1- I have not tested the tests. CUnit header checks may
also be needed in configure.ac
6 -> Not sure what you mean
7 -> Again this is a site policy and no concern of the package
maintainer. The distro maintainer adjusts these sort of things according
to the policies of the distro.
// make distcheck OK after patch
phew....that was some work...
I've attached my quilt series file along with the patches. So that you
can apply them in stack, as i had them.
Thanks again Jason for taking such a close look at the autotools branch.
5 patches! have fun Josh.
Vikram
2008-11-09 16:35:11 +00:00
|
|
|
AM_CONDITIONAL([BUILD_tests],[test "$enable_tests" = "yes"])
|
2008-08-28 19:31:31 +00:00
|
|
|
|
mbrose wrote:
> Attached to this email is a tarball snapshot of a new build system
> for the SELinux toolchain that I have been working on for the last
> couple of months.
>
> This autoconf/automake build system has many advantages over the
> current Makefiles.
>
> 1) It is capable of correctly cross compiling all libraries and
> tools, including the python wrappers.
> 2) It allows the distro maintainer to set sysconfdir, prefix,
> pamdir, startupdir etc..
> 3) It employs no "hacks", it is to-the-book, clean, GNU Automake,
> Autoconf code, formatted to ~80 char line length.
> 4) It lets RPM spec and .deb control take advantage of the autoconf
> infrastructure already built into these package formats, allowing
> distro maintainers to quickly and effortlessly build distro
> packages.
> 5) It is completely self dependent, ie. one can build the complete
> toolchain now resolving dependencies within the build, without
> needing to link against a system wide library.
>
> Due to an incompatibility with libtool, related to the current
> naming convention of the python wrappers and classes, a patch is
> supplied to rename:
> *) _selinux.so to libpyselinux.so
> *) _semanage.so to libpysemanage.so
> *) _audit2why.so to libpyaudit2why.so
>
> Similarily, the update also renames:
> *) selinux.py to __init__.py
> *) semanage.py to __init__.py
> and installs these plugins into their own sub site-packages folder.
>
> For Example: libselinux/src/Makefile.am
> line 35 # When the upstream tree is patched this should be removed
> line 36 # and selinux.py must be renamed to __init__.py
> line 37 __init__.py : selinux.py
> line 38 cp selinux.py $@
>
> A similar measure is taken in libsemanage/src/Makefile.am for semanage.py.
>
> On a similar note, the code currently uses a macro called SHARED,
> which is currently being wrapped with a forced -include libtool_compat.h
> using -DPIC (a libtool defined macro). This too can be removed if the code
> can be reformatted.
>
> This build system has been thoroughly tested to function correctly.
> Compiling natively for localhost, as well as cross compiling for
> the following platforms:
> *) PPC32
> *) PPC64
> *) ARM (Versatile family)
> *) Common PC X86_64
>
> It has also been tested on mainstream Linux distributions such
> as Ubuntu 8.04 and Fedora 9.
>
> This new build system is a replacement for the existing build system.
> They cannot be used concurrently. I leave no guarantee on backward
> compatibility after applying this update.
>
> Recently a Ruby wrapper was added to the SELinux trunk, this build
> system does not build it. Though with the current infrastructure in
> place, it is a very simple procedure for anyone familiar with ruby
> to include it.
>
> This contribution comes out of the integration efforts WindRiver has
> recently taken to add a SELinux feature to WindRiver Linux. It comes
> with no obligation or indemnity from WindRiver or myself. Distributed
> as not copyrighted, public domain software, in accordance with
> libselinux.
>
> I ask if this update can be merged into the main SELinux trunk.
> I will help coordinate the merge if necessary.
>
>
2008-08-19 20:04:11 +00:00
|
|
|
AC_CONFIG_FILES([Makefile
|
|
|
|
include/Makefile
|
|
|
|
man/Makefile
|
|
|
|
src/Makefile
|
Author: Vikram Noel Ambrose
Email: noel.ambrose@gmail.com
Subject: AC_INIT VERSION info fix + checkpolicy test
Date: Fri, 03 Oct 2008 19:42:04 -0400
Jason Tang wrote:
> Subject: [autotools][patch] AC_INIT VERSION info fix + checkpolicy test
> Date: Tue, 30 Sep 2008 13:17:55 -0400
> From: Vikram Noel Ambrose <noel.ambrose@gmail.com>
> To: owner-selinux@tycho.nsa.gov
> CC: Joshua Brindle <method@manicmethod.com>
>
>
>> Changelog.
>> 1. AC_INIT gets version string from $srcdir/VERSION file
>> 2. checkpolicy tests are now being built with --enable-tests
>>
>
> With this patch applied against the current autotools branch on git, the following issues seem to exist:
>
> libsepol:
> 1. Version information is in both configure.ac as well as the VERSION file. Consider having configure.ac generate the VERSION file via a @VERSION@ substitution in AC_CONFIG_FILE.
> 2. Default behavior of libsepol should be to enable_tests.
> 3. Syntax of subsequent AM_CONDITIONAL is incorrect; there is a stray right bracket.
> 4. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
> 5. No Makefile.am for tests subdirectory.
>
>
1,2,3 -> Fixed with attached libsepol-fixes.patch
-1- The VERSION file is deleted, it is redundant. From
now on the only file that will track the version string
will be configure.ac for all packages
4. -> This is an issue for the distro maintainer, not the package
maintainer.
5 -> I dont understand how to build the tests for libsepol. Can someone
explain the libsepol/tests/Makefile from the master branch to me? I have
just stubbed it out for now
// make distcheck OK after patch
> libselinux:
> 1. No Ruby support in configure.ac.
> 2. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no"), but then it does not actually guess the Python site folder despite what the help message claims.
> 3. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 4. In utils/Makefile.am, instead of $(builddir)/.., this should simply be $(top_builddir). Likewise, consider $(top_srcdir) instead of $(srcdir)/...
> 5. In src/Makefile.am, private header files are not included.
> 6. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
1 -> I'm not going to address this one. If someone knows how to use
ruby, go ahead and add it.
2 -> You seem to be mixing 2 very different things here.
-1- $with_python refers to building code that needs python
support and yes, by default, it is set to no.
Python is extra functionality, it is not a mandatory
dependency, use --with-python=/path/to/include/python2.4
if you want these python features from libselinux
-2- The python site-packages folder is indeed guessed if
one is not specified, why do you say differently?
Did you look at the resulting/guessed site-packages
folder after running configure without specifying
--with-python-site?
libselinux-fixes.patch stops the WARNING message
from being displayed if the libpy* cannot be built
3 -> Like I said previously, can you give me the logs from
the machine you claim fails the swig checks?
4 -> Fixed with attached libselinux-fixes.patch
5 -> Not sure what you mean
6 -> As in libsepol, this is a distro maintainer policy, not one to be
enforced by the build system.
// make distcheck OK after patch
> libsemanage:
> 1. Instead of using AC_SEARCH_LIBS in configure.ac, why not use AC_CHECK_LIB? There are no alternatives to libselinux, libsepol, and libustr, respectively, AC_CHECK_LIB would be simpler.
> 2. Defining HAVE_SELINUX_SELINUX_H and its kin are unnecessary. In no case would it be possible to compile libsemanage without having these defines be false.
> 3. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no").
> 4. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 5. No Makefile.am for tests subdirectory.
> 6. In src/Makefile.am, private header files are not included.
> 7. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
>
1,2 -> Fixed with attached libsemanage-fixes.patch
3 -> Yup, that's true. Python is not needed for libsemanage. If you need
this extra functionality (ie, libpysemanage), then specify the headers
you want to build with.
./configure --with-python=/these/guys/include/python2.4
4 -> Why? Whats wrong with the current test?
5 -> Fixed with attached libsemanage-fixes.patch
-1- I have not tested the tests. CUnit header checks may
also be needed in configure.ac
6 -> Not sure what you mean
7 -> Again this is a site policy and no concern of the package
maintainer. The distro maintainer adjusts these sort of things according
to the policies of the distro.
// make distcheck OK after patch
phew....that was some work...
I've attached my quilt series file along with the patches. So that you
can apply them in stack, as i had them.
Thanks again Jason for taking such a close look at the autotools branch.
5 patches! have fun Josh.
Vikram
2008-11-09 16:35:11 +00:00
|
|
|
utils/Makefile
|
|
|
|
tests/Makefile])
|
|
|
|
|
mbrose wrote:
> Attached to this email is a tarball snapshot of a new build system
> for the SELinux toolchain that I have been working on for the last
> couple of months.
>
> This autoconf/automake build system has many advantages over the
> current Makefiles.
>
> 1) It is capable of correctly cross compiling all libraries and
> tools, including the python wrappers.
> 2) It allows the distro maintainer to set sysconfdir, prefix,
> pamdir, startupdir etc..
> 3) It employs no "hacks", it is to-the-book, clean, GNU Automake,
> Autoconf code, formatted to ~80 char line length.
> 4) It lets RPM spec and .deb control take advantage of the autoconf
> infrastructure already built into these package formats, allowing
> distro maintainers to quickly and effortlessly build distro
> packages.
> 5) It is completely self dependent, ie. one can build the complete
> toolchain now resolving dependencies within the build, without
> needing to link against a system wide library.
>
> Due to an incompatibility with libtool, related to the current
> naming convention of the python wrappers and classes, a patch is
> supplied to rename:
> *) _selinux.so to libpyselinux.so
> *) _semanage.so to libpysemanage.so
> *) _audit2why.so to libpyaudit2why.so
>
> Similarily, the update also renames:
> *) selinux.py to __init__.py
> *) semanage.py to __init__.py
> and installs these plugins into their own sub site-packages folder.
>
> For Example: libselinux/src/Makefile.am
> line 35 # When the upstream tree is patched this should be removed
> line 36 # and selinux.py must be renamed to __init__.py
> line 37 __init__.py : selinux.py
> line 38 cp selinux.py $@
>
> A similar measure is taken in libsemanage/src/Makefile.am for semanage.py.
>
> On a similar note, the code currently uses a macro called SHARED,
> which is currently being wrapped with a forced -include libtool_compat.h
> using -DPIC (a libtool defined macro). This too can be removed if the code
> can be reformatted.
>
> This build system has been thoroughly tested to function correctly.
> Compiling natively for localhost, as well as cross compiling for
> the following platforms:
> *) PPC32
> *) PPC64
> *) ARM (Versatile family)
> *) Common PC X86_64
>
> It has also been tested on mainstream Linux distributions such
> as Ubuntu 8.04 and Fedora 9.
>
> This new build system is a replacement for the existing build system.
> They cannot be used concurrently. I leave no guarantee on backward
> compatibility after applying this update.
>
> Recently a Ruby wrapper was added to the SELinux trunk, this build
> system does not build it. Though with the current infrastructure in
> place, it is a very simple procedure for anyone familiar with ruby
> to include it.
>
> This contribution comes out of the integration efforts WindRiver has
> recently taken to add a SELinux feature to WindRiver Linux. It comes
> with no obligation or indemnity from WindRiver or myself. Distributed
> as not copyrighted, public domain software, in accordance with
> libselinux.
>
> I ask if this update can be merged into the main SELinux trunk.
> I will help coordinate the merge if necessary.
>
>
2008-08-19 20:04:11 +00:00
|
|
|
AC_OUTPUT
|
|
|
|
|
|
|
|
PRINT='echo -n -e '
|
|
|
|
$PRINT "\n*** Libsepol Configuration Summary ***\n"
|
|
|
|
$PRINT "\tBuilding static lib\t= $enable_static\n"
|
|
|
|
$PRINT "\tBuilding shared object\t= $enable_shared\n"
|
Author: Vikram Noel Ambrose
Email: noel.ambrose@gmail.com
Subject: AC_INIT VERSION info fix + checkpolicy test
Date: Fri, 03 Oct 2008 19:42:04 -0400
Jason Tang wrote:
> Subject: [autotools][patch] AC_INIT VERSION info fix + checkpolicy test
> Date: Tue, 30 Sep 2008 13:17:55 -0400
> From: Vikram Noel Ambrose <noel.ambrose@gmail.com>
> To: owner-selinux@tycho.nsa.gov
> CC: Joshua Brindle <method@manicmethod.com>
>
>
>> Changelog.
>> 1. AC_INIT gets version string from $srcdir/VERSION file
>> 2. checkpolicy tests are now being built with --enable-tests
>>
>
> With this patch applied against the current autotools branch on git, the following issues seem to exist:
>
> libsepol:
> 1. Version information is in both configure.ac as well as the VERSION file. Consider having configure.ac generate the VERSION file via a @VERSION@ substitution in AC_CONFIG_FILE.
> 2. Default behavior of libsepol should be to enable_tests.
> 3. Syntax of subsequent AM_CONDITIONAL is incorrect; there is a stray right bracket.
> 4. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
> 5. No Makefile.am for tests subdirectory.
>
>
1,2,3 -> Fixed with attached libsepol-fixes.patch
-1- The VERSION file is deleted, it is redundant. From
now on the only file that will track the version string
will be configure.ac for all packages
4. -> This is an issue for the distro maintainer, not the package
maintainer.
5 -> I dont understand how to build the tests for libsepol. Can someone
explain the libsepol/tests/Makefile from the master branch to me? I have
just stubbed it out for now
// make distcheck OK after patch
> libselinux:
> 1. No Ruby support in configure.ac.
> 2. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no"), but then it does not actually guess the Python site folder despite what the help message claims.
> 3. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 4. In utils/Makefile.am, instead of $(builddir)/.., this should simply be $(top_builddir). Likewise, consider $(top_srcdir) instead of $(srcdir)/...
> 5. In src/Makefile.am, private header files are not included.
> 6. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
1 -> I'm not going to address this one. If someone knows how to use
ruby, go ahead and add it.
2 -> You seem to be mixing 2 very different things here.
-1- $with_python refers to building code that needs python
support and yes, by default, it is set to no.
Python is extra functionality, it is not a mandatory
dependency, use --with-python=/path/to/include/python2.4
if you want these python features from libselinux
-2- The python site-packages folder is indeed guessed if
one is not specified, why do you say differently?
Did you look at the resulting/guessed site-packages
folder after running configure without specifying
--with-python-site?
libselinux-fixes.patch stops the WARNING message
from being displayed if the libpy* cannot be built
3 -> Like I said previously, can you give me the logs from
the machine you claim fails the swig checks?
4 -> Fixed with attached libselinux-fixes.patch
5 -> Not sure what you mean
6 -> As in libsepol, this is a distro maintainer policy, not one to be
enforced by the build system.
// make distcheck OK after patch
> libsemanage:
> 1. Instead of using AC_SEARCH_LIBS in configure.ac, why not use AC_CHECK_LIB? There are no alternatives to libselinux, libsepol, and libustr, respectively, AC_CHECK_LIB would be simpler.
> 2. Defining HAVE_SELINUX_SELINUX_H and its kin are unnecessary. In no case would it be possible to compile libsemanage without having these defines be false.
> 3. By default, configure.ac will not enable Python. This is because $with_python is set to the default ("no").
> 4. Consider using the ac_pkg_swig package (http://autoconf-archive.cryp.to/ac_pkg_swig.html) to detect if SWIG and Python are installed.
> 5. No Makefile.am for tests subdirectory.
> 6. In src/Makefile.am, private header files are not included.
> 7. Actual library and symlink will be installed to $(LIBDIR). The current model is to place library at /lib and symlink at /usr/lib.
>
>
>
1,2 -> Fixed with attached libsemanage-fixes.patch
3 -> Yup, that's true. Python is not needed for libsemanage. If you need
this extra functionality (ie, libpysemanage), then specify the headers
you want to build with.
./configure --with-python=/these/guys/include/python2.4
4 -> Why? Whats wrong with the current test?
5 -> Fixed with attached libsemanage-fixes.patch
-1- I have not tested the tests. CUnit header checks may
also be needed in configure.ac
6 -> Not sure what you mean
7 -> Again this is a site policy and no concern of the package
maintainer. The distro maintainer adjusts these sort of things according
to the policies of the distro.
// make distcheck OK after patch
phew....that was some work...
I've attached my quilt series file along with the patches. So that you
can apply them in stack, as i had them.
Thanks again Jason for taking such a close look at the autotools branch.
5 patches! have fun Josh.
Vikram
2008-11-09 16:35:11 +00:00
|
|
|
$PRINT "\tBuilding tests\t\t= $enable_tests\n"
|
mbrose wrote:
> Attached to this email is a tarball snapshot of a new build system
> for the SELinux toolchain that I have been working on for the last
> couple of months.
>
> This autoconf/automake build system has many advantages over the
> current Makefiles.
>
> 1) It is capable of correctly cross compiling all libraries and
> tools, including the python wrappers.
> 2) It allows the distro maintainer to set sysconfdir, prefix,
> pamdir, startupdir etc..
> 3) It employs no "hacks", it is to-the-book, clean, GNU Automake,
> Autoconf code, formatted to ~80 char line length.
> 4) It lets RPM spec and .deb control take advantage of the autoconf
> infrastructure already built into these package formats, allowing
> distro maintainers to quickly and effortlessly build distro
> packages.
> 5) It is completely self dependent, ie. one can build the complete
> toolchain now resolving dependencies within the build, without
> needing to link against a system wide library.
>
> Due to an incompatibility with libtool, related to the current
> naming convention of the python wrappers and classes, a patch is
> supplied to rename:
> *) _selinux.so to libpyselinux.so
> *) _semanage.so to libpysemanage.so
> *) _audit2why.so to libpyaudit2why.so
>
> Similarily, the update also renames:
> *) selinux.py to __init__.py
> *) semanage.py to __init__.py
> and installs these plugins into their own sub site-packages folder.
>
> For Example: libselinux/src/Makefile.am
> line 35 # When the upstream tree is patched this should be removed
> line 36 # and selinux.py must be renamed to __init__.py
> line 37 __init__.py : selinux.py
> line 38 cp selinux.py $@
>
> A similar measure is taken in libsemanage/src/Makefile.am for semanage.py.
>
> On a similar note, the code currently uses a macro called SHARED,
> which is currently being wrapped with a forced -include libtool_compat.h
> using -DPIC (a libtool defined macro). This too can be removed if the code
> can be reformatted.
>
> This build system has been thoroughly tested to function correctly.
> Compiling natively for localhost, as well as cross compiling for
> the following platforms:
> *) PPC32
> *) PPC64
> *) ARM (Versatile family)
> *) Common PC X86_64
>
> It has also been tested on mainstream Linux distributions such
> as Ubuntu 8.04 and Fedora 9.
>
> This new build system is a replacement for the existing build system.
> They cannot be used concurrently. I leave no guarantee on backward
> compatibility after applying this update.
>
> Recently a Ruby wrapper was added to the SELinux trunk, this build
> system does not build it. Though with the current infrastructure in
> place, it is a very simple procedure for anyone familiar with ruby
> to include it.
>
> This contribution comes out of the integration efforts WindRiver has
> recently taken to add a SELinux feature to WindRiver Linux. It comes
> with no obligation or indemnity from WindRiver or myself. Distributed
> as not copyrighted, public domain software, in accordance with
> libselinux.
>
> I ask if this update can be merged into the main SELinux trunk.
> I will help coordinate the merge if necessary.
>
>
2008-08-19 20:04:11 +00:00
|
|
|
$PRINT "------------------------------------------------------------\n"
|
|
|
|
|