132 lines
3.4 KiB
Bash
132 lines
3.4 KiB
Bash
# Template file for 'ruby'
|
|
_ruby_abiver=3.1.0
|
|
|
|
pkgname=ruby
|
|
version=3.1.2
|
|
revision=1
|
|
build_style=gnu-configure
|
|
configure_args="--enable-shared --disable-rpath
|
|
PKG_CONFIG=/usr/bin/pkg-config"
|
|
make_build_args="all capi"
|
|
hostmakedepends="pkg-config bison groff"
|
|
makedepends="zlib-devel readline-devel libffi-devel openssl-devel
|
|
gdbm-devel libyaml-devel pango-devel"
|
|
short_desc="Ruby programming language"
|
|
homepage="http://www.ruby-lang.org/en/"
|
|
maintainer="Leah Neukirchen <leah@vuxu.org>"
|
|
license="Ruby, BSD-2-Clause"
|
|
distfiles="https://cache.ruby-lang.org/pub/ruby/${version%.*}/${pkgname}-${version}.tar.xz"
|
|
checksum=ca10d017f8a1b6d247556622c841fc56b90c03b1803f87198da1e4fd3ec3bf2a
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
*-musl) # Broken on the builders but successfully built locally
|
|
# As a workaround disable all docs
|
|
configure_args+=" --disable-install-doc"
|
|
;;
|
|
*)
|
|
hostmakedepends+=" doxygen graphviz"
|
|
configure_args+=" DOXYGEN=/usr/bin/doxygen DOT=/usr/bin/dot"
|
|
;;
|
|
esac
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
arm*-musl) # Default is ucontext
|
|
configure_args+=" --with-coroutine=arm32"
|
|
;;
|
|
ppc64*) # Default is ucontext on BE, but ppc64le really just means ELFv2
|
|
configure_args+=" --with-coroutine=ppc64le"
|
|
;;
|
|
mips*-musl|ppc*-musl)
|
|
_need_libucontext=yes
|
|
makedepends+=" libucontext-devel"
|
|
configure_args+=" LIBS=-lucontext"
|
|
;;
|
|
esac
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
hostmakedepends+=" ruby"
|
|
fi
|
|
|
|
post_patch() {
|
|
# https://bugs.ruby-lang.org/issues/18373#note-8
|
|
find .bundle -name extconf.rb -exec \
|
|
sed -i \
|
|
-e '/create_makefile/i \$arch_hdrdir = "$(hdrdir)/../.ext/include/$(arch)"' \
|
|
-e '/create_makefile/i \$DLDFLAGS << " -L#{$top_srcdir}"' {} \;
|
|
|
|
[ "$XBPS_TARGET_LIBC" = "glibc" ] && return 0
|
|
|
|
echo "Patching out using binary gems for non-glibc..."
|
|
patch -sNp1 -i ${FILESDIR}/rubygems-avoid-platform-specific-gems.patch
|
|
}
|
|
|
|
pre_configure() {
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
ppc64le*) ;;
|
|
ppc*)
|
|
# Random segfaults otherwise
|
|
export CFLAGS+=" -Os"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
pre_build() {
|
|
# Set -fno-stack-protector for i686* or otherwise linking fails with
|
|
# ...: undefined reference to '__stack_chk_fail_local'
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
i686*) sed -i Makefile \
|
|
-e "s;-fstack-protector-strong;;" \
|
|
-e "s;-fstack-protector;-fno-stack-protector;"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
post_install() {
|
|
# Remove references to the cross compiler
|
|
if [ "$CROSS_BUILD" ]; then
|
|
vsed -e "s,${XBPS_CROSS_TRIPLET}-,,g" -i ${DESTDIR}/usr/lib/ruby/${_ruby_abiver}/*/rbconfig.rb
|
|
fi
|
|
# Replace reference to the install(1) wrapper
|
|
vsed -e "s,${XBPS_WRAPPERDIR},/usr/bin,g" -i \
|
|
${DESTDIR}/usr/lib/ruby/${_ruby_abiver}/*/rbconfig.rb
|
|
vlicense COPYING
|
|
}
|
|
|
|
ruby-devel-doc_package() {
|
|
short_desc+=" - HTML C API documentation files"
|
|
pkg_install() {
|
|
if [ -d "${DESTDIR}/usr/share/doc" ]; then
|
|
vmove usr/share/doc
|
|
else
|
|
vmkdir usr/share/doc/ruby
|
|
echo "Currently not available." > \
|
|
${PKGDESTDIR}/usr/share/doc/ruby/README
|
|
fi
|
|
}
|
|
}
|
|
|
|
ruby-devel_package() {
|
|
depends="ruby-${version}_${revision} gmp-devel"
|
|
if [ "$_need_libucontext" ]; then
|
|
depends+=" libucontext-devel"
|
|
fi
|
|
short_desc+=" - development files"
|
|
pkg_install() {
|
|
vmove usr/include
|
|
vmove usr/lib/ruby/${_ruby_abiver}/mkmf.rb
|
|
vmove usr/lib/pkgconfig
|
|
}
|
|
}
|
|
|
|
ruby-ri_package() {
|
|
depends="ruby-${version}_${revision}"
|
|
short_desc="Ruby Interactive reference"
|
|
pkg_install() {
|
|
vmove usr/bin/ri
|
|
if [ -d "${DESTDIR}/usr/share/ri" ]; then
|
|
vmove usr/share/ri
|
|
fi
|
|
vmove "usr/share/man/man1/ri*"
|
|
}
|
|
}
|