#!/usr/bin/env bash requirements_openindiana_lib_installed() { pkg info "$1" > /dev/null 2>&1 || return $? } requirements_openindiana_lib_available() { pkg info -r "$1" > /dev/null 2>&1 || return $? } requirements_openindiana_custom_lib_installed() { pkginfo -q "$1" || return $? } requirements_openindiana_libs_install() { __rvm_try_sudo pkg install "$@" || { \typeset ret=$? case $ret in (4) return 0 ;; # means the package does not need updates esac return $ret } } requirements_openindiana_update_system() { __rvm_try_sudo pkg refresh && __rvm_try_sudo pkg update || { \typeset ret=$? case $ret in (4) return 0 ;; # means nothing to install esac return $ret } } requirements_openindiana_check_custom() { for lib in "$@" do [[ " ${packages_custom[*]} " == *" $lib "* ]] || requirements_openindiana_custom_lib_installed "$lib" || __rvm_add_once packages_custom "$lib" done unset lib } requirements_openindiana_check_opencsw_enabled() { requirements_openindiana_custom_lib_installed CSWpkgutil || return $? } requirements_openindiana_enable_opencsw() { __rvm_try_sudo pkgadd -a $rvm_path/config/solaris/noask -d https://get.opencsw.org/now CSWpkgutil > /dev/null 2>&1 || return $? } requirements_openindiana_install_custom() { requirements_openindiana_check_opencsw_enabled || requirements_openindiana_enable_opencsw __rvm_try_sudo /opt/csw/bin/pkgutil -iy "$@" -t https://mirror.opencsw.org/opencsw/unstable || return $? } requirements_openindiana_after() { # https://www.illumos.org/issues/782 if ! __rvm_which automake >/dev/null 2>&1 && __rvm_which /usr/bin/automake-1.10 >/dev/null 2>&1 then ln -s /usr/bin/automake-1.10 "${rvm_bin_path}"/automake fi if ! __rvm_which aclocal >/dev/null 2>&1 && __rvm_which /usr/bin/aclocal-1.10 >/dev/null 2>&1 then ln -s /usr/bin/aclocal-1.10 "${rvm_bin_path}"/aclocal fi } requirements_openindiana_define() { case "$1" in (rvm) requirements_check bash curl text/gnu-patch ;; (jruby*) requirements_check make jdk if is_head_or_disable_binary "$1" then requirements_check git case $( jruby_installation_method "$1" ) in ant) requirements_check apache-ant ;; mvn) requirements_check_custom_after mvn=maven ;; esac fi ;; (ir*) requirements_check mono ;; (opal) requirements_check runtime/javascript/nodejs ;; (*-head) requirements_check git requirements_openindiana_define "${1%-head}" ;; (*) requirements_check_fallback \ developer/gcc47 developer/gcc-47 \ developer/gcc46 developer/gcc-46 \ developer/gcc44 developer/gcc-43 developer/gcc/gcc-43 requirements_check_fallback \ developer/build/automake \ developer/build/automake-111 \ developer/build/automake-110 requirements_check \ text/gnu-patch system/header developer/build/autoconf \ developer/build/libtool system/library/math/header-math \ file/gnu-coreutils developer/object-file developer/build/gnu-make requirements_openindiana_check_custom CSWlibyaml-dev __rvm_update_configure_opt_dir "$1" "/opt/csw" ;; esac } requirements_openindiana_after() { if is_a_function requirements_openindiana_after_${_system_name} then requirements_openindiana_after_${_system_name} || return $? else requirements_openindiana_after_Other || return $? fi } requirements_openindiana_after_OmniOS() { case "${packages_installed[*]}" in (*developer/gcc47*) __rvm_update_configure_env CC="/opt/gcc-4.7.2/bin/gcc" ;; (*developer/gcc-3*) __rvm_update_configure_env CC="/usr/sfw/bin/gcc" ;; (*) return 1 ;; esac } requirements_openindiana_after_Other() { case "${packages_installed[*]}" in (*developer/gcc47*|*developer/gcc-47*) __rvm_update_configure_env CC="/usr/gcc/4.7/bin/gcc" ;; (*developer/gcc46*|*developer/gcc-46*) __rvm_update_configure_env CC="/usr/gcc/4.6/bin/gcc" ;; (*developer/gcc44*) __rvm_update_configure_env CC="/usr/gcc/4.4/bin/gcc" ;; (*developer/gcc-43*|*developer/gcc/gcc-43*) __rvm_update_configure_env CC="/usr/gcc/4.3/bin/gcc" ;; (*) return 1 ;; esac } requirements_omnios_before() { __lib_type=openindiana }