From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <48A04E61.3090506@windriver.com> Date: Mon, 11 Aug 2008 10:36:17 -0400 From: Vikram Ambrose MIME-Version: 1.0 To: ds@tycho.nsa.gov CC: SELinux@tycho.nsa.gov Subject: New SELinux toolchain build system Content-Type: multipart/mixed; boundary="------------070205070006010306010303" Sender: owner-selinux@tycho.nsa.gov List-Id: selinux@tycho.nsa.gov This is a multi-part message in MIME format. --------------070205070006010306010303 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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. Sincerely, Vikram Ambrose -- Vikram Ambrose | Linux Products Division | WindRiver Corporation --------------070205070006010306010303 Content-Type: application/x-bzip; name="selinux-trunk-autotools.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="selinux-trunk-autotools.tar.bz2" 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 --------------070205070006010306010303-- -- 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.