diff --git a/apk/apk.go b/apk/apk.go index e99facc1..6bc5a9d2 100644 --- a/apk/apk.go +++ b/apk/apk.go @@ -73,6 +73,13 @@ func ensureValidArch(info *nfpm.Info) *nfpm.Info { info.Arch = info.APK.Arch } else if arch, ok := archToAlpine[info.Arch]; ok { info.Arch = arch + } else { + for k, v := range archToAlpine { + if strings.HasPrefix(info.Arch, k) { + info.Arch = v + break + } + } } return info diff --git a/arch/arch.go b/arch/arch.go index f717b488..f804d8bc 100644 --- a/arch/arch.go +++ b/arch/arch.go @@ -53,6 +53,13 @@ func ensureValidArch(info *nfpm.Info) *nfpm.Info { info.Arch = info.ArchLinux.Arch } else if arch, ok := archToArchLinux[info.Arch]; ok { info.Arch = arch + } else { + for k, v := range archToArchLinux { + if strings.HasPrefix(info.Arch, k) { + info.Arch = v + break + } + } } return info diff --git a/deb/deb.go b/deb/deb.go index 84e3a90e..264c93de 100644 --- a/deb/deb.go +++ b/deb/deb.go @@ -50,6 +50,13 @@ func ensureValidArch(info *nfpm.Info) *nfpm.Info { info.Arch = info.Deb.Arch } else if arch, ok := archToDebian[info.Arch]; ok { info.Arch = arch + } else { + for k, v := range archToDebian { + if strings.HasPrefix(info.Arch, k) { + info.Arch = v + break + } + } } return info diff --git a/rpm/rpm.go b/rpm/rpm.go index 7c58a030..919444e5 100644 --- a/rpm/rpm.go +++ b/rpm/rpm.go @@ -57,15 +57,16 @@ type RPM struct{} // https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch01s03.html // nolint: gochecknoglobals var archToRPM = map[string]string{ - "all": "noarch", - "amd64": "x86_64", - "386": "i386", - "arm64": "aarch64", - "arm5": "armv5tel", - "arm6": "armv6hl", - "arm7": "armv7hl", - "mips": "mips", - "mipsle": "mipsel", + "all": "noarch", + "amd64": "x86_64", + "386": "i386", + "arm64": "aarch64", + "arm5": "armv5tel", + "arm6": "armv6hl", + "arm7": "armv7hl", + "mips": "mips", + "mipsle": "mipsel", + "mipsle64": "mips64el", // TODO: other arches } @@ -74,6 +75,13 @@ func ensureValidArch(info *nfpm.Info) *nfpm.Info { info.Arch = info.RPM.Arch } else if arch, ok := archToRPM[info.Arch]; ok { info.Arch = arch + } else { + for k, v := range archToRPM { + if strings.HasPrefix(info.Arch, k) { + info.Arch = v + break + } + } } return info