123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- #!/usr/bin/env bash
- requirements_arch_lib_installed_all_missing()
- {
- pacman -T "$@" || true
- }
- requirements_arch_lib_installed() {
- pacman -Qq "$1" >/dev/null 2>&1 || return $?
- }
- requirements_arch_lib_available()
- {
- pacman -Ssq "^${1}$" >/dev/null 2>&1 || return $?
- }
- requirements_arch_libs_install()
- {
- __rvm_try_sudo pacman -Sy --needed --noconfirm "$@" || return $?
- }
- requirements_arch_libs_remove()
- {
- __rvm_try_sudo pacman -Rs --noconfirm "$@" || return $?
- }
- requirements_arch_update_system()
- {
- # Has to be ran separately so new version can be used for installing missing libs
- requirements_arch_libs_install pacman || return $?
- }
- requirements_arch_define_check_raspberry_pi()
- {
- if
- [[ "${_system_arch}" == "arm"* ]]
- then
- # assuming all arm will need this fix
- requirements_check_fallback ntp openntpd chrony
- fi
- }
- requirements_arch_define_openssl()
- {
- case "$1" in
- (ruby-2.3*|ruby-2.2*|ruby-2.1*|ruby-2.0*|ruby-1.9*)
- requirements_check openssl-1.0
- # Ruby should respect pkg-config in case of openssl (it does not have to be the case with other extensions)
- # https://github.com/ruby/ruby/blob/trunk/ext/openssl/extconf.rb#L38
- export PKG_CONFIG_PATH="/usr/lib/openssl-1.0/pkgconfig${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH:-}"
- ;;
- (*)
- requirements_check openssl
- ;;
- esac
- }
- requirements_arch_define()
- {
- requirements_arch_define_check_raspberry_pi
- case "$1" in
- (rvm)
- requirements_check bash curl patch
- ;;
- (jruby*)
- requirements_check curl make
- if
- is_head_or_disable_binary "$1"
- then
- requirements_check_fallback jdk8-openjdk jdk7-openjdk
- requirements_check git
- case $( jruby_installation_method "$1" ) in
- ant) __rvm_which ant >/dev/null || requirements_check apache-ant ;;
- mvn) __rvm_which mvn >/dev/null || requirements_check maven ;;
- esac
- else
- requirements_check_fallback jre8-openjdk jre7-openjdk
- fi
- ;;
- (ir*)
- requirements_check mono
- ;;
- (opal)
- requirements_check nodejs
- ;;
- (rbx*head|rubinius*head)
- undesired_check clang35 llvm35 llvm35-libs
- requirements_check clang llvm llvm-libs patch curl zlib readline autoconf automake diffutils make libtool bison git
- ;;
- (rbx-3*|rubinius-3*)
- undesired_check clang35 llvm35 llvm35-libs
- requirements_check clang llvm llvm-libs patch curl zlib readline autoconf automake diffutils make libtool bison
- ;;
- (rbx-2*|rubinius-2*)
- undesired_check clang llvm llvm-libs
- requirements_check clang35 llvm35 llvm35-libs patch curl zlib readline autoconf automake diffutils make libtool bison
- ;;
- (rbx-1*|rubinius-1*)
- undesired_check clang llvm llvm-libs
- requirements_check clang35 llvm35 llvm35-libs patch curl zlib readline autoconf automake diffutils make libtool bison
- ;;
- (truffleruby*)
- requirements_check zlib make gcc libxml2
- requirements_arch_define_openssl "$1"
- ;;
- (ruby-2.3*|ruby-2.2*|ruby-2.1*|ruby-2.0*|ruby-1.9*)
- requirements_check gcc patch curl zlib readline autoconf automake diffutils make libtool bison sqlite git
- requirements_arch_define_openssl "$1"
- ;;
- (*-head)
- requirements_check gcc patch curl zlib readline autoconf automake diffutils make libtool bison sqlite git
- requirements_arch_define_openssl "$1"
- ;;
- (*)
- requirements_check gcc patch curl zlib readline autoconf automake diffutils make libtool bison sqlite
- requirements_arch_define_openssl "$1"
- ;;
- esac
- }
- requirements_arch_service()
- {
- systemctl $1 $3 >/dev/null ||
- if __rvm_try_sudo systemctl $2 $3
- then true
- else
- \typeset __arch_status=$?
- rvm_error "There was a problem running 'systemctl $2 $3' with exit status '$__arch_status'."
- return $__arch_status
- fi
- }
- requirements_arch_after_check_raspberry_pi()
- {
- if
- [[ "${_system_arch}" == "arm"* ]]
- then
- ntp_servers=( ntpd systemd-timesyncd openntpd chronyd )
- for ntp_server in "${ntp_servers[@]}"
- do
- if
- systemctl list-unit-files | grep -Fq "$ntp_server.service" &&
- systemctl is-active $ntp_server
- then
- return 0
- fi
- done
- for ntp_server in "${ntp_servers[@]}"
- do
- if
- systemctl list-unit-files | grep -Fq "$ntp_server.service"
- then
- requirements_arch_service is-enabled enable $ntp_server &&
- requirements_arch_service is-active start $ntp_server ||
- return $?
- fi
- done
- fi
- }
- requirements_arch_after()
- {
- requirements_arch_after_check_raspberry_pi
- }
- requirements_manjaro_define()
- {
- __lib_type=arch
- requirements_arch_define "$@" || return $?
- }
|