blob: 3364f79d2a564df8b9e4d3e2d80aa493f21b127e [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::protobuf {
case $operatingsystem{
/Ubuntu|Debian/: {
case $architecture {
'amd64' : { $url = "https://launchpad.net/ubuntu/+source/protobuf/2.5.0-9ubuntu1/+build/5585371/+files/"
$arch= "amd64" }
'ppc64le' : { $url = "https://launchpad.net/ubuntu/+source/protobuf/2.5.0-9ubuntu1/+build/5604345/+files"
$arch= "ppc64el" }
'aarch64' : { $url = "https://launchpad.net/ubuntu/+source/protobuf/2.5.0-9ubuntu1/+build/5585372/+files"
$arch= "arm64" }
}
}
}
case $operatingsystem{
/Ubuntu|Debian/: {
$libprotobuf8 = "libprotobuf8_2.5.0-9ubuntu1_$arch.deb"
$libprotoc8 = "libprotoc8_2.5.0-9ubuntu1_$arch.deb"
$protobuf_compiler = "protobuf-compiler_2.5.0-9ubuntu1_$arch.deb"
exec { "download protobuf":
cwd => "/usr/src",
command => "/usr/bin/curl -L $url/$libprotobuf8 -o $libprotobuf8; /usr/bin/curl -L $url/$libprotoc8 -o $libprotoc8; /usr/bin/curl -L $url/$protobuf_compiler -o $protobuf_compiler",
creates => [ "/usr/src/$libprotobuf8", "/usr/src/$libprotoc8", "/usr/src/$protobuf_compiler" ]
}
exec { "install protobuf":
cwd => "/usr/src",
command => "/usr/bin/dpkg -i $libprotobuf8 $libprotoc8 $protobuf_compiler",
require => EXEC["download protobuf"],
}
}
default: {
case $operatingsystem {
/(?i:(centos|fedora|amazon))/: {
case $architecture {
'ppc64le' : {
exec { 'install_mrdocs_repo':
command => "/usr/bin/rpm -ivh https://archives.fedoraproject.org/pub/archive/fedora-secondary/releases/22/Everything/ppc64le/os/Packages/p/protobuf-2.5.0-11.fc22.ppc64le.rpm;/usr/bin/rpm -ivh https://archives.fedoraproject.org/pub/archive/fedora-secondary/releases/22/Everything/ppc64le/os/Packages/p/protobuf-compiler-2.5.0-11.fc22.ppc64le.rpm;/usr/bin/rpm -ivh https://archives.fedoraproject.org/pub/archive/fedora-secondary/releases/22/Everything/ppc64le/os/Packages/p/protobuf-devel-2.5.0-11.fc22.ppc64le.rpm",
}
$package_name = 'protobuf-devel'
}
default: { yumrepo { "protobuf":
baseurl => "http://download.opensuse.org/repositories/home:/mrdocs:/protobuf-rpm/CentOS_CentOS-6/",
descr => "Bigtop protobuf repo",
enabled => 1,
priority => 1,
gpgcheck => 0
}
exec { 'install_mrdocs_repo':
command => '/bin/true',
require => Yumrepo['protobuf'],
}
$package_name = 'protobuf-devel'
}
}
}
/(?i:(SLES|opensuse))/:{
exec { 'install_mrdocs_repo':
command => '/usr/bin/zypper ar --no-gpgcheck http://download.opensuse.org/repositories/home:/mrdocs:/protobuf-rpm/openSUSE_Leap_42.1/ protobuf',
unless => "/usr/bin/zypper lr | grep -q protobuf",
}
$package_name = 'protobuf-devel-2.5.0-6.1'
}
}
package { $package_name:
ensure => present,
require => Exec['install_mrdocs_repo'],
}
}
}
}