123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- #!/usr/bin/env bash
- requirements_solaris_lib_installed()
- {
- pkg info "$1" > /dev/null 2>&1 || return $?
- }
- requirements_solaris_lib_available()
- {
- pkg search "$1" 2>/dev/null | __rvm_grep "^$1-" > /dev/null 2>&1 || return $?
- }
- requirements_solaris_custom_lib_installed()
- {
- pkginfo -q "$1" || return $?
- }
- requirements_solaris_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_solaris_update_system()
- {
- case "${_system_version}" in
- (10)
- return 0
- ;;
- (*)
- __rvm_try_sudo pkg refresh ||
- {
- \typeset ret=$?
- case $ret in
- (4) return 0 ;; # means nothing to install
- esac
- return $ret
- }
- ;;
- esac
- }
- requirements_solaris_check_custom()
- {
- for lib in "$@"
- do
- [[ " ${packages_custom[*]} " == *" $lib "* ]] ||
- requirements_solaris_custom_lib_installed "$lib" || __rvm_add_once packages_custom "$lib"
- done
- unset lib
- }
- requirements_solaris_check_opencsw_enabled()
- {
- requirements_solaris_custom_lib_installed CSWpkgutil || return $?
- }
- requirements_solaris_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_solaris_install_custom()
- {
- requirements_solaris_check_opencsw_enabled || requirements_solaris_enable_opencsw
- __rvm_try_sudo /opt/csw/bin/pkgutil -iy "$@" -t https://mirror.opencsw.org/opencsw/unstable || return $?
- }
- requirements_solaris_define()
- {
- if
- is_a_function requirements_solaris_${_system_version}_define
- then
- requirements_solaris_${_system_version}_define "$@" || return $?
- else
- rvm_error "Solaris ${_system_version} is not supported"
- return 40
- fi
- }
- requirements_solaris_11_update_after()
- {
- __rvm_try_sudo pkg update "${packages_installed[@]}" ||
- {
- \typeset ret=$?
- case $ret in
- (4) return 0 ;; # means nothing to install
- esac
- return $ret
- }
- }
- requirements_solaris_after()
- {
- case "${_system_version}" in
- (10)
- return 0
- ;;
- (*)
- if
- [[ -n "${packages_installed[*]}" ]]
- then
- rvm_requiremnts_fail_or_run_action 3 \
- "Updating installed packages: ${packages_installed[*]}" \
- requirements_solaris_11_update_after ||
- return $?
- fi
- ;;
- esac
- }
- requirements_solaris_10_define()
- {
- case "$1" in
- (rvm)
- requirements_solaris_check_custom CSWbash CSWgit CSWgpatch CSWmd5deep CSWwhich
- ;;
- (jruby-head*)
- requirements_solaris_check_custom git make
- ;;
- (jruby*)
- # JDK is already installed on Solaris 10
- # TODO: is ant installed also?
- requirements_solaris_check_custom make
- if
- is_head_or_disable_binary "$1"
- then
- requirements_solaris_check_custom git
- case $( jruby_installation_method "$1" ) in
- mvn) requirements_check_custom_after mvn=maven ;;
- esac
- fi
- ;;
- (ir*)
- # No support
- true
- ;;
- (opal)
- # No support
- true
- ;;
- (*-head)
- requirements_solaris_check_custom CSWgpatch CSWgcc4core CSWgmake CSWcoreutils CSWpkgconfig CSWautoconf CSWautomake CSWlibtool CSWlibyaml-dev CSWlibreadline-dev CSWlibncurses-dev CSWlibssl-dev CSWcurl CSWgit
- __rvm_update_configure_opt_dir "$1" "/opt/csw"
- ;;
- (*)
- requirements_solaris_check_custom CSWgpatch CSWgcc4core CSWgmake CSWcoreutils CSWpkgconfig CSWautoconf CSWautomake CSWlibtool CSWlibyaml-dev CSWlibreadline-dev CSWlibncurses-dev CSWlibssl-dev CSWcurl
- __rvm_update_configure_opt_dir "$1" "/opt/csw"
- ;;
- esac
- }
- requirements_solaris_11_define()
- {
- case "$1" in
- (rvm)
- requirements_check bash curl text/gnu-patch
- requirements_check_fallback git scmgit-base
- ;;
- (jruby*)
- # This will fail with the message
- ## To indicate that you agree to and accept the terms of the licenses of the packages listed above, use the --accept option.
- ## To display all of the related licenses, use the --licenses option.
- # Need to handle this somehow
- if
- is_head_or_disable_binary "$1"
- then
- requirements_check jdk
- requirements_check_fallback git scmgit-base
- case $( jruby_installation_method "$1" ) in
- ant) requirements_check ant ;;
- mvn) requirements_check_custom_after mvn=maven ;;
- esac
- else
- requirements_check jdk
- fi
- ;;
- (ir*)
- # No support
- true
- ;;
- (opal)
- # No support
- true
- ;;
- (*-head)
- requirements_check_fallback git scmgit-base
- requirements_check text/gnu-patch developer/gcc-45 system/header developer/build/autoconf developer/build/automake developer/build/libtool system/library/math/header-math file/gnu-coreutils
- requirements_solaris_check_custom CSWlibyaml-dev
- __rvm_update_configure_opt_dir "$1" "/opt/csw"
- ;;
- (*)
- requirements_check text/gnu-patch developer/gcc-45 system/header developer/build/autoconf developer/build/automake developer/build/libtool system/library/math file/gnu-coreutils
- requirements_solaris_check_custom CSWlibyaml-dev
- __rvm_update_configure_opt_dir "$1" "/opt/csw"
- ;;
- esac
- }
|