diff options
author | Andrey Grozin <grozin@gentoo.org> | 2014-04-30 15:25:37 +0000 |
---|---|---|
committer | Andrey Grozin <grozin@gentoo.org> | 2014-04-30 15:25:37 +0000 |
commit | 20f62f3d1151e5c3d97f1b4517f14ce296c1ef9e (patch) | |
tree | ab1493dba3fe0f5111dddfb926523888bb2bea20 /dev-lisp/sbcl | |
parent | Another revbump to move screen's rundir to /tmp as /var/run doesn't get wiped... (diff) | |
download | historical-20f62f3d1151e5c3d97f1b4517f14ce296c1ef9e.tar.gz historical-20f62f3d1151e5c3d97f1b4517f14ce296c1ef9e.tar.bz2 historical-20f62f3d1151e5c3d97f1b4517f14ce296c1ef9e.zip |
Version bump
Package-Manager: portage-2.2.10/cvs/Linux i686
Manifest-Sign-Key: 0x3AFFCE974D34BD8C!
Diffstat (limited to 'dev-lisp/sbcl')
-rw-r--r-- | dev-lisp/sbcl/ChangeLog | 7 | ||||
-rw-r--r-- | dev-lisp/sbcl/Manifest | 30 | ||||
-rw-r--r-- | dev-lisp/sbcl/sbcl-1.1.18.ebuild | 207 |
3 files changed, 232 insertions, 12 deletions
diff --git a/dev-lisp/sbcl/ChangeLog b/dev-lisp/sbcl/ChangeLog index c75d83290588..a784830ae9ff 100644 --- a/dev-lisp/sbcl/ChangeLog +++ b/dev-lisp/sbcl/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-lisp/sbcl # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lisp/sbcl/ChangeLog,v 1.204 2014/04/28 07:44:03 ulm Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lisp/sbcl/ChangeLog,v 1.205 2014/04/30 15:25:21 grozin Exp $ + +*sbcl-1.1.18 (30 Apr 2014) + + 30 Apr 2014; Andrey Grozin <grozin@gentoo.org> +sbcl-1.1.18.ebuild: + Version bump 28 Apr 2014; Ulrich Müller <ulm@gentoo.org> sbcl-1.1.17.ebuild: QA: Fix whitespace issues. diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest index 5461c3e8b1dd..88faf52d0a2c 100644 --- a/dev-lisp/sbcl/Manifest +++ b/dev-lisp/sbcl/Manifest @@ -22,24 +22,32 @@ DIST sbcl-1.1.16-source.tar.bz2 4241468 SHA256 dc3294f7fb8725bfd556456665ade9093 DIST sbcl-1.1.16-x86-64-linux-binary.tar.bz2 9215318 SHA256 4f250285394783b46954a4c6c29ab585022f4a8b29d04b5447d5dc574d4ffc7c SHA512 aa1a5fd51a12f2fa0b9ba5d50a78d54911c9a32d4e437ca7115a1d12451b39d132745f632fd91a615667df28dabfec54f04397137267db235c4c13ef089bae9b WHIRLPOOL 8cdc7cba9ce8e4098d37a744bd39c72847465aa0d1c679cb11116e264f01ef3395bb609d7eab5f8f0c3e2ef6b953833e7161284d8c5ed9a1350eea8ec6d005da DIST sbcl-1.1.17-source.tar.bz2 4263128 SHA256 11895b41ce664bf128e1ad5c2e59a8f146681cf596c1b988b5458406fb440d75 SHA512 3de9c7ee7faae975790231f9c349ccc6573d4d962e3d7b8d5109c57437c2716b9848bfd20cd063a0ff374009df82d1d7d6d0d4dc526569abb45f471b75fc3f5a WHIRLPOOL 8d782c7b86482a84dafde236996ed100ceef245efbe3eac3295100b039f980670ee14a73c23fdb15878c7f1f2f90ef944918c2919440499d095d75de3c9b39c2 DIST sbcl-1.1.17-x86-64-linux-binary.tar.bz2 9192043 SHA256 0aecea084c885c2c8e52269dd866e6cd8eeb9c2a90debcc2fefa31f3e3807411 SHA512 b47eaf8ef2d351d23f7a04466bdfdd6d85113611cb468bcbce146457b0f10d7a54736dcce2c019a69a5ee69cc0b703468d07b70b7b5c96bceb57fa36840a3da2 WHIRLPOOL a23444dda1c3e233c77a8eaccd75753c419c9ba6e6d06849e7e89bcec8569e11096548f8050fc488b9efa16590f2637ca0dec4b22ab0ebcb7dd2ad2f73c5c2b6 +DIST sbcl-1.1.18-source.tar.bz2 4272315 SHA256 933238392a2a3533b4088b86c4fbd0704a5573c1c66987a603eec4afa782c7d0 SHA512 48501a670c7e1ea9ab5a03514e8b49b93d1dcbdb7712da8b38496a2d51a604fe30e2785a5e5e8aa40032ede5ee11a75f63ae1919ccd7316089a74486177ad417 WHIRLPOOL a7285ee77753bc1f14755425e232e6ffcff159be883bad779585cb247ff47b904b4fcab99e8fc2e33644764c602409c6e9bbd28588d3d639431650ea9d31c5f5 +DIST sbcl-1.1.18-x86-64-linux-binary.tar.bz2 9196684 SHA256 c945406f9421736982efc4eaaeb376b19331422f5b5a349382ed53c742d6cb0a SHA512 d63a33532ae6390c00d789c22c4a504b621e707b8aa5f72d12b497be8a590a75604a18f384fa2d27df3a4a0ef3ecd4c27e7bfc4f74fde3a014df1aad5dd8ff0c WHIRLPOOL 980726e0dd182c2b29c5ac4deab994d028e0003a3e2ac3e38a0c052f6607fc75f6b298fb60c99ff9f373c9ba1f243d6bd97de2cb765aad559867598affd510ab EBUILD sbcl-1.0.55-r1.ebuild 6161 SHA256 764c48efc217326b8a9862bcc4589df7c2e1ba2b164937a6c008bf7850f383fd SHA512 ff9c03ce7aa6f523efd4e4b6b41639cdafc45fa242dfabe59ef8c5d428bb9a6025b44420663ea38fdfc110b2ff84a13bf5bfc62f8a6a4ad65b20e13ac4e92164 WHIRLPOOL 3585987db968443527fb6d31f71c110638855e19915679d7a89ce9024c21e1c400fc7e4b1de2ca67b9aaded423e6d0b6552c09b160c4d9bff7aa92606ced36bd EBUILD sbcl-1.0.55-r2.ebuild 6230 SHA256 02574bec1fb07d17dd604daa7c4279a5125d0e9362247eaa2bde4ac55d0db607 SHA512 125165bf61e89a98f4796c792bc9c39dd8caa9595253bda3b2d50af762a5a597438966cbb5faa0d2e37563104b97185c88718be3d2df6a8fdb56af7bfe0d00c5 WHIRLPOOL 5f945702055282b0a989001f39b5ceb4de62ec750902018a3421562098298c405f23c855b2a00dd5a02b25aedfe3a92eab3de13a19de98670f15f2ebe6197a22 EBUILD sbcl-1.1.15.ebuild 6886 SHA256 66da6a3f0d6c3c6ae713f5285de69bd82eb0cae3d73d40cfb54388ce3e046419 SHA512 07ef57b521b97933b2c47f33e33cf05566de98524e5e3c02148cc336b1946b5015bb258193d73c5f52b5c3046c7102db543d32073fdae0064796d4f27656a89d WHIRLPOOL a0f6dae5a08cf7a580dc003a260d1def659ffbe033a888e554d32c92e9329ffb8f9c638c205aae9af9bbbd0824fb87c3438dc01ff1c61e9ecd3f7d6fff0fd04c EBUILD sbcl-1.1.16.ebuild 6886 SHA256 1a7654de5b78618224fa88508af1c2eef11ce894835abce55474b9849327a0ca SHA512 4103a075b9708aa267ed34a3e314fcfbd7a29734695e200f6138544a0673a29c51ddb3363f84497fcb5c5aef6ee8c6546a46df9d7d815a85705e8b87d7f30fc7 WHIRLPOOL cf39987e7cd36cdb96de692af1979ac54b599c7f23a7e351d7afe0e1cfc1b798b9b462f649d2c6f68dfaa2aefd746d344fe5e4ac942457129c4ed310df110d36 EBUILD sbcl-1.1.17.ebuild 6970 SHA256 d93fdbd333eb4308656c2be81a87736878e1e0770cdd2e3f5ab2bbdfe4ac9606 SHA512 f5a664525c06cbe91776fa5c1a9c73f8949face23876f819172898fca29755fe081a75e05ac7c3489dedb653db2ed3a4f35ab5a78f5714a38e1ab7a388d9924a WHIRLPOOL 71fc43956a7d051d5a32a3dc4d9181de849b0ed00588b7e39e675b0454467764b683518c49c6a1f15a8c3f6da3aba820417c40d70f549cfcfdd1a2ecde6958b7 -MISC ChangeLog 54189 SHA256 42142338c6f4cbc852d99498d6b98251c85a48e4c9670fcf730ccb6ef64f54af SHA512 6f134888b8d8a511e189b9aacc2cd4409a641a85afe545800a3d994fb9ce143b1e14038dd79c5133f90cf64ad1ae463fd7ff194aab48eedfff4a6e1f59ce8a17 WHIRLPOOL 84117543cc984a967e5dae3bf6c2240b86b54c4862723ca58705aa036a2d6ff82bbdd9c7bfd6cca29a8b6e3cfbed7535e9f0570c1bfd908321b3a8d32f17bebd +EBUILD sbcl-1.1.18.ebuild 6973 SHA256 6e7e0b924b8a7067b2f4391b3f872a4f66e3e3bb89235c350ca1333746f1a37d SHA512 f1dd069d733fc55d7595c82f47e4bcfc7f3cf48deb72d7618b84a3fa2df9d6d014b435973d2210d39362216eeec0b7609bea2b10fd064ca3f8adaecdf6c7946f WHIRLPOOL 03ce8442fe948320fe3d05f470fc142c4aaa36c5c51c1f098cff53465cb763574393c1bf0c59dcf9020839e013ebd428ea6662f48ee8f9e901c30a4e481356e7 +MISC ChangeLog 54306 SHA256 d962c81f1cfc5ad41c3d8d04950ab6c35bf117be417e7f88d2ee69929020d512 SHA512 5957bb8427b648a495a9eac6796a86ec9156640f546e02a00b65d8a68028e0cc922bcfefc4ba14c287bebcc9893da7edec3ada5c63e671be132a0d57b4abd260 WHIRLPOOL a35f47a7806b17ad468fd8a51c30cc4695f0158293d68639448935986047902dd0169efcdea69b52d9e78dd7b1215ea3b16eca23096cfe6291a7948f8ee33ca8 MISC metadata.xml 1676 SHA256 17fb0c325844368c649a311f15fbb53a87e5ef987021c52424ffa647745101f3 SHA512 54f12b8385602a6f26b35bb63cbfb0414788e899bc2f5240f60ce249d8ac914c1e236b8d66cee893eac1c3602661869a4333223fa4ce043bd284bde51fa99512 WHIRLPOOL 90a7306f698aa56ab618874f1d325bd3bb789961675d4b0728744abff152bfb6e8cb7303c3cc063782e0411ce27551527c313b404846dadbe2638c5ea086e2f1 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) -iQGcBAEBCAAGBQJTXgbxAAoJEJQzkH1pP7W4Z/kL/jjyNDjukoLaKBI3OoV+LN55 -oOrvOkBRhallQwDyK32PfDAgFGoWMe6FGdlhDDZmFipBbRXP+NM5WdXyiJoeQYWo -RPow1Zz9RdqYbprluVNUpuhauvrw3SeIMh01HDfJ8JExCg4+GV6LhKidgT/jM5d3 -9//TZ8nYtdQnt3VpgTEo6XOEqlrBLGhsqs6P9r+r90yBcDvuJazYrCdI6oshJo9M -8mIV5Gu9TmvyH596Yc8W02WdNvZsyelQBYaMpbSZAxh0NqLyXV8eDoeGTb7FbVUz -qAaykqtQSkDVmUPVO3voTrNdbwGVhPN2QhUtquGBQjV8xvEIgGM9D62XKDVZd26Q -ua0gpo79hNj4+uGDSqa1YZMg53IwJCHXfN4eZrIhfwox0DMyziRj5gz2FCt2AYhx -MC4soib2pW2IqV4JUwpv4m7y6Rp6L6t0q65hiLDjsHblTy12KNev+ZhNHkAk0qYv -wG5vqkSySUtMd3FbsQ7ZzvAHIy0ZOdmEsKZUAD/U3A== -=9t5u +iQJ8BAEBCABmBQJTYRPkXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w +ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwOEM0RURGNjY5QzVBNjMwRkU3REVCOTQz +QUZGQ0U5NzREMzRCRDhDAAoJEDr/zpdNNL2MxU0QAIV01TovYxh/+tUSrlrfemB+ +q4vcYcBqYbnoKPvSclHvN2I8QbqvfI1L0ZFfFDg4KZsfDA18b2NVVCZ+Asq0j8hG +eUqWLeMN6PV2/qTfv2kI1ttVnSiUWr8xLzIsS+pZdV7kl4JAbHT7H9YlS3Xii9Ph +AmEmpoD0JyhXLm5vC+/5uLZ5QBUtJLB5rb0NxqxidbGBBu0gsQw5Fm+hJrJtdmNU +LUhgEoHoYDsdRK/67aBNAdk36QbgYVZmcjEyFwMnZ/sd2kYj1/VDAKuQc8YaIWrN +weX86Ao9NECahvPdurPPKz8FBre4wqUy0ahrx8lGLsFl4qTPTLqF1jSPNmROVwym ++vj0VY5JyPkfpaInHf32x1e8nVx+udQU2VVPpw+PQKfGoUXsQwR2DBZXlAid0hcx +h1KXU9OicM++uYuQRGRtY+fF1gaj1qg70ZSOa8ySt/wIgDznzZlzjn7SFtfkCVTr +53YteY/+S6NjTg9s3V/CCEwc1I2a2x7BRQLXA3ei0W8verVFnQjpq13BMJgNNcd/ +ee9FHmqekhi1Lq8ewtrbEi9hpBv+U2evwu8BK2ho2msypWvNpaCsL6sOAehjwR9j +O9VAmbrElYCGbS4wNOu/S5BZ9ZCRIEKt6r+LHPoPqDRADM3isaV9NmsNkHGv9z2j +soigGzwKTjVMOmp+/65w +=gm1l -----END PGP SIGNATURE----- diff --git a/dev-lisp/sbcl/sbcl-1.1.18.ebuild b/dev-lisp/sbcl/sbcl-1.1.18.ebuild new file mode 100644 index 000000000000..2340c9652d57 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.1.18.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lisp/sbcl/sbcl-1.1.18.ebuild,v 1.1 2014/04/30 15:25:21 grozin Exp $ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.0.58 +BV_AMD64=1.1.18 +BV_PPC=1.0.28 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp." +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="debug doc source +threads +unicode zlib" + +CDEPEND=">=dev-lisp/asdf-2.33-r3:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 )" +RDEPEND="${CDEPEND} + elibc_glibc? ( >=sys-libs/glibc-2.3 || ( <sys-libs/glibc-2.6[nptl] >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-linux sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + epatch "${FILESDIR}"/gentoo-fix_linux-os-c.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test.patch + # bug #486552 + epatch "${FILESDIR}"/bsd-sockets-test.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + cp /usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -C "${bindir}"/src/runtime/sbcl + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/load/!s/^echo \/\/doing warm.*$/&\npaxctl -C \.\/src\/runtime\/sbcl\npaxctl -mprexs \.\/src\/runtime\/sbcl/' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${D}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${D}/usr" LIB_DIR="/usr/$(get_libdir)" DOC_DIR="${D}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # rm empty directories lest paludis complain about this + find "${D}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${D}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${D}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} |