From: Joshua Brindle <method@manicmethod.com>
To: Vikram Ambrose <Vikram.Ambrose@windriver.com>
Cc: Stephen Smalley <sds@tycho.nsa.gov>, SELinux@tycho.nsa.gov
Subject: Re: New SELinux toolchain build system
Date: Tue, 12 Aug 2008 16:47:16 -0400 [thread overview]
Message-ID: <48A1F6D4.7000909@manicmethod.com> (raw)
In-Reply-To: <48A04E61.3090506@windriver.com>
Vikram Ambrose 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.
>
I've just started looking at this. We need to be sure that it covers current make targets like make swigify which generate the c wrappers from swig interface files (we run this before checkins). Also make test needs to work.
Also there is no top level ./configure so this won't let you build the entire repo. I'd like something (even if it was just the makefile that ran ./configure in each dir.
I also get a failure:
[root@misterfreeze libsepol]# autoreconf -iv
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf
autoreconf: running: /usr/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
configure.ac:17: installing `./compile'
configure.ac:6: installing `./install-sh'
configure.ac:6: installing `./missing'
include/Makefile.am:2: whitespace following trailing backslash
include/Makefile.am:5: whitespace following trailing backslash
include/Makefile.am:8: whitespace following trailing backslash
include/Makefile.am:9: whitespace following trailing backslash
include/Makefile.am:11: whitespace following trailing backslash
include/Makefile.am:14: whitespace following trailing backslash
include/Makefile.am:20: whitespace following trailing backslash
src/Makefile.am:10: Libtool library used but `LIBTOOL' is undefined
src/Makefile.am:10: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
src/Makefile.am:10: to `configure.ac' and run `aclocal' and `autoconf' again.
src/Makefile.am:10: If `AC_PROG_LIBTOOL' is in `configure.ac', make sure
src/Makefile.am:10: its definition is in aclocal's search path.
src/Makefile.am: installing `./depcomp'
Makefile.am: installing `./INSTALL'
Makefile.am: required file `./NEWS' not found
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found
autoreconf: automake failed with exit status: 1
--
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.
next prev parent reply other threads:[~2008-08-12 20:47 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-11 14:36 New SELinux toolchain build system Vikram Ambrose
2008-08-12 19:35 ` Daniel J Walsh
2008-08-12 20:47 ` Joshua Brindle [this message]
2008-08-14 18:19 ` Vikram Ambrose
2008-08-25 1:17 ` Joshua Brindle
2008-08-25 14:06 ` Vikram Ambrose
2008-08-26 0:30 ` Joshua Brindle
2008-08-27 18:06 ` Vikram Ambrose
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=48A1F6D4.7000909@manicmethod.com \
--to=method@manicmethod.com \
--cc=SELinux@tycho.nsa.gov \
--cc=Vikram.Ambrose@windriver.com \
--cc=sds@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.