%define ver 1.9.14
%define rel 3%{?_dist_release}

Summary: A tool for creating Scheme interfaces to C libraries.
Summary(ja): C ライブラリへの Scheme 言語インタフェースを作成するツール
Name: g-wrap
Version: %{ver}
Release: %{rel}
Group: Development/Libraries
License: GPL
URL: http://www.gnucash.org/
Source: ftp://ftp.gnucash.org/pub/g-wrap/%{name}-%{version}.tar.gz

# upstream patch
Patch0: g-wrap-1.9.14-guile-2.0.patch

Requires: guile
BuildRequires: guile-devel, libffi-devel
BuildRequires: glib2-devel
Requires(pre): /sbin/install-info /sbin/ldconfig
BuildRoot: %{_tmppath}/%{name}-%{version}-root

Vendor: Project Vine
Distribution: Vine Linux


%description
g-wrap is a tool for creating Scheme interfaces to C libraries.  At
the moment it is most heavily focused on providing access to C
libraries from guile, but it also supports RScheme.

The g-wrap package contains the libraries necessary to run
applications built with g-wrap.  If you wish to build applications
that use g-wrap, you should install the g-wrap-devel package.

%description -l ja
g-wrap は C ライブラリへのScheme言語インタフェースを作成するツールです
guile から C言語のライブライリへのアクセスを提供することを目的
としています。 RScheme もサポートしています

g-wrap には g-wrap 使って作成したアプリケーションを動作させるために
必要なライブラリが含まれています. g-wrap を使ってアプリケーションを
作成したい場合 g-wrap-devel をinstallしてください.


%package devel
Summary: Include files and libraries needed for g-wrap development.
Summary(ja): g-wrap を使用した開発に必要なヘッダファイルやライブラリ
Group: Development/Libraries
Requires(pre): /sbin/install-info
Requires: g-wrap = %{version}, guile-devel


%description devel
g-wrap is a tool for creating Scheme interfaces to C libraries.  At
the moment it is most heavily focused on providing access to C
libraries from guile, but it also supports RScheme.

You can provide access to a given C API by creating a specification
file describing the interface you want published at the Scheme level.
g-wrap will handle generating all the lower level library interface
code so that the C library shows up as a set of Scheme functions.

You should install g-wrap-devel if you need to compile programs that
need to use g-wrap C<->Scheme functionality

%description devel -l ja
g-wrap は C ライブラリへのScheme言語インタフェースを作成するツールです
guile から C言語のライブライリへのアクセスを提供することを目的
としています。 RScheme もサポートしています

Schem レベルで表現したいインターフェースを記述を指定したファイルを作成
することによりC PAI へのアクセスを提供します.
g-wrap は 低レベルライブラリインターフェースすべての生成を扱うことが
できます。したがって C ライブラリには Schem 関数の集合としてみえます.

g-wrap のC と Scheme 間の変換機能を必要とするプログラムをコンパイルする
場合 g-wrap-devel をinstallしておかねかればなりません.

%prep
%setup -q
%patch0 -p1 -b .guile2

%build
%configure --disable-static

#remove Rpath
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

#Is not parallel-build-safe
%{__make}

%install
%{__rm} -rf ${RPM_BUILD_ROOT}
%{__make} install DESTDIR=${RPM_BUILD_ROOT}

#Remove unneeded file
find ${RPM_BUILD_ROOT} -name '*.la' -exec rm -f {} ';'
rm -f ${RPM_BUILD_ROOT}%{_datadir}/info/dir
mv  ${RPM_BUILD_ROOT}%{_datadir}/guile/site/g-wrap/config.scm ./config.old
cat config.old > config.scm
install -p -m 644 config.scm  ${RPM_BUILD_ROOT}%{_datadir}/guile/site/g-wrap/config.scm


%clean
%{__rm} -rf ${RPM_BUILD_ROOT}


%post -p /sbin/ldconfig

%post devel
/sbin/install-info \
    --info-dir=%{_infodir} %{_infodir}/g-wrap.info.gz


%preun -p /sbin/ldconfig

%preun devel
if [ "$1" = "0" ]; then
    /sbin/install-info --delete \
	--info-dir=%{_infodir} %{_infodir}/g-wrap.info.gz
fi

%files
%defattr(-,root,root)
%doc AUTHORS COPYING.LIB ChangeLog INSTALL NEWS README THANKS
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/modules
%{_libdir}/%{name}/modules/*.so.*
%{_libdir}/*.so.*
%{_datadir}/guile/site/*


%files devel
%defattr(-,root,root)
%{_bindir}/*
%{_libdir}/*.so
%{_libdir}/%{name}/modules/libgw-guile-gw-glib.so
%{_libdir}/%{name}/modules/libgw-guile-standard.so
%{_includedir}/*
%{_datadir}/aclocal/*
%{_libdir}/pkgconfig/*
%{_mandir}/man1/g-wrap-config.1.gz
%doc %{_infodir}/g-wrap.*


%changelog
* Sun Jan 25 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.9.14-3
- rebuild with guile-2.0.11
- add Patch0 (g-wrap-1.9.14-guile-2.0.patch)

* Sun Jul 06 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.9.14-2
- rebuild with libffi-3.0.13

* Tue Jun 19 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.9.14-1
- update to 1.9.14
- remove old patches

* Mon Jan 12 2009 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 1.9.1-1
- new upstream release
- update BuildRequires: umb-scheme -> slib

* Sat Sep 20 2008 Shu KONNO <owa@bg.wakwak.com> 1.3.4-10vl5
- applied new versioning policy, spec in utf-8
- removed *.la

* Tue Oct 25 2005 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.4-9vl1
- added Patches from Fedora
  * Thu Jul  7 2005 Bill Nottingham <notting@redhat.com> 1.3.4-9
  - add patch for M4 quoting (#162649, <rc040203@freenet.de>)

* Fri Jan  2 2004 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.4-3vl3
- rebuild with new toolchains
- s/Copyright/License/

* Thu May 15 2003 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.4-3vl2
- build against new guile 1.6.4

* Wed Feb 19 2003 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.4-2vl1
- based on rawhide 1.3.4-2
  - update to 1.3.4
  - move .la files to main package (#79068)
- rebuild with new guile 1.6.3

* Mon Apr 23 2001 Daisuke SUZUKI <daisuke@linux.or.jp> 1.1.10-1vl1
- updated to 1.1.10

* Mon Mar 26 2001 Kazuhisa TAKEI <takei@vinelinux.org> 1.1.9-1vl4
- add defattr

* Mon Mar 26 2001 Kazuhisa TAKEI <takei@vinelinux.org> 1.1.9-1vl2
- japanized spec file ( add %descripsion -l ja Summary(ja)


* Wed Nov 08 2000 Derek Atkins <warlord@MIT.EDU>
- Don't destroy the build directory -- RPM can do that on its own
- Properly build both g-wrap and g-wrap-devel (info file into -devel)
- currently only one info file

* Wed Oct 25 2000 Dave Peticolas <dave@krondo.com>
- use /usr/info/* for automatic gzipping

* Sat May 27 2000 Mark Horning <rip6@rip6.net>
- Created spec file
