| # Maintainer: Alexey Pavlov <alexpux@gmail.com> |
| |
| # Before building package need CD into directory with drive letter, like |
| # cd /c/build/mingw-w64-ruby |
| |
| # be sure to run the updpkgprovs and rebuild. This is to get the propper version |
| # of the ruby gems that were bundled. |
| |
| _realname=ruby |
| pkgbase=mingw-w64-${_realname} |
| pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" |
| pkgver=3.0.1 |
| pkgrel=3 |
| pkgdesc="An object-oriented language for quick and easy programming (mingw-w64)" |
| arch=('any') |
| mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') |
| url="https://www.ruby-lang.org/en" |
| license=("BSD, custom") |
| makedepends=("${MINGW_PACKAGE_PREFIX}-doxygen" |
| "${MINGW_PACKAGE_PREFIX}-pkg-config" |
| $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || \ |
| echo "${MINGW_PACKAGE_PREFIX}-graphviz")) |
| depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" |
| "${MINGW_PACKAGE_PREFIX}-gdbm" |
| "${MINGW_PACKAGE_PREFIX}-libyaml" |
| "${MINGW_PACKAGE_PREFIX}-libffi" |
| "${MINGW_PACKAGE_PREFIX}-pdcurses" |
| "${MINGW_PACKAGE_PREFIX}-openssl" |
| "${MINGW_PACKAGE_PREFIX}-tk") |
| options=('staticlibs' 'strip') |
| source=("https://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/${_realname}-${pkgver}.tar.gz" |
| 0001-mingw-w64-time-functions.patch |
| 0003-fix-check-types.patch |
| 0004-rbinstall-destdir.patch |
| 0005-rbinstall-rake-bash.patch |
| 0006-autoconf-set-msvcrt-ver-for-ucrt.patch) |
| ## Populated by the updpkgprovs script |
| provides=( |
| "${MINGW_PACKAGE_PREFIX}-ruby-minitest=5.14.2" |
| "${MINGW_PACKAGE_PREFIX}-ruby-power_assert=1.2.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-rake=13.0.3" |
| "${MINGW_PACKAGE_PREFIX}-ruby-rbs=1.0.4" |
| "${MINGW_PACKAGE_PREFIX}-ruby-rexml=3.2.5" |
| "${MINGW_PACKAGE_PREFIX}-ruby-rss=0.2.9" |
| "${MINGW_PACKAGE_PREFIX}-ruby-test-unit=3.3.7" |
| "${MINGW_PACKAGE_PREFIX}-ruby-typeprof=0.12.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-abbrev=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-base64=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-benchmark=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-bigdecimal=3.0.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-bundler=2.2.15" |
| "${MINGW_PACKAGE_PREFIX}-ruby-cgi=0.2.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-csv=3.1.9" |
| "${MINGW_PACKAGE_PREFIX}-ruby-date=3.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-dbm=1.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-debug=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-delegate=0.2.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-did_you_mean=1.5.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-digest=3.0.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-drb=2.0.4" |
| "${MINGW_PACKAGE_PREFIX}-ruby-english=0.7.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-erb=2.2.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-etc=1.2.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-fcntl=1.0.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-fiddle=1.0.6" |
| "${MINGW_PACKAGE_PREFIX}-ruby-fileutils=1.5.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-find=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-forwardable=1.3.2" |
| "${MINGW_PACKAGE_PREFIX}-ruby-gdbm=2.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-getoptlong=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-io-console=0.5.7" |
| "${MINGW_PACKAGE_PREFIX}-ruby-io-nonblock=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-io-wait=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-ipaddr=1.2.2" |
| "${MINGW_PACKAGE_PREFIX}-ruby-irb=1.3.5" |
| "${MINGW_PACKAGE_PREFIX}-ruby-json=2.5.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-logger=1.4.3" |
| "${MINGW_PACKAGE_PREFIX}-ruby-matrix=0.3.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-mutex_m=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-net-ftp=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-net-http=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-net-imap=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-net-pop=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-net-protocol=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-net-smtp=0.2.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-nkf=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-observer=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-open-uri=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-open3=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-openssl=2.2.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-optparse=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-ostruct=0.3.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-pathname=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-pp=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-prettyprint=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-prime=0.1.2" |
| "${MINGW_PACKAGE_PREFIX}-ruby-pstore=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-psych=3.3.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-racc=1.5.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-rdoc=6.3.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-readline-ext=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-readline=0.0.2" |
| "${MINGW_PACKAGE_PREFIX}-ruby-reline=0.2.5" |
| "${MINGW_PACKAGE_PREFIX}-ruby-resolv-replace=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-resolv=0.2.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-rinda=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-securerandom=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-set=1.0.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-shellwords=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-singleton=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-stringio=3.0.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-strscan=3.0.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-tempfile=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-time=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-timeout=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-tmpdir=0.1.2" |
| "${MINGW_PACKAGE_PREFIX}-ruby-tracer=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-tsort=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-un=0.1.0" |
| "${MINGW_PACKAGE_PREFIX}-ruby-uri=0.10.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-weakref=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-win32ole=1.8.8" |
| "${MINGW_PACKAGE_PREFIX}-ruby-yaml=0.1.1" |
| "${MINGW_PACKAGE_PREFIX}-ruby-zlib=1.1.0" |
| ) |
| ## End of pkgupdprovs modifications |
| |
| sha256sums=('369825db2199f6aeef16b408df6a04ebaddb664fb9af0ec8c686b0ce7ab77727' |
| '329994d3bf7e692e18c1faffbedfbd076e5d00257b2100387a773b59b81ccd4e' |
| 'cbb083aece8e284fb1ae625e689f044a608aa9750bba9f7d399e895547eee39b' |
| '02382ec3b9e42d7dbb58edad3e41c361d98871711bb2f0320082c2acc6a82e2e' |
| '9fb5acb995255eedde0f0b0bf5cf2c02f00dc088d2538ff9ebb69627aafd1e42' |
| '0af38d2c4e2cd2cd7ec20ed19ed9b2641946a6c9f0289160340e92eef4c70c26') |
| noextract=(${_realname}-${pkgver}.tar.gz) |
| |
| apply_patch_with_msg() { |
| for _patch in "$@" |
| do |
| msg2 "Applying $_patch" |
| patch -Nbp1 -i "${srcdir}/$_patch" |
| done |
| } |
| |
| del_file_exists() { |
| for _fname in "$@" |
| do |
| if [ -f $_fname ]; then |
| rm -rf $_fname |
| fi |
| done |
| } |
| # =========================================== # |
| |
| |
| prepare() { |
| [[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver} |
| tar -xzf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} || true |
| |
| cd ${srcdir}/${_realname}-${pkgver} |
| # Pthread disabled in ruby configure for mingw |
| # 0001-mingw-w64-time-functions.patch |
| apply_patch_with_msg \ |
| 0003-fix-check-types.patch \ |
| 0005-rbinstall-rake-bash.patch |
| # patch -p1 -i ${srcdir}/0004-rbinstall-destdir.patch |
| |
| # Set msvcrt version to 140 which brings hidden ucrt I/O structs |
| if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || \ |
| [[ ${MINGW_PACKAGE_PREFIX} == *-ucrt-* ]]; then |
| patch -Nbp1 -i "${srcdir}/0006-autoconf-set-msvcrt-ver-for-ucrt.patch" |
| fi |
| |
| autoreconf -fi |
| } |
| |
| build() { |
| |
| local FFI_INC=$(pkg-config --cflags libffi) |
| CPPFLAGS+=" -DFD_SETSIZE=2048 ${FFI_INC} -I${MINGW_PREFIX}/include/pdcurses" |
| CFLAGS+=" -I${MINGW_PREFIX}/include/pdcurses ${FFI_INC}" |
| CXXFLAGS+=" -I${MINGW_PREFIX}/include/pdcurses ${FFI_INC}" |
| |
| if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then |
| CFLAGS+=" -Wno-unknown-attributes" |
| CXXFLAGS+=" -Wno-unknown-attributes" |
| fi |
| |
| [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" |
| mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" |
| ../${_realname}-${pkgver}/configure \ |
| --prefix=${MINGW_PREFIX} \ |
| --build=${MINGW_CHOST} \ |
| --host=${MINGW_CHOST} \ |
| --target=${MINGW_CHOST} \ |
| --disable-werror |
| make |
| } |
| |
| check() { |
| cd "${srcdir}/build-${MINGW_CHOST}" |
| make test || true |
| } |
| |
| package() { |
| cd "${srcdir}/build-${MINGW_CHOST}" |
| make DESTDIR="${pkgdir}" install-nodoc |
| for script in {erb,gem,irb,rdoc,ri}; do |
| install ${srcdir}/ruby-${pkgver}/bin/${script} \ |
| ${pkgdir}${MINGW_PREFIX}/bin/ |
| done |
| local PREFIX_WIN |
| # fixup rake.bat so that it can be invoked from "cmd" |
| PREFIX_WIN=$(cygpath -wm ${pkgdir}${MINGW_PREFIX}) |
| sed -e "s|\\\|/|g" -e "s|${MINGW_PREFIX}/bin/ruby.exe|ruby.exe|g" \ |
| -e "s|${PREFIX_WIN}/bin/rake|rake|g" -i "${pkgdir}${MINGW_PREFIX}/bin/rake.bat" |
| |
| install -D -m644 ${srcdir}/${_realname}-${pkgver}/COPYING \ |
| "${pkgdir}${MINGW_PREFIX}/share/licenses/ruby/LICENSE" |
| install -D -m644 ${srcdir}/${_realname}-${pkgver}/BSDL \ |
| "${pkgdir}${MINGW_PREFIX}/share/licenses/ruby/BSDL" |
| } |