class Buildizer::Os::Ubuntu

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/ubuntu.rb, line 6
def initialize(docker, version, **kwargs)
  @version = version
  super(docker, **kwargs)
end

Public Instance Methods

build_deb_instructions(target) click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 48
def build_deb_instructions(target)
  ["DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -b -us -uc -j#{target.builder.build_jobs}",
   "cp ../*.deb #{target.builder.docker.container_build_path}"]
end
build_dep(image, build_dep) click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 23
def build_dep(image, build_dep)
  image.instruction :RUN, "apt-get build-dep -y #{build_dep.to_a.join(' ')}" if build_dep.any?
end
codename() click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 15
def codename
  raise
end
fpm_extra_params() click to toggle source
Calls superclass method Buildizer::Os::Base#fpm_extra_params
# File lib/buildizer/os/ubuntu.rb, line 31
def fpm_extra_params
  Array(super).tap do |res|
    res << '--deb-use-file-permissions'
    res << '--deb-no-default-config-files'
  end
end
fpm_output_type() click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 27
def fpm_output_type
  'deb'
end
install_test_package_instructions(target) click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 38
def install_test_package_instructions(target)
  "(dpkg -i #{target.builder.docker.container_build_path.join('*.deb')} || true)" +
    " && apt-get install -yf"
end
name() click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 11
def name
  'ubuntu'
end
native_build_instructions(target) click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 53
def native_build_instructions(target)
  source_archive_name = "#{target.package_name}_#{target.package_upstream_version}.orig.tar.gz"

  [["ln -fs #{target.container_package_archive_path} ",
    "#{target.container_package_path.dirname.join(source_archive_name)}"].join,
   "cd #{target.container_package_path}",
   *Array(build_deb_instructions(target))]
end
package_cloud_os_version() click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 19
def package_cloud_os_version
  codename
end
patch_build_instructions(target) click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 62
def patch_build_instructions(target)
  ["apt-get source #{target_package_spec(target)}",
   'cd $(ls *.orig.tar* | ruby -ne "puts \$_.split(\\".orig.tar\\").first.gsub(\\"_\\", \\"-\\")")',
   ["DEBFULLNAME=\"#{target.maintainer}\" DEBEMAIL=\"#{target.maintainer_email}\" ",
    "debchange --newversion ",
    "$(dpkg-parsechangelog | grep \"Version:\" | cut -d\" \" -f2-)buildizer#{target.patch_version} ",
    "--distribution #{codename} \"Patch by buildizer\""].join,
   *target.patch.map {|patch| "cp ../#{patch} debian/patches/"},
   *target.patch.map {|patch| "sed -i \"/#{Regexp.escape(patch)}/d\" debian/patches/series"},
   *target.patch.map {|patch| "echo #{patch} >> debian/patches/series"},
   *Array(build_deb_instructions(target))]
end
prepare_test_container_instructions(target) click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 43
def prepare_test_container_instructions(target)
  ["apt-get update",
   "apt-get install -y git"]
end
target_package_spec(target) click to toggle source
# File lib/buildizer/os/ubuntu.rb, line 75
def target_package_spec(target)
  [target.package_name, target.package_version].compact.join('=')
end