%global debug_package %{nil} %if 0%{?fedora} >= 35 %global guilever 3.0 %global guilepkgver 30 %else %global guilever 2.2 %global guilepkgver 22 %endif Name: guile-pfds Version: 0.3 Release: 2%{?dist} Summary: Purely Functional Data Structures in Scheme License: BSD URL: https://github.com/ijp/pfds Source0: https://github.com/ijp/pfds/archive/refs/tags/v%{version}.tar.gz BuildRequires: guile%{guilepkgver}-devel Requires: guile%{guilepkgver} %description pfds is a set of purely functional data structures written in R6RS Scheme. %global file_stems "bbtrees \ deques \ deques/naive \ deques/private/condition \ dlists \ fingertrees \ hamts \ heaps \ private/alists \ private/bitwise \ private/lazy-lists \ private/vectors \ psqs \ queues \ queues/naive \ queues/private/condition \ sequences \ sets" # This is a temporary work-around until the fixes for # https://github.com/rpm-software-management/rpm/issues/1765 land in # Fedora. %global __brp_strip /bin/true %prep %autosetup -n pfds-%{version} %build FILE_STEMS=%{file_stems} # We need to rename files since '.sls' isn't in `%%load-extensions` by # default. for stem in $FILE_STEMS; do cp ${stem}.sls ${stem}.scm done ln -s . pfds for stem in $FILE_STEMS; do guild%{guilever} compile -L . -o ${stem}.go ${stem}.scm done %install rm -rf $RPM_BUILD_ROOT FILE_STEMS=%{file_stems} DIRECTORIES="private deques/private queues/private" for directory in $DIRECTORIES; do mkdir -p $RPM_BUILD_ROOT%{_libdir}/guile/%{guilever}/site-ccache/pfds/$directory done for stem in $FILE_STEMS; do install -p -m 644 ${stem}.go $RPM_BUILD_ROOT%{_libdir}/guile/%{guilever}/site-ccache/pfds/${stem}.go done for directory in $DIRECTORIES; do mkdir -p $RPM_BUILD_ROOT%{_datadir}/guile/site/%{guilever}/pfds/$directory done for stem in $FILE_STEMS; do install -p -m 644 ${stem}.scm $RPM_BUILD_ROOT%{_datadir}/guile/site/%{guilever}/pfds/${stem}.scm done %files %license LICENSE %doc README.org doc/dlists.scm examples/queues.scm %{_libdir}/guile/%{guilever}/site-ccache/pfds %{_datadir}/guile/site/%{guilever}/pfds