class BoxGrinder::FedoraPlugin

Constants

SUPPORTED_VERSIONS

Public Instance Methods

after_init() click to toggle source
Calls superclass method
# File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 31
def after_init
  super
  register_supported_os('fedora', SUPPORTED_VERSIONS)
  set_default_config_value('PAE', true)
end
change_runlevel(guestfs) click to toggle source

issues.jboss.org/browse/BGBUILD-204

# File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 96
def change_runlevel(guestfs)
  @log.debug "Changing runlevel to multi-user non-graphical..."
  guestfs.rm("/etc/systemd/system/default.target")
  guestfs.ln_sf("/lib/systemd/system/multi-user.target", "/etc/systemd/system/default.target")
  @log.debug "Runlevel changed."
end
disable_biosdevname(guestfs) click to toggle source
# File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 85
def disable_biosdevname(guestfs)
  @log.debug "Disabling biosdevname..."
  if guestfs.exists("/boot/grub2/grub.cfg") != 0
    guestfs.write("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n")
    guestfs.sh("cd / && grub2-mkconfig -o /boot/grub2/grub.cfg")
  end
  guestfs.sh('sed -i "s/kernel\(.*\)/kernel\1 biosdevname=0/g" /boot/grub/grub.conf') if guestfs.exists("/boot/grub/grub.conf") != 0
  @log.debug "Biosdevname disabled."
end
disable_netfs(guestfs) click to toggle source

issues.jboss.org/browse/BGBUILD-204

# File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 104
def disable_netfs(guestfs)
  @log.debug "Disabling network filesystem mounting..."
  guestfs.sh("chkconfig netfs off")
  @log.debug "Network filesystem mounting disabled."
end
execute(appliance_definition_file) click to toggle source
# File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 37
def execute(appliance_definition_file)
  normalize_packages(@appliance_config.packages)

  @repos = {}

  @plugin_info[:versions].each do |version|
    if version.match(/\d+/)
      @repos[version] = {
          "base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-#{version}&arch=#BASE_ARCH#"},
          "updates" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f#{version}&arch=#BASE_ARCH#"}
      }
    else
      @repos[version] = {"base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=#{version}&arch=#BASE_ARCH#"}}
    end
  end

  build_with_appliance_creator(appliance_definition_file, @repos) do |guestfs, guestfs_helper|
    if @appliance_config.os.version >= "15"
      disable_biosdevname(guestfs)
      change_runlevel(guestfs)
      disable_netfs(guestfs) if @appliance_config.os.version < "17"
      link_mtab(guestfs)
    end
  end
end
normalize_packages(packages) click to toggle source
# File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 63
def normalize_packages(packages)
  # https://issues.jboss.org/browse/BGBUILD-89
  packages << '@core'
  packages << "system-config-firewall-base"
  packages << "dhclient"

  packages.delete('kernel')
  packages.delete('kernel-PAE')

  if @appliance_config.is64bit?
    packages << "kernel"
  else
    @plugin_config['PAE'] ? packages << "kernel-PAE" : packages << "kernel"
  end

  if @appliance_config.os.version >= "16"
    packages << "grub2"
  else
    packages << "grub"
  end
end