class Buildizer::Os::Centos
Attributes
version[R]
Public Class Methods
new(docker, version, **kwargs)
click to toggle source
Calls superclass method
Buildizer::Os::Base::new
# File lib/buildizer/os/centos.rb, line 6 def initialize(docker, version, **kwargs) @version = version super(docker, **kwargs) end
Public Instance Methods
add_repo(image, id:, name:, baseurl: nil, enabled: 1, gpgcheck: nil, gpgkey: nil, exclude: nil, includepkgs: nil, mirrorlist: nil)
click to toggle source
# File lib/buildizer/os/centos.rb, line 45 def add_repo(image, id:, name:, baseurl: nil, enabled: 1, gpgcheck: nil, gpgkey: nil, exclude: nil, includepkgs: nil, mirrorlist: nil) repo = "[#{id}]\ \\nname=#{name}\ \\nenabled=#{enabled}\ #{baseurl ? "\\nbaseurl=#{baseurl}" : nil}\ #{mirrorlist ? "\\nmirrorlist=#{mirrorlist}" : nil}\ #{gpgcheck ? "\\ngpgcheck=#{gpgcheck}" : nil}\ #{gpgkey ? "\\ngpgkey=#{gpgkey}" : nil}\ #{exclude ? "\\nexclude=#{exclude}" : nil}\ #{includepkgs ? "\\nincludepkgs=#{includepkgs}" : nil}" image.instruction :RUN, "bash -lec \"echo -e '#{repo}' >> /etc/yum.repos.d/CentOS-Extra-Buildizer.repo\"" end
build_dep(image, build_dep)
click to toggle source
# File lib/buildizer/os/centos.rb, line 41 def build_dep(image, build_dep) image.instruction :RUN, "yum-builddep -y #{build_dep.to_a.join(' ')}" if build_dep.any? end
build_rpm_instructions(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 67 def build_rpm_instructions(target) ["cd ~/rpmbuild/SPECS/", "rpmbuild -bb #{target_spec_name(target)}", ["find ~/rpmbuild/RPMS -name '*.rpm' ", "-exec mv {} #{target.builder.docker.container_build_path} \\;"].join] end
fpm_extra_params()
click to toggle source
Calls superclass method
Buildizer::Os::Base#fpm_extra_params
# File lib/buildizer/os/centos.rb, line 27 def fpm_extra_params Array(super).tap do |res| res << '--rpm-use-file-permissions' end end
fpm_output_type()
click to toggle source
# File lib/buildizer/os/centos.rb, line 23 def fpm_output_type 'rpm' end
install_test_package_instructions(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 33 def install_test_package_instructions(target) "yum localinstall -y #{target.builder.docker.container_build_path.join('*.rpm')}" end
name()
click to toggle source
# File lib/buildizer/os/centos.rb, line 11 def name 'centos' end
native_build_instructions(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 74 def native_build_instructions(target) [*Array(rpmdev_setuptree_instructions(target)), "cp #{target.builder.docker.container_package_archive_path} ~/rpmbuild/SOURCES/", "cp #{target.builder.docker.container_package_path.join(target_spec_name(target))} ~/rpmbuild/SPECS/", *Array(build_rpm_instructions(target))] end
package_cloud_os_name()
click to toggle source
# File lib/buildizer/os/centos.rb, line 15 def package_cloud_os_name 'el' end
package_cloud_os_version()
click to toggle source
# File lib/buildizer/os/centos.rb, line 19 def package_cloud_os_version version.match(/\d+$/).to_s.to_i end
patch_build_instructions(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 81 def patch_build_instructions(target) rpmchange_cmd = "rpmchange %{cmd} --specfile ~/rpmbuild/SPECS/#{target_spec_name(target)} %{args}" get_release_cmd = rpmchange_cmd % {cmd: :tag, args: "--name release"} set_release_cmd = rpmchange_cmd % {cmd: :tag, args: "--name release --value %{value}"} changelog_cmd = rpmchange_cmd % { cmd: :changelog, args: "--append --name \"%{name}\" --email \"%{email}\" --message \"%{message}\"" } [*Array(rpmdev_setuptree_instructions(target)), "yumdownloader --source #{target_package_spec(target)}", "rpm -i *.rpm", "gem install rpmchange", set_release_cmd % {value: "$(#{get_release_cmd})buildizer#{target.package_version}"}, *target.patch.map {|patch| "cp #{patch} ~/rpmbuild/SOURCES/"}, *target.patch.map {|patch| rpmchange_cmd % {cmd: :append, args: "--section prep --value \"patch -p1 < %{_sourcedir}/#{patch}\""} }, changelog_cmd % {name: target.maintainer, email: target.maintainer_email, message: 'Patch by buildizer'}, *Array(build_rpm_instructions(target))] end
prepare_test_container_instructions(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 37 def prepare_test_container_instructions(target) "yum install -y git" end
rpmdev_setuptree_instructions(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 63 def rpmdev_setuptree_instructions(target) "rpmdev-setuptree" end
target_package_spec(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 106 def target_package_spec(target) [target.package_name, target.package_version].compact.join('-') end
target_spec_name(target)
click to toggle source
# File lib/buildizer/os/centos.rb, line 59 def target_spec_name(target) "#{target.base_package_name}.spec" end