Package slib: Specfile

# http://bugzilla.gnome.org/show_bug.cgi?id=347922
# guile -c "(use-modules (ice-9 slib)) (require 'printf)"
Name: slib
Version: 3a4
Release: alt0.4

Summary: platform independent library for scheme
License: distributable, see individual files for copyright
Group: Development/Scheme
BuildArch: noarch
Obsoletes: umb-scheme
BuildPreReq: guile plt2

Url: http://www-swiss.ai.mit.edu/~jaffer/SLIB.html
Packager: Vitaly Lipatov <lav@altlinux.ru>

Source: http://swiss.csail.mit.edu/ftpdir/scm/%name%version.tar.bz2
# disable, replace with subst below
#Patch0: %name-2d6-umbscheme.patch

%description
"SLIB" is a portable library for the programming language Scheme.
It provides a platform independent framework for using "packages" of
Scheme procedures and syntax.  As distributed, SLIB contains useful
packages for all Scheme implementations.  Its catalog can be
transparently extended to accomodate packages specific to a site,
implementation, user, or directory.

%package guile
Summary: guile support for slib
Group: Development/Scheme
Requires: %name = %version-%release
Requires(post): %name = %version-%release
Requires(preun): %name = %version-%release

%description guile
"SLIB" is a portable library for the programming language Scheme.
It provides a platform independent framework for using "packages" of
Scheme procedures and syntax.  As distributed, SLIB contains useful
packages for all Scheme implementations.  Its catalog can be
transparently extended to accomodate packages specific to a site,
implementation, user, or directory.

This package provides files necessary to use slib with guile

%package plt2
Summary: mzscheme support for slib
Group: Development/Scheme
Requires: plt2
Requires: %name = %version-%release

%description plt2
"SLIB" is a portable library for the programming language Scheme.
It provides a platform independent framework for using "packages" of
Scheme procedures and syntax.  As distributed, SLIB contains useful
packages for all Scheme implementations.  Its catalog can be
transparently extended to accomodate packages specific to a site,
implementation, user, or directory.

This package provides files necessary to use slib with mzscheme

%package plt1
Summary: mzscheme support for slib
Group: Development/Scheme
Requires: plt1
Requires: %name = %version-%release

%description plt1
"SLIB" is a portable library for the programming language Scheme.
It provides a platform independent framework for using "packages" of
Scheme procedures and syntax.  As distributed, SLIB contains useful
packages for all Scheme implementations.  Its catalog can be
transparently extended to accomodate packages specific to a site,
implementation, user, or directory.

This package provides files necessary to use slib with mzscheme

%prep
%setup -q -n slib
#%patch -p1
%__subst "s|%_libdir/umb-scheme|%_datadir/umb-scheme|g" umbscheme.init
%__subst "s|%_libdir/slib|%_datadir/slib|g" *

%install
mkdir -p %buildroot%_datadir/%name
cp -r . %buildroot%_datadir/%name

mkdir -p %buildroot%_infodir
cp slib.info %buildroot%_infodir

mkdir -p %buildroot%_datadir/guile/
ln -sf ../slib %buildroot%_datadir/guile/%name

touch %buildroot%_datadir/guile/slibcat

# can't work with local and global path simulateonly?
#guile -c "(set! %%load-path (cons \"%buildroot%_datadir/guile\" %%load-path)) (load \"%buildroot%_datadir/guile/%name/guile.init\") (use-modules (ice-9 slib)) (require 'new-catalog )"
#sed -e"s,%buildroot,,;s,\*slib-version\*,*SLIB-VERSION*," \
#	%buildroot%_datadir/guile/slibcat \
#	> %buildroot%_datadir/guile/slibcat.tmp
#mv %buildroot%_datadir/guile/slibcat.tmp %buildroot%_datadir/guile/slibcat

mkdir -p %buildroot%_libdir/plt2/collects
ln -sf %_libdir/plt2/collects/slibinit %buildroot%_libdir/plt2/collects/slibinit
ln -sf %_libdir/plt2/collects/mzlib %buildroot%_libdir/plt2/collects/mzlib
ln -sf ../../../share/slib %buildroot%_libdir/plt2/collects/%name

touch %buildroot%_libdir/plt2/slibcat

#SCHEME_LIBRARY_PATH=%buildroot%_libdir/plt2/collects/%name/ \
#PLTHOME=%buildroot%_libdir/plt2 \
#	mzscheme-2 -e "(require (lib \"load.ss\" \"slibinit\"))" -e "(require 'new-catalog)" -e "(exit)"
#sed -e"s,%buildroot,,;s,\*slib-version\*,*SLIB-VERSION*," \
#	%buildroot%_libdir/plt2/slibcat \
#	> %buildroot%_libdir/plt2/slibcat.tmp
#mv %buildroot%_libdir/plt2/slibcat.tmp %buildroot%_libdir/plt2/slibcat

%post
%install_info slib.info

%preun
[ $1 = 0 ] || exit 0
%uninstall_info slib.info

%post guile
/usr/bin/guile -c "(use-modules (ice-9 slib)) (require 'new-catalog ) "
chmod 644 %_datadir/guile/1.6/slibcat

%preun guile
if [ "$1" = "0" ]; then
        rm -f %_datadir/guile/1.6/slibcat
fi

%post plt2
/usr/bin/mzscheme-2 -e "(require (lib \"load.ss\" \"slibinit\"))" -e "(require 'new-catalog)" -e "(exit)"
chmod 644 %_libdir/plt2/slibcat

%preun plt2
if [ "$1" = "0" ]; then
        rm -f %_libdir/plt2/slibcat
fi

%files
%doc ANNOUNCE README COPYING FAQ ChangeLog
%dir %_datadir/%name
%_datadir/%name/*.scm
%_datadir/%name/*.init
%_datadir/%name/cie1931.xyz
%_datadir/%name/cie1964.xyz
%_datadir/%name/saturate.txt
%_datadir/%name/resenecolours.txt
%_infodir/*.info*

%files guile
%_datadir/guile/%name/
%ghost %_datadir/guile/slibcat

# TODO:
#%files plt2
#%_libdir/plt2/collects/%name/
#%ghost %_libdir/plt2/slibcat

%changelog
* Sat Dec 23 2006 Vitaly Lipatov <lav@altlinux.ru> 3a4-alt0.4
- revert slib link, fix slibcat placement

* Wed Dec 13 2006 Vitaly Lipatov <lav@altlinux.ru> 3a4-alt0.3
- move slib link to guile/1.6
- fix guile dir for slibcat

* Sat Dec 09 2006 Vitaly Lipatov <lav@altlinux.ru> 3a4-alt0.2
- revert from orphaned, new version (3a4)
- disable plt2 package
- fix Url, fix Source Url
- move slibcat build to post scripts :(
- add some bugs to the package

* Thu Apr 22 2004 Alexey Voinov <voins@altlinux.ru> 3a1-alt1
- new version (3a1)

* Sun Sep 28 2003 Alexey Voinov <voins@voins.program.ru> 2d6-alt1
- ported to ALT Linux

* Wed Mar 14 2001 Radey Shouman <shouman@ne.mediaone.net>
- Adapted from the spec file of R. J. Meier.

* Mon Jul 12 2000 Dr. Robert J. Meier <robert.meier@computer.org> 0.9.4-1suse
- Packaged for SuSE 6.3

* Sun May 30 2000 Aubrey Jaffer <agj@Alum.mit.edu>
- Updated content