build_style: Add gem build_style
This commit is contained in:
parent
e7dc19bbea
commit
49e11e1ca5
|
@ -781,6 +781,11 @@ with the character `r` in the `version` variable. The `distfiles`
|
|||
location will automatically be set as well as the package made to depend
|
||||
on `R`.
|
||||
|
||||
- `gem` For packages that are installed using gems from [RubyGems](https://rubygems.org/).
|
||||
The gem command can be overridden by `gem_cmd`. `noarch` is set unconditionally and `distfiles`
|
||||
is set by the build style if the template does not do so. If your gem provides extensions which
|
||||
must be compiled consider using the `gemspec` build style instead.
|
||||
|
||||
- `ruby-module` For packages that are ruby modules and are installable via `ruby install.rb`.
|
||||
Additional install arguments can be specified via `make_install_args`.
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
#
|
||||
# This helper is for templates using gem files from RubyGems.
|
||||
#
|
||||
do_install() {
|
||||
: ${gem_cmd:=gem}
|
||||
|
||||
local _GEMDIR _INSTDIR
|
||||
|
||||
_GEMDIR=$($gem_cmd env gemdir)
|
||||
_INSTDIR=${DESTDIR}/${_GEMDIR}/gems/${pkgname#ruby-}-${version}
|
||||
|
||||
$gem_cmd install \
|
||||
--local \
|
||||
--install-dir ${DESTDIR}/${_GEMDIR} \
|
||||
--bindir ${DESTDIR}/usr/bin \
|
||||
--ignore-dependencies \
|
||||
--no-document \
|
||||
--verbose \
|
||||
${XBPS_SRCDISTDIR}/${pkgname}-${version}/${pkgname#ruby-}-${version}.gem
|
||||
|
||||
# Remove cache
|
||||
rm -rf ${DESTDIR}/${_GEMDIR}/cache
|
||||
|
||||
# Remove ext directory. they are only source code and configuration
|
||||
# The actual extensions are guarded in an arch path
|
||||
rm -rf ${_INSTDIR}/ext
|
||||
|
||||
# Remove installed tests and benchmarks
|
||||
rm -rf ${_INSTDIR}/{test,tests,autotest,benchmark,benchmarks,script,examples,demo}
|
||||
|
||||
# Remove files shipped on the root of the gem, most of the time they are useless
|
||||
find ${_INSTDIR} -maxdepth 1 -type f -delete
|
||||
|
||||
# Remove unnecessary files
|
||||
find ${DESTDIR}/${_GEMDIR}/extensions \( -name mkmf.log -o -name gem_make.out \) -delete
|
||||
|
||||
# Place manpages in usr/share/man/man[0-9]
|
||||
find ${_INSTDIR}/man -type f -name '*.[0-8n]' | while read -r m; do
|
||||
vman ${m}
|
||||
done
|
||||
|
||||
rm -rf "${_INSTDIR}/man"
|
||||
|
||||
# Place executables in /usr/bin
|
||||
if [ -d "${_INSTDIR}/bin" ]; then
|
||||
for f in "${_INSTDIR}"/bin/*; do
|
||||
vbin "${f}"
|
||||
done
|
||||
fi
|
||||
|
||||
rm -rf ${_INSTDIR}/bin
|
||||
|
||||
# Place conf files in their places
|
||||
find ${_INSTDIR}/etc -type f | while read -r c; do
|
||||
vmkdir $(dirname ${c##*${_INSTDIR}})
|
||||
mv ${c} "${DESTDIR}/${c##*${_INSTDIR}}"
|
||||
done
|
||||
|
||||
rm -rf ${_INSTDIR}/etc
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
lib32disabled=yes
|
||||
hostmakedepends+=" ruby"
|
||||
depends+=" ruby"
|
||||
noarch=yes
|
||||
|
||||
# default to rubygems
|
||||
if [ -z "$distfiles" ]; then
|
||||
distfiles="https://rubygems.org/downloads/${pkgname#ruby-}-${version}.gem"
|
||||
fi
|
Loading…
Reference in New Issue