%define name mm %define version 1.3.0 %define release 1 %define buildroot /var/tmp/%{name}-buildroot Summary: Shared Memory Abstraction Library Name: %{name} Version: %{version} Release: %{release} Copyright: BSD-style, OpenSource Group: Libraries Source: http://www.engelschall.com/sw/mm/mm-%{version}.tar.gz Provides: mm Vendor: Ralf S. Engelschall Packager: Edward S. Marshall Url: http://www.engelschall.com/sw/mm/ BuildRoot: %{buildroot} Patch: shtool.patch %package devel Group: Development/Libraries Summary: development files for mm. Requires: mm = %{version} %description The MM library is a 2-layer abstraction library which simplifies the usage of shared memory between forked (and this way strongly related) processes under Unix platforms. On the first layer it hides all platform dependent implementation details (allocation and locking) when dealing with shared memory segments and on the second layer it provides a high-level malloc(3)- style API for a convenient and well known way to work with data-structures inside those shared memory segments. The library is released under the term of an open-source (BSD-style) license because it's originally written for a proposed use inside next versions of the Apache webserver as a base library for providing shared memory pools to Apache modules (because currently Apache modules can only use heap-allocated memory which isn't shared accross the pre-forked server processes). The requirement actually comes from comprehensive modules like mod_ssl, mod_perl and mod_php which would benefit a lot from easy to use shared memory pools. Mostly all functionality (except for shared locks in addition to exclusive locks and multi-segment memory areas instead of single-segment memory areas) is already implemented and the library already works fine under FreeBSD, Linux and Solaris and should also adjust itself for most other Unix platforms with it's GNU Autoconf and GNU Libtool based configuration and compilation procedure. %description devel The MM library is a 2-layer abstraction library which simplifies the usage of shared memory between forked (and this way strongly related) processes under Unix platforms. On the first layer it hides all platform dependent implementation details (allocation and locking) when dealing with shared memory segments and on the second layer it provides a high-level malloc(3)- style API for a convenient and well known way to work with data-structures inside those shared memory segments. This package contain files that are needed to develop applications which use the MM shared memory library. %prep %setup %patch rm -rf $RPM_BUILD_ROOT %build CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=$RPM_BUILD_ROOT/usr make make test %install make install %post ldconfig %postun ldconfig %files %defattr(-,root,root) %doc README LICENSE ChangeLog INSTALL PORTING THANKS /usr/lib/*.so.* /usr/man/man3/* %files devel %defattr(-,root,root) /usr/lib/*.a /usr/man/man1/* /usr/include/* /usr/bin/mm-config /usr/lib/libmm.la %changelog * Thu Sep 21 2000 Henri Gomez - Patche shtool which generate bad libso name * Tue Jul 25 2000 Henri Gomez - RPM reworked and ajust build in RPM RPM splitted now in mm and mm-devel (à la gd or openssl) * Thu Jul 06 2000 Troels Arvin - update to 1.1.3 * Fri May 26 2000 Peter Hanecak - update to 1.1.2 - added URL to spec - %doc slightly changed * Wed Feb 9 2000 Peter Hanecak - build root changed from '/tmp/...' to '/var/tmp/...' - added vendor - RPM_OPT_FLAGS passed to CFLAGS * Sat Jan 22 2000 Edward S. Marshall - updated for mm 1.0.12 * Tue Sep 7 1999 Nicolai Schleifer - using buildroot feature - using -f feature of the files macro - started from scratch