File tud-l4env.spec of Package tud-l4env
# norootforbuild
Name: tud-l4env
BuildRequires: bison doxygen flex gcc gcc-c++ l4-base ncurses-devel zlib-devel zlib
# Required to generate doc stuff
BuildRequires: texlive-latex latex2html tcl transfig
License: GPL
Version: 1811
BuildRequires: tud-dice = %{version} tud-dice-devel = %{version}
Release: 3
Summary: L4 environment - runtime
Group: L4
Requires: l4-base
Source: tud-l4env-snapshot-%version.tar.bz2
Source1: l4env-config-i386
Source2: l4env-servers-in-boot.txt
Patch1: l4env-DESTDIR.patch
Patch2: l4env-no-dice-no-fiasco.patch
Patch3: ore-with-tg3.diff
Patch4: demo-hotfixes.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
L4Env is a programming environment for application development on top of the L4 microkernel family
Prior to L4Env, most L4 applications had their very own idea about the environment (libraries, interfaces and so on) in which they were executed. Almost every programmer had his own set of libraries he used to build his applications, which resulted in huge problems if someone tried to combine components developed by different authors. Frequent problems were conflicting implementations of common functions (like printf) or conflicts caused by the lack of a central management of resources like threads or virtual memory.
The intention of L4Env is to define a set of functions which describe a minimal environment. This minimal environment is available for every L4 application. Hence, all applications and especially all libraries can use these functions. Libraries which are intended to be used by many different applications should only use these functions to avoid dependencies to other libraries.
L4Env also decreases the dependencies to a certain L4 API or hardware architecture, making applications more portable.
%changelog -n tud-l4env
* Tue Jun 16 2009 - opentc@os.inf.tu-dresden.de
- small fixes for demo scenario
* Sat Jun 13 2009 - opentc@os.inf.tu-dresden.de
- enable support for Broadcom Tigon3 in ORe by default
* Thu Jun 03 2009 - opentc@os.inf.tu-dresden.de
- update to source of svn version 1811
* Thu May 28 2009 - mmarek@suse.cz
- create the source symlink in the -devel package
* Thu May 07 2009 - opentc@os.inf.tu-dresden.de
- update to source of svn version 1731
- contains BMSI, HIM, LYON, VTPM stuff of TUD & HP (WP4)
* Tue Apr 21 2009 - opentc@os.inf.tu-dresden.de
- update to source of svn version 1635
- makes previous patches obsolete
* Thu Apr 09 2009 - opentc@os.inf.tu-dresden.de
- add dde patch to fix 64 bit compatibility complains
- add l4util patch fix asm errors
* Mon Apr 06 2009 - opentc@os.inf.tu-dresden.de
- create package for OpenTC VDC Demo
%package devel
AutoReqProv: off
Requires: tud-l4env = %version
Requires: tud-preprocess = %version tud-dice = %version tud-dice-devel = %version
Summary: L4 environment - development files
Group: Productivity/Security
%description devel
L4 environment - development files
%package doc
Requires: tud-l4env = %version
Summary: Documentation for the L4 development environment
Group: Documentation/HTML
%description doc
Documentation for the l4 development environment
%prep
%setup -q -n tud-l4env-snapshot-%version
%patch1
%patch2
%patch3
%build
# do not use RPM_OPT_FLAGS for L4Env code, it may cause trouble ...
#export CFLAGS="$CFLAGS $RPM_OPT_FLAGS"
#export CFLAGS="${CFLAGS/-fstack-protector}"
#export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS"
#export CXXFLAGS="${CXXFLAGS/-fstack-protector}"
export CFLAGS=
export CXXFLAGS=
. %l4_sysconfdir/profile.sh
cd l4
mkdir _build
if test -e %_sourcedir/l4env-config-%l4_arch; then
cp %_sourcedir/l4env-config-%l4_arch _build/.Makeconf.bid
else
echo "No configuration for %_arch"
exit 1
fi
CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" make O=_build oldconfig
CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" make O=_build
%install
. %l4_sysconfdir/profile.sh
cd l4
make O=_build DESTDIR=%buildroot install
rm -r %buildroot%l4_prefix/doc
# some of the l4 binaries are needed for booting fiasco and l4linux,
# so copy these to /boot
install -d $RPM_BUILD_ROOT/boot/l4/bin
grep '^[^#]' %_sourcedir/l4env-servers-in-boot.txt | while read f; do
cp -a _build/bin/x86_586/"$f" $RPM_BUILD_ROOT/boot/l4/bin
done
# hacks to make l4linux build with the installed l4env
mkdir -p %buildroot%l4_prefix/mk
cp -a mk/{Makeconf,config.inc,rel2abs.sh} %buildroot%l4_prefix/mk
cp _build/{.Makeconf.bid,Makeconf.bid.local{,.indep}} %buildroot%l4_prefix
# fix paths
sed -i 's|%_builddir/%buildsubdir/l4/_build|%l4_prefix/source|' \
%buildroot%l4_prefix/Makeconf.bid.local
sed -i 's|%_builddir/%buildsubdir/l4/_build/tool/gendep|%l4_prefix/tool/lib|' \
%buildroot%l4_prefix/Makeconf.bid.local.indep
sed -r 's|%_builddir/%buildsubdir(/_build)?|%l4_prefix|g' _build/Makefile \
>%buildroot%l4_prefix/Makefile
if grep '%_builddir' %buildroot%l4_prefix/Make* %buildroot%l4_prefix/mk/*; then
echo "Installed files point to %%builddir"
exit 1
fi
echo 'O=%l4_prefix' >%buildroot%l4_prefix/Makeconf.local
ln -s %l4_prefix %buildroot%l4_prefix/source
%clean
rm -rf %buildroot
%post devel
# the l4 build system requires an absolute symlink
# /usr/lib/rpm/brp-symlink has a different opinion about it, so let's create it
# here
rm -f %l4_prefix/source
ln -s %l4_prefix %l4_prefix/source
%files
%defattr(-, root, root)
/boot/l4
%l4_bindir/*
%doc l4/COPYING
%files devel
%defattr(-, root, root)
%l4_includedir/*
%l4_prefix/tool
%l4_prefix/mk
%ghost %l4_prefix/source
%l4_prefix/l4defs.inc
%l4_prefix/Make*
%l4_prefix/.Makeconf*
%dir %l4_libdir/x86_586
%dir %l4_libdir/x86_586/l4v2
%l4_libdir/x86_586/*.a
%l4_libdir/x86_586/l4v2/*.a
%l4_libdir/x86_586/l4v2/*.so
%l4_libdir/x86_586/*.o
%l4_libdir/x86_586/*.ld
#%files doc
#%defattr(-, root, root)
#/usr/share/doc/l4