--- /dev/fd/63 2015-01-22 05:31:13.117206796 +0100 +++ /dev/fd/63 2015-01-22 05:30:50.000000000 +0100 @@ -4,6 +4,8 @@ inherit eutils versionator +GUILE_PV="$(guile -v | sed -ne '/^[Gg]uile/{s|.* \([0-9]\+\.[0-9]\+\).*|\1|;p}')" + #version magic thanks to masterdriverz and UberLord using bash array instead of tr trarr="0abcdefghi" MY_PV="$(get_version_component_range 1)${trarr:$(get_version_component_range 2):1}$(get_version_component_range 3)" @@ -16,12 +18,12 @@ LICENSE="public-domain BSD" SLOT="0" -KEYWORDS="*" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" IUSE="bigloo drscheme elk gambit mit-scheme scm" RDEPEND=" >=sys-apps/texinfo-5.0 - >=dev-scheme/guile-2.0.9 + >=dev-scheme/guile-1.8.8 bigloo? ( dev-scheme/bigloo ) drscheme? ( dev-scheme/drscheme ) @@ -39,13 +41,20 @@ epatch "${FILESDIR}"/"${P}"-backport-texlive-5-fix-and-other-changes.patch sed -i 's|usr/lib|usr/share|' RScheme.init - sed -i 's|usr/local|usr/share|' gambit.init + sed -i 's|local/lib/slib|share/slib|;s|local/share|share|' gambit.init + sed -i 's|%site-dir|%library-dir|' guile-2.init + + local f="elk.init" + local _f="$(r="^.require.*unix" ; grep -A 3 "$r" $f ; sed -e "/$r/,+3d" $f)" + echo "$_f" > $f } src_configure() { ./configure --prefix=/usr --libdir=/usr/share - sed -i -e 's# scm$# guile#;s#ginstall-info#install-info#' -e 's/no-split -o/no-split --force -o/' Makefile + sed -i Makefile \ + -e 's# scm$# guile#;s#ginstall-info#install-info#' \ + -e 's/no-split -o/no-split --force -o/' } src_compile() { @@ -66,6 +75,7 @@ doins *.sh # bin + dodir /usr/bin/ dosym /usr/share/slib/${PN}.sh /usr/bin/${PN} # env @@ -74,57 +84,65 @@ # docs dodoc ANNOUNCE COPYING FAQ README ChangeLog slib.{txt,html} || die - doinfo slib.info || die - doman slib.1 || die # guile - dosym /usr/share/slib/ /usr/share/guile/2.0/ - - dodir /usr/share/guile/site/2.0/ + dodir /usr/share/guile/${GUILE_PV}/ + dosym /usr/share/slib/ /usr/share/guile/${GUILE_PV}/ # backwards compatibility + dodir /usr/lib/ dosym /usr/share/slib/ /usr/lib/slib } -make_load_expression() { - echo "(load \\\"${EPREFIX}${INSTALL_DIR}$1.init\\\")" +_new_catalog() { + if [[ ! "$1" =~ ^(guile|scm)$ ]]; then + echo -n "(load \"${SCHEME_LIBRARY_PATH}$1.init\")" + fi + echo " (require 'new-catalog) (slib:report-version)" } pkg_postinst() { + source "${ROOT}/etc/env.d/50slib" + # permissions - chmod 755 /usr/share/slib/*.sh + chmod 755 ${SCHEME_LIBRARY_PATH}*.sh # catalogs - guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)" + einfo "Updating implementation catalogs.." + guile -c "(use-modules (ice-9 slib)) $(_new_catalog guile)" |& grep -i '^slib' if use bigloo ; then - bigloo -s -eval "(begin $(make_load_expression bigloo) (require 'new-catalog) (exit))" + bigloo -s -eval "(begin $(_new_catalog bigloo) (exit))" fi if use drscheme ; then - mzscheme -vme "(begin $(make_load_expression mzscheme) (require 'new-catalog))" + mzscheme -vme "(begin $(_new_catalog mzscheme))" fi if use elk ; then - echo "$(make_load_expression elk) (require 'new-catalog)" | elk -l - + echo "$(_new_catalog elk)" | elk -l - fi if use gambit ; then - gambit-interpreter -e "$(make_load_expression gambit) (require 'new-catalog)" + gsi -e "$(_new_catalog gambit)" fi if use mit-scheme ; then - echo "(set! load/suppress-loading-message? #t) $(make_load_expression mitscheme) (require 'new-catalog)" | mit-scheme --batch-mode + echo "(set! load/suppress-loading-message? #t) " \ + "$(_new_catalog mitscheme)" | mit-scheme --batch-mode fi if use scm ; then - scm -e "(require 'new-catalog)" + scm -e "$(_new_catalog scm)" fi } -pkg_prerm() { - # temp - [[ -d "${ROOT}/usr/share/guile/site/2.0/" ]] && rm -rf "${ROOT}/usr/share/guile/site/2.0/" +pkg_postrm() { + # TODO: is slibcat being removed for bigloo drscheme mit-scheme (?) + for impl in 'guile/*' bigloo drscheme elk gambc mit-scheme scm; do + rm -f "${ROOT}/usr/"lib*/${impl}/slibcat \ + "${ROOT}/usr/share/"${impl}/slibcat + done }