dev-scheme/racket: add personal and ::gentoo fixes
Package-Manager: Portage-3.0.18, Repoman-3.0.2 Signed-off-by: Maciej Barć <xgqt@riseup.net>
This commit is contained in:
parent
502f63d2cc
commit
9301ad2c63
@ -5,7 +5,24 @@
|
||||
<email>xgqt@protonmail.com</email>
|
||||
<name>Maciej Barć</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
Racket's interactive mode encourages experimentation, and quick scripts
|
||||
easily compose into larger systems. Small scripts and large systems both
|
||||
benefit from native-code JIT compilation. When a system gets too big to
|
||||
keep in your head, you can add static types.
|
||||
Extend Racket whenever you need to. Mold it to better suit your tasks
|
||||
without sacrificing interoperability with existing libraries and without
|
||||
having to modify the tool chain. When less is more, you can remove parts
|
||||
of a language or start over and build a new one.
|
||||
Whether you're just starting out, want to know more about programming
|
||||
language applications or models, looking to expand your horizons, or
|
||||
ready to dive into research, Racket can help you become a better
|
||||
programmer and system builder.
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="chez">
|
||||
Build Racket on Chez (Racket CS)
|
||||
</flag>
|
||||
<flag name="futures">
|
||||
Enable racket/future library for fine-grained hardware parallelism
|
||||
</flag>
|
||||
|
@ -12,45 +12,43 @@ SRC_URI="
|
||||
!minimal? ( https://download.racket-lang.org/installers/${PV}/${P}-src-builtpkgs.tgz )
|
||||
"
|
||||
|
||||
RESTRICT="mirror"
|
||||
LICENSE="GPL-3+ LGPL-3"
|
||||
# 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 )
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="X +doc +futures +graphics +jit minimal +places +readline +threads"
|
||||
REQUIRED_USE="
|
||||
X? ( graphics )
|
||||
futures? ( jit )
|
||||
"
|
||||
IUSE="X +chez +doc +futures +jit minimal +places +readline +threads"
|
||||
REQUIRED_USE="futures? ( jit )"
|
||||
|
||||
RDEPEND="
|
||||
DEPEND="
|
||||
!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?]
|
||||
x11-libs/cairo[X]
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/pango[X]
|
||||
x11-misc/shared-mime-info
|
||||
)
|
||||
readline? ( dev-libs/libedit )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
S="${WORKDIR}/${P}/src"
|
||||
|
||||
X_xdg_update() {
|
||||
if use X; then
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
fi
|
||||
}
|
||||
# BC library is being stripped unconditionally
|
||||
QA_PRESTRIPPED="/usr/lib64/libracket3m-8.0.so"
|
||||
|
||||
src_prepare() {
|
||||
unset PLTUSERHOME
|
||||
xdg_environment_reset
|
||||
|
||||
default
|
||||
|
||||
rm -r ./bc/foreign/libffi || die "failed to remove bundled libffi"
|
||||
@ -64,12 +62,12 @@ src_configure() {
|
||||
local myconf=(
|
||||
--disable-libs
|
||||
--disable-strip
|
||||
--docdir="${EPREFIX}"/usr/share/doc/${PF}
|
||||
--enable-bc
|
||||
--docdir="${EPREFIX}/usr/share/doc/${PF}"
|
||||
--enable-float
|
||||
--enable-foreign
|
||||
--enable-libffi
|
||||
--enable-shared
|
||||
$(usex chez "--enable-cs --enable-csonly" "--enable-bc --enable-bconly")
|
||||
$(use_enable X gracket)
|
||||
$(use_enable doc docs)
|
||||
$(use_enable jit)
|
||||
@ -81,21 +79,23 @@ src_configure() {
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if use jit; then
|
||||
if use jit && ! use chez; 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
|
||||
pushd ./bc || die
|
||||
emake cgc-core
|
||||
pax-mark m .libs/racketcgc
|
||||
pushd ./gc2
|
||||
|
||||
pushd ./gc2 || die
|
||||
emake all
|
||||
popd
|
||||
popd || die
|
||||
|
||||
pax-mark m .libs/racket3m
|
||||
popd
|
||||
popd || die
|
||||
fi
|
||||
|
||||
default
|
||||
@ -104,15 +104,7 @@ src_compile() {
|
||||
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
|
||||
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.
|
||||
@ -121,6 +113,7 @@ src_install() {
|
||||
pax-mark m "${D}/usr/bin/${f}"
|
||||
done
|
||||
|
||||
pax-mark m "${D}/usr/$(get_libdir)/racket/starter"
|
||||
use X && pax-mark m "${D}/usr/$(get_libdir)/racket/gracket"
|
||||
fi
|
||||
|
||||
@ -140,9 +133,15 @@ src_install() {
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
X_xdg_update
|
||||
if use X; then
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
X_xdg_update
|
||||
if use X; then
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
fi
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user