Blob Blame History Raw
#
# EFI specific SRPM macro definitions
#
# Copyright 2018 Peter M Jones <pjones@redhat.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#

%_efi_srpm_macros_setup() %{expand:%{lua:
  -- test if our arch matches
  local function arch(archmacro)
    local target = rpm.expand(" %{_target_cpu} ")
    local arches = rpm.expand(" " .. archmacro .. " ")
    local match = string.match(arches, target)
    return (match ~= nil)
  end
  -- give us the arch...
  local function getarch()
    if arch("ia64") then
      return("ia64")
    elseif arch("x86_64") then
      return("x64")
    elseif arch("%{ix86}") then
      return("ia32")
    elseif arch("aarch64") then
      return("aa64")
    elseif arch("%{arm}") then
      return("arm")
    else
      return("none")
    end
  end
  -- alt arch
  local function getaltarch()
    if arch("x86_64") then
      return("ia32")
    else
      return("none")
    end
  end
  -- make some macros
  local done = rpm.expand("%{?_efi}")
  if done == nil or done == "" then
    local arch = getarch()
    local alt = getaltarch()
    print("%global _efi @@EFI_ARCHES@@\\n")
    print("%global _efi_vendor @@EFI_VENDOR@@\\n")
    if arch == "none" then
      print("%global _efi_has_arch 0\\n")
    else
      print("%global _efi_has_arch 1\\n")
    end
    print("%global _efi_arch " .. getarch() .. "\\n")
    print("%global _efi_arch_upper " .. string.upper(getarch()) .. "\\n")
    if alt == "none" then
      print("%global _efi_has_alt_arch 0\\n")
    else
      print("%global _efi_has_alt_arch 1\\n")
    end
    print("%global _efi_alt_arch " .. alt .. "\\n")
    print("%global _efi_alt_arch_upper " .. string.upper(alt) .. "\\n")
  end
}}

%efi_srpm_macros_version %{expand:%{_efi_srpm_macros_setup}}@@EFI_RPM_MACROS_VERSION@@

%efi %{expand:%{_efi_srpm_macros_setup}}%{expand:%{_efi}}
%efi_vendor %{expand:%{_efi_srpm_macros_setup}}%{expand:%{_efi_vendor}}

%efi_esp_root @@EFI_ESP_ROOT@@
%efi_esp_efi %{efi_esp_root}/EFI
%efi_esp_boot %{efi_esp_efi}/BOOT
%efi_esp_dir %{expand:%{_efi_srpm_macros_setup}}%{efi_esp_efi}/%{efi_vendor}

%efi_arch %{expand:%{_efi_srpm_macros_setup}}%{_efi_arch}
%efi_arch_upper %{expand:%{_efi_srpm_macros_setup}}%{_efi_arch_upper}
%efi_has_arch %{expand:%{_efi_srpm_macros_setup}}0%{_efi_has_arch}
%efi_has_alt_arch %{expand:%{_efi_srpm_macros_setup}}0%{_efi_has_alt_arch}
%efi_alt_arch %{expand:%{_efi_srpm_macros_setup}}%{?_efi_alt_arch}%{nil}
%efi_alt_arch_upper %{expand:%{_efi_srpm_macros_setup}}%{?_efi_alt_arch_upper}%{nil}