From fa4478808fd51e36ba96e59a11514779f609ef86 Mon Sep 17 00:00:00 2001 From: Maciej Barć Date: Fri, 3 Dec 2021 17:36:44 +0100 Subject: dev-scheme/racket: bump to 8.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Maciej Barć --- dev-scheme/racket/Manifest | 2 + dev-scheme/racket/racket-8.3.ebuild | 166 ++++++++++++++++++++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 dev-scheme/racket/racket-8.3.ebuild diff --git a/dev-scheme/racket/Manifest b/dev-scheme/racket/Manifest index 13a7c36e953e..faf44781e93f 100644 --- a/dev-scheme/racket/Manifest +++ b/dev-scheme/racket/Manifest @@ -1,2 +1,4 @@ DIST racket-8.2-src-builtpkgs.tgz 150467561 BLAKE2B 5005aa852b089becd9d6da136a55a035ac5fd86bd1ad186ec30cdcf411927d444e1814797d63dbde3eb7b52bba7756e0464edf1d854d2ee7f5851caaae18ba55 SHA512 9e4c0cabfcbdb8c8742e8170548bee58021697e8b0842f575f94193db31adc04a7b9023ed8fd70dae197e5ec6f1aee7985d849be3ce5b4279f216e900ee143c7 +DIST racket-8.3-src-builtpkgs.tgz 150608486 BLAKE2B f002934c07afab4152ad8395c4ab5c6c87ef810f5cf79cf5ae0b41f4caa4508e0044f4246812513def14130d507af57aa61efaff8106eaeac0b86918bd775902 SHA512 7c340f65d221343beb2b4205cdc58648bd65dceabdb16f40cda425474faa905f4dd441193dc6cd4856f7863fb83834721394d6888027db356f830eceb127dbae DIST racket-minimal-8.2-src-builtpkgs.tgz 21187959 BLAKE2B 0f62a900e71ee101fa3acf0985b0a72215ac657285c5ce9e4f5f49189180b82dcca94ded9778b7ba92a42919f17b1dc24eec07e13c64c77e47fc958614d7dc0a SHA512 04950703fa73cdbbb10c234d57c89e70db6076b42d4a74ddb8cace9e0438b9a1431f7317baf31d667368ad75ae19e4eecec39667ba0c5b08a3580f8cc81f4f5e +DIST racket-minimal-8.3-src-builtpkgs.tgz 21212037 BLAKE2B 76a742efe7ba2c44eb935d4852c20be355ccff9b935b39226ef1935184b0a9179ef6ca2ac0a64f3c7a6ae4a0082117a12c668d7804a0b73b9f1a391eaba61994 SHA512 3cab4a24cab5c1ac107c8aead2ada6fa3ec7d7aa122716c78af584f055dadf89497168e95b36d99115ecd1a1905dc1ec51774dd2c8099198ec7d6aa9d380039d diff --git a/dev-scheme/racket/racket-8.3.ebuild b/dev-scheme/racket/racket-8.3.ebuild new file mode 100644 index 000000000000..c767ef23e92c --- /dev/null +++ b/dev-scheme/racket/racket-8.3.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit desktop optfeature 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 ) +" +S="${WORKDIR}/${P}/src" + +# See https://blog.racket-lang.org/2019/11/completing-racket-s-relicensing-effort.html +LICENSE=" + || ( MIT Apache-2.0 ) + chez? ( Apache-2.0 ) + !chez? ( LGPL-3 ) +" +# Bytecode generated by Racket is not compatible between versions. +# The bytecode version should be denoted by SLOT, in most cases +# PV == SLOT but this has to be checked carefully and in cases +# where we use _p, _pre, etc it will have to be set manually. +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" +IUSE="X +chez +doc +futures +jit minimal +places +threads" +# See bug #809785 re chez/threads +REQUIRED_USE="futures? ( jit threads ) chez? ( threads ) places? ( threads )" + +DEPEND=" + !dev-tex/slatex + dev-db/sqlite:3 + dev-libs/libffi:= + X? ( + dev-util/desktop-file-utils + media-libs/libpng:0 + virtual/jpeg:0 + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/pango[X] + x11-misc/shared-mime-info + ) +" +RDEPEND="${DEPEND}" + +# "mred" and "mzscheme" are binaries generated by Racket, not CC +QA_FLAGS_IGNORED="usr/bin/mred usr/bin/mzscheme" + +# Package database files +PKGDB=( + /usr/share/racket/info-cache.rktd + /usr/share/racket/links.rktd + /usr/share/racket/pkgs/pkgs.rktd +) + +post_X_update() { + if use X && ! use minimal; then + xdg_desktop_database_update + xdg_icon_cache_update + fi +} + +src_prepare() { + # Prepare environment + unset PLTADDONDIR PLTCOLLECTS PLTCONFIGDIR PLTUSERHOME + xdg_environment_reset + + default + + # Remove bundled libffi + rm -r ./bc/foreign/libffi || die "failed to remove bundled libffi" +} + +src_configure() { + # Libtool: + # 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 + # Backend: + # --enable-bc builds Racket w/o chez backend + # C Libraries: + # --enable-libs & --disable-shared is the way to build + # .a files that are needed to embed Racket into programs + # https://docs.racket-lang.org/inside/cs-embedding.html + local myconf=( + --disable-shared + --disable-strip + --docdir="${EPREFIX}/usr/share/doc/${PF}" + --enable-float + --enable-foreign + --enable-libffi + --enable-libs + $(usex chez "--enable-cs --enable-csonly" "--enable-bc --enable-bconly") + $(use_enable X gracket) + $(use_enable doc docs) + $(use_enable futures) + $(use_enable jit) + $(use_enable places) + $(use_enable threads pthread) + ) + econf "${myconf[@]}" +} + +src_install() { + default + + # Install Racket boot files + if use chez; then + pushd "${S}"/cs/c || die + emake DESTDIR="${ED}" unix-install-boot-files + popd || die + fi + + # raco needs decompressed files for packages doc installation bug 662424 + if use doc; then + docompress -x /usr/share/doc/${PF} + fi + + # Create missing desktop files and icon + if use X && ! use minimal; then + newicon "${ED}/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_preinst() { + # If we are merging the same SLOT check if package + # database files exist and do not overwrite them + if has_version "${CATEGORY}/${PN}:${SLOT}"; then + echo "We are installing the same SLOT: ${SLOT}" + local rktd + for rktd in "${PKGDB[@]}"; do + if [[ -f "${EROOT}/${rktd}" ]]; then + einfo "Keeping old file: ${rktd}" + mv "${ED}"/${rktd} "${ED}"/${rktd}.bak || + die "failed to create a backup of ${rktd}" + cp "${EROOT}"/${rktd} "${ED}"/${rktd} || + die "failed to create a copy of ${rktd}" + fi + done + fi +} + +pkg_postinst() { + post_X_update + + optfeature "readline editing features in REPL" dev-libs/libedit sys-libs/readline + optfeature "generating PDF files using Scribble" dev-texlive/texlive-fontsextra +} + +pkg_postrm() { + post_X_update +} + +pkg_config() { + einfo "Swapping package database backup files" + + for rktd in "${PKGDB[@]}"; do + mv "${EROOT}"/${rktd} "${EROOT}"/${rktd}.pkg_config || die + mv "${EROOT}"/${rktd}.bak "${EROOT}"/${rktd} || die + mv "${EROOT}"/${rktd}.pkg_config "${EROOT}"/${rktd}.bak || die + done +} -- cgit v1.2.3-65-gdbad