blob: 1d74daf90e3416b9d17b4dc03a3732961e35f74f [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
class bigtop_toolchain::packages {
case $operatingsystem{
/(?i:(centos|fedora|redhat))/: {
$_pkgs = [
"unzip",
"rsync",
"curl",
"wget",
"git",
"make",
"cmake",
"autoconf",
"automake",
"libtool",
"gcc",
"gcc-c++",
"fuse",
"createrepo",
"lzo-devel",
"fuse-devel",
"cppunit-devel",
"openssl-devel",
"python2-pip",
"libxml2-devel",
"libxslt-devel",
"cyrus-sasl-devel",
"sqlite-devel",
"openldap-devel",
"mariadb-devel",
"rpm-build",
"redhat-rpm-config",
"fuse-libs",
"asciidoc",
"xmlto",
"libyaml-devel",
"gmp-devel",
"snappy-devel",
"boost-devel",
"xfsprogs-devel",
"libuuid-devel",
"bzip2-devel",
"readline-devel",
"ncurses-devel",
"libidn-devel",
"libcurl-devel",
"libevent-devel",
"apr-devel",
"bison",
"libffi-devel"
]
if ($operatingsystem == 'Fedora' or $operatingsystemmajrelease !~ /^[0-7]$/) {
$pkgs = concat($_pkgs, ["python2-devel", "libtirpc-devel"])
} else {
$pkgs = concat($_pkgs, "python-devel")
}
}
/(?i:(SLES|opensuse))/: { $pkgs = [
"unzip",
"curl",
"wget",
"git",
"make",
"cmake",
"autoconf",
"automake",
"libtool",
"gcc",
"gcc-c++",
"fuse",
"createrepo",
"lzo-devel",
"fuse-devel",
"cppunit-devel",
"rpm-devel",
"rpm-build",
"pkg-config",
"gmp-devel",
"python-devel",
"python-pip",
"libxml2-devel",
"libxslt-devel",
"cyrus-sasl-devel",
"sqlite3-devel",
"openldap2-devel",
"libyaml-devel",
"krb5-devel",
"asciidoc",
"xmlto",
"libmysqlclient-devel",
"snappy-devel",
"boost-devel",
"xfsprogs-devel",
"libuuid-devel",
"libbz2-devel",
"libcurl-devel",
"libevent-devel",
"bison",
"flex",
"libffi48-devel",
"texlive-latex-bin-bin",
"libapr1",
"libapr1-devel"
]
# fix package dependencies: BIGTOP-2120 and BIGTOP-2152 and BIGTOP-2471
exec { '/usr/bin/zypper -n install --force-resolution krb5 libopenssl-devel libxml2-devel libxslt-devel boost-devel':
} -> Package <| |>
}
/Amazon/: { $pkgs = [
"unzip",
"curl",
"wget",
"git",
"make",
"cmake",
"autoconf",
"automake",
"libtool",
"gcc",
"gcc-c++",
"fuse",
"createrepo",
"lzo-devel",
"fuse-devel",
"openssl-devel",
"python27-pip",
"rpm-build",
"system-rpm-config",
"fuse-libs",
"gmp-devel",
"snappy-devel",
"bzip2-devel",
"libffi-devel"
] }
/(Ubuntu|Debian)/: {
$pkgs = [
"unzip",
"curl",
"wget",
"git-core",
"make",
"cmake",
"autoconf",
"automake",
"libtool",
"gcc",
"g++",
"fuse",
"reprepro",
"rsync",
"liblzo2-dev",
"libfuse-dev",
"libcppunit-dev",
"libssl-dev",
"libzip-dev",
"sharutils",
"pkg-config",
"debhelper",
"devscripts",
"build-essential",
"dh-make",
"dh-python",
"libfuse2",
"libjansi-java",
"python2.7-dev",
"libxml2-dev",
"libxslt1-dev",
"zlib1g-dev",
"libsqlite3-dev",
"libldap2-dev",
"libsasl2-dev",
"libmariadbd-dev",
"libkrb5-dev",
"asciidoc",
"libyaml-dev",
"libgmp3-dev",
"libsnappy-dev",
"libboost-regex-dev",
"xfslibs-dev",
"libbz2-dev",
"libreadline-dev",
"zlib1g",
"libapr1",
"libapr1-dev",
"libevent-dev",
"libcurl4-gnutls-dev",
"bison",
"flex",
"python-dev",
"python-pip",
"libffi-dev"
]
file { '/etc/apt/apt.conf.d/01retries':
content => 'Aquire::Retries "5";'
} -> Package <| |>
}
}
package { $pkgs:
ensure => installed
}
# Some bigtop packages use `/usr/lib/rpm/redhat` tools
# from `redhat-rpm-config` package that doesn't exist on AmazonLinux.
if $operatingsystem == 'Amazon' {
file { '/usr/lib/rpm/redhat':
ensure => 'link',
target => '/usr/lib/rpm/amazon',
}
}
if $operatingsystem == 'CentOS' {
package { 'epel-release':
ensure => installed
}
# On CentOS 8, EPEL requires that the PowerTools repository is enabled.
# See https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
if $operatingsystemmajrelease !~ /^[0-7]$/ {
yumrepo { 'PowerTools':
ensure => 'present',
enabled => '1'
}
Yumrepo<||> -> Package<||>
}
}
# Install Python packages using pip
case $operatingsystem{
/(?i:(centos|fedora|redhat))/: {
$pip = 'python2-pip'
} /(?i:(SLES|opensuse))/: {
$pip = 'python-pip'
} /Amazon/: {
$pip = 'python27-pip'
} /(Ubuntu|Debian)/: {
$pip = 'python-pip'
}
}
file { '/usr/bin/pip-python':
ensure => 'link',
target => '/usr/bin/pip2',
}
package { 'setuptools':
ensure => 'latest',
provider => 'pip',
require => [ Package[$pip], File['/usr/bin/pip-python'] ]
}
package { ['flake8', 'wheel']:
ensure => 'installed',
provider => 'pip',
require => [ Package[$pip], File['/usr/bin/pip-python'] ]
}
}