create_rpm_file

in lib/omnibus/packagers/rpm.rb [413:458]


    def create_rpm_file
      command =  %{rpmbuild}
      command << %{ --target 
      command << %{ -bb}
      command << %{ --buildroot 
      command << %{ --define '_topdir #{staging_dir}'}
      command << " #{spec_file}"

      log.info(log_key) { "Creating .rpm file" }
      shellout!("#{command}")

      if signing_passphrase
        log.info(log_key) { "Signing enabled for .rpm file" }

        if File.exist?("#{ENV["HOME"]}/.rpmmacros")
          log.info(log_key) { "Detected .rpmmacros file at `#{ENV["HOME"]}'" }
          home = ENV["HOME"]
        else
          log.info(log_key) { "Using default .rpmmacros file from Omnibus" }

          
          home = Dir.mktmpdir

          render_template(resource_path("rpmmacros.erb"),
            destination: "#{home}/.rpmmacros",
            variables: {
              gpg_name: project.maintainer,
              gpg_path: "#{ENV["HOME"]}/.gnupg", 
            })
        end

        sign_cmd = "rpmsign --addsign #{rpm_file}"
        with_rpm_signing do |signing_script|
          log.info(log_key) { "Signing the built rpm file" }

          sign_cmd.prepend("#{signing_script} \"").concat("\"")

          shellout!("#{sign_cmd}", environment: { "HOME" => home })
        end
      end

      FileSyncer.glob("#{staging_dir}/RPMS/**/*.rpm").each do |rpm|
        copy_file(rpm, Config.package_dir)
      end
    end