diff --git a/make-ring.py b/make-ring.py index 76e7211a5c7200dff3c63d8be18296686185a211..41ed47499dccc4dd377f318155278024dd7ecdae 100755 --- a/make-ring.py +++ b/make-ring.py @@ -24,6 +24,10 @@ RPM_BASED_DISTROS = [ 'Fedora', ] +PACMAN_BASED_DISTROS = [ + 'Arch Linux', +] + APT_INSTALL_SCRIPT = [ 'apt-get update', 'apt-get install -y %(packages)s' @@ -34,11 +38,17 @@ BREW_INSTALL_SCRIPT = [ 'brew install -y %(packages)s', 'brew link --force gettext' ] + RPM_INSTALL_SCRIPT = [ 'sudo dnf update', 'sudo dnf install -y %(packages)s' ] +PACMAN_INSTALL_SCRIPT = [ + 'sudo pacman -Sy', + 'sudo pacman -S %(packages)s' +] + FEDORA_DEPENDENCIES = [ 'autoconf', 'automake', 'cmake', 'speexdsp-devel', 'pulseaudio-libs-devel', 'libsamplerate-devel', 'libtool', 'dbus-devel', 'expat-devel', 'pcre-devel', @@ -78,6 +88,15 @@ DEBIAN_DEPENDENCIES = [ 'qtbase5-dev', 'sip-tester', 'swig', 'uuid-dev', 'yasm', 'libqrencode-dev' ] +ARCH_LINUX_DEPENDENCIES = [ + 'autoconf', 'gettext', 'cmake', 'dbus', 'doxygen', 'gcc', 'gnome-icon-theme-symbolic', + 'ffmpeg', 'boost', 'clutter-gtk', 'cppunit', 'libdbus', 'dbus-c++', 'libe-book', + 'expat', 'gsm', 'gtk3', 'jack', 'libnotify', 'opus', 'pcre', 'libpulse', 'libsamplerate', + 'libsndfile', 'speex', 'speexdsp', 'libtool', 'libupnp', 'yaml-cpp', 'qt5-base', + 'swig', 'yasm', 'qrencode', 'evolution-data-server', 'make', 'patch', 'pkg-config', + 'automake' +] + OSX_DEPENDENCIES = [ 'autoconf', 'cmake', 'gettext', 'pkg-config', 'homebrew/versions/qt55', 'libtool', 'yasm', 'automake' @@ -118,6 +137,12 @@ def run_dependencies(args): {"packages": ' '.join(FEDORA_DEPENDENCIES)} ) + elif args.distribution == "Arch Linux": + execute_script( + PACMAN_INSTALL_SCRIPT, + {"packages": ' '.join(ARCH_LINUX_DEPENDENCIES)} + ) + elif args.distribution == "OSX": execute_script( BREW_INSTALL_SCRIPT, @@ -261,7 +286,8 @@ def validate_args(parsed_args): """Validate the args values, exit if error is found""" # Check arg values - supported_distros = ['Android', 'Ubuntu', 'Debian', 'OSX', 'Fedora', 'Automatic'] + supported_distros = ['Android', 'Ubuntu', 'Debian', 'OSX', 'Fedora', 'Arch Linux', 'Automatic'] + if parsed_args.distribution not in supported_distros: print('Distribution not supported.\nChoose one of: %s' \ % ', '.join(supported_distros),