diff --git a/dev-scheme/racket/Manifest b/dev-scheme/racket/Manifest index 039ccad..2f1666a 100644 --- a/dev-scheme/racket/Manifest +++ b/dev-scheme/racket/Manifest @@ -1,4 +1,6 @@ DIST racket-7.7-src-builtpkgs.tgz 148403219 BLAKE2B 6f68fc680ca12e09c9f4399bb26dd87a4bfb3d1d05370555300e460a23ea390d02a3ae74e7d227eb0b140d49c9a3a9de2c2502313a09f9cef49103592eeae58b SHA512 9537f3b3d3e7955f4935b64b4d447bf14b2e1c1a2fb7486327ecb7ebf11aa58d531b7f2f72916742752b7e174b429cb446a059a7e535c1450a175302507ec3ea DIST racket-7.8-src-builtpkgs.tgz 148635095 BLAKE2B ad944f6c269746dbe1301f029824949a1de6a81f908da75f1803eedf1c0b2aeb2bca9a263ea3d328081dddd69339089b7287f289036fadf05aea2a74b561da5b SHA512 8d0442aa73511a9d29827d0bb2481f6eef2d9ec3f3f68a7fdf1f88adc07891f623d7db388d494c26e884fe3bfcc5463444ea5bb4cc54e54989a73802ac216dca +DIST racket-8.0-src-builtpkgs.tgz 153847792 BLAKE2B dba1b39e770954e5971689f6d2b413f1aadc6176822e4400b40b41ebf7eab00cc34b5e5158f38d1a1d8caa98fa260ef10864794dc0d4768e2ea5b2ad869d0102 SHA512 df3e14ccdba00eb4de113693a6eee22e640958b074f3ad4946e5900333fbf558c4c2653f65a89f638f6ef173d32c9f97b19349360a9d4afca82365aceb43c911 DIST racket-minimal-7.7-src-builtpkgs.tgz 21239831 BLAKE2B 6450ba93e65c15350a4a5790852c6a2be5311fcaf803b355c310ba6709f4869d305a8a36aec6c03883f639d0737cbc0be4222e4ef1eb9639ba38da902f46e65e SHA512 aaad81e48a3b28c3023bcb9aeb18a4a2d4214a3a7b5c34c4a52e1b5dc5d0afdfb4976c2d2e1a17f109ff700970e377ef336b6b1ab23e4b9930492a9e9e37619c DIST racket-minimal-7.8-src-builtpkgs.tgz 21202793 BLAKE2B e3ae69b31d4a5984e51a0da158e9cf09be6670e5a63dd38aa124175000b4b4a133b9d2f592d7fc2816f8d1d79ff1bc6e7a73f9f7c8ee7af3d5c6f94844022eaa SHA512 da4eabaa3e76fa56b611b4159628744ad427f406af8c6a3db27ca0fd33953a033c6f40eb497bf375bb2551eb11ccd29d413ba413baab2e10a4801485fa17d826 +DIST racket-minimal-8.0-src-builtpkgs.tgz 24065953 BLAKE2B 2af056758660d30f7d232dabe03d544e5e77478df71389df883b8af956fe224332048eac3a351fdb905051e3ef99b08bd0e0f1704e04919a4a2e68f8005922b8 SHA512 1e43b390f6a4c1405df0872c71c27638ec35a8cdd8508390db13bd59a43f5a4728f0660fe1afb5785f625d31fd25cdc1a6ecb9972daf99bcb538f7204956dabc diff --git a/dev-scheme/racket/racket-8.0.ebuild b/dev-scheme/racket/racket-8.0.ebuild new file mode 100644 index 0000000..b1793ff --- /dev/null +++ b/dev-scheme/racket/racket-8.0.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit desktop pax-utils xdg-utils + +DESCRIPTION="General purpose, multi-paradigm Lisp-Scheme programming language" +HOMEPAGE="https://racket-lang.org/" +SRC_URI=" + minimal? ( https://download.racket-lang.org/installers/${PV}/${PN}-minimal-${PV}-src-builtpkgs.tgz ) + !minimal? ( https://download.racket-lang.org/installers/${PV}/${P}-src-builtpkgs.tgz ) +" + +RESTRICT="mirror" +LICENSE="GPL-3+ LGPL-3" +SLOT="0" +KEYWORDS="~amd64" +IUSE="X +doc +futures +graphics +jit minimal +places +readline +threads" +REQUIRED_USE=" + X? ( graphics ) + futures? ( jit ) +" + +RDEPEND=" + !dev-tex/slatex + dev-db/sqlite:3 + dev-libs/libffi + X? ( + dev-util/desktop-file-utils + x11-libs/gtk+:3[X] + x11-misc/shared-mime-info + ) + graphics? ( + media-libs/libpng:0 + virtual/jpeg:0 + x11-libs/cairo[X?] + x11-libs/pango[X?] + ) + readline? ( dev-libs/libedit ) +" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/${P}/src" + +X_xdg_update() { + if use X; then + xdg_desktop_database_update + xdg_icon_cache_update + fi +} + +src_prepare() { + default + + rm -r ./bc/foreign/libffi || die "failed to remove bundled libffi" +} + +src_configure() { + # According to vapier, we should use the bundled libtool + # such that we don't preclude cross-compile. + # Thus don't use --enable-lt=/usr/bin/libtool + # --enable-bc builds Racket w/o chez backend + local myconf=( + --disable-libs + --disable-strip + --docdir="${EPREFIX}"/usr/share/doc/${PF} + --enable-bc + --enable-float + --enable-foreign + --enable-libffi + --enable-shared + $(use_enable X gracket) + $(use_enable doc docs) + $(use_enable jit) + $(use_enable places) + $(use_enable futures) + $(use_enable threads pthread) + ) + econf "${myconf[@]}" +} + +src_compile() { + if use jit; then + # When the JIT is enabled, a few binaries need to be pax-marked + # on hardened systems (bug 613634). The trick is to pax-mark + # them before they're used later in the build system. The + # following order for racketcgc and racket3m was determined by + # digging through the Makefile in src/racket to find out which + # targets would build those binaries but not use them. + pushd ./bc + emake cgc-core + pax-mark m .libs/racketcgc + pushd ./gc2 + emake all + popd + pax-mark m .libs/racket3m + popd + fi + + default +} + +src_install() { + default + + # bin -> binbc ; remove this when we use Chez + pushd "${D}/usr/bin" + for b in *bc; do + ln -s "${b}" "${b%bc*}" + done + popd + + if use jit + then + # The final binaries need to be pax-marked, too, if you want to + # actually use them. The src_compile marking get lost somewhere + # in the install process. + local f + for f in mred mzscheme racket; do + pax-mark m "${D}/usr/bin/${f}" + done + + use X && pax-mark m "${D}/usr/$(get_libdir)/racket/gracket" + fi + + # raco needs decompressed files for packages doc installation bug 662424 + if use doc; then + docompress -x "/usr/share/doc/${PF}" + fi + + find "${ED}" \( -name "*.a" -o -name "*.la" \) -delete || die + + # Create missing desktop files + if use X; then + newicon "${D}/usr/share/racket/drracket-exe-icon.png" "racket.png" + make_desktop_entry "gracket" "GRacket" "racket" "Development;Education;" + make_desktop_entry "plt-games" "PLT Games" "racket" "Education;Game;" + fi +} + +pkg_postinst() { + X_xdg_update +} + +pkg_postrm() { + X_xdg_update +}