Skip to content

Commit 9549dac

Browse files
authored
Fix librpm installation in auditbeat build (elastic#21239) (elastic#21283)
Fix installation of librpm-dev from the Auditbeat build scripts by forcing the installation of a dependecy that is already installed for a different architecture. It fails for some ARM platforms, where requested packages are already installed in the base images, but for a different architecture. (cherry picked from commit c0463f9)
1 parent ec685e1 commit 9549dac

File tree

1 file changed

+29
-21
lines changed

1 file changed

+29
-21
lines changed

x-pack/auditbeat/magefile.go

+29-21
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,13 @@ var (
132132
"linux/386": installLinux386,
133133
"linux/amd64": installLinuxAMD64,
134134
"linux/arm64": installLinuxARM64,
135-
"linux/armv5": installLinuxARMLE,
136-
"linux/armv6": installLinuxARMLE,
135+
"linux/armv5": installLinuxARMEL,
136+
"linux/armv6": installLinuxARMEL,
137137
"linux/armv7": installLinuxARMHF,
138138
"linux/mips": installLinuxMIPS,
139-
"linux/mipsle": installLinuxMIPSLE,
140-
"linux/mips64le": installLinuxMIPS64LE,
141-
"linux/ppc64le": installLinuxPPC64LE,
139+
"linux/mipsle": installLinuxMIPSEL,
140+
"linux/mips64le": installLinuxMIPS64EL,
141+
"linux/ppc64le": installLinuxPPC64EL,
142142
"linux/s390x": installLinuxS390X,
143143

144144
//"linux/ppc64": installLinuxPpc64,
@@ -148,49 +148,56 @@ var (
148148

149149
const (
150150
librpmDevPkgName = "librpm-dev"
151+
152+
// Dependency of librpm-dev in ARM architectures, that needs to be explicitly
153+
// installed to replace other conflicting packages pre-installed in the image.
154+
libicuDevPkgName = "libicu-dev"
151155
)
152156

153157
func installLinuxAMD64() error {
154-
return installDependencies(librpmDevPkgName, "")
158+
return installDependencies("", librpmDevPkgName)
155159
}
156160

157161
func installLinuxARM64() error {
158-
return installDependencies(librpmDevPkgName+":arm64", "arm64")
162+
return installDependencies("arm64", librpmDevPkgName+":arm64")
159163
}
160164

161165
func installLinuxARMHF() error {
162-
return installDependencies(librpmDevPkgName+":armhf", "armhf")
166+
return installDependencies("armhf", librpmDevPkgName+":armhf", libicuDevPkgName+":armhf")
163167
}
164168

165-
func installLinuxARMLE() error {
166-
return installDependencies(librpmDevPkgName+":armel", "armel")
169+
func installLinuxARMEL() error {
170+
return installDependencies("armel", librpmDevPkgName+":armel", libicuDevPkgName+":armel")
167171
}
168172

169173
func installLinux386() error {
170-
return installDependencies(librpmDevPkgName+":i386", "i386")
174+
return installDependencies("i386", librpmDevPkgName+":i386")
171175
}
172176

173177
func installLinuxMIPS() error {
174-
return installDependencies(librpmDevPkgName+":mips", "mips")
178+
return installDependencies("mips", librpmDevPkgName+":mips")
175179
}
176180

177-
func installLinuxMIPS64LE() error {
178-
return installDependencies(librpmDevPkgName+":mips64el", "mips64el")
181+
func installLinuxMIPS64EL() error {
182+
return installDependencies("mips64el", librpmDevPkgName+":mips64el")
179183
}
180184

181-
func installLinuxMIPSLE() error {
182-
return installDependencies(librpmDevPkgName+":mipsel", "mipsel")
185+
func installLinuxMIPSEL() error {
186+
return installDependencies("mispel", librpmDevPkgName+":mipsel")
183187
}
184188

185-
func installLinuxPPC64LE() error {
186-
return installDependencies(librpmDevPkgName+":ppc64el", "ppc64el")
189+
func installLinuxPPC64EL() error {
190+
return installDependencies("ppc64el", librpmDevPkgName+":ppc64el")
187191
}
188192

189193
func installLinuxS390X() error {
190-
return installDependencies(librpmDevPkgName+":s390x", "s390x")
194+
return installDependencies("s390x", librpmDevPkgName+":s390x")
191195
}
192196

193-
func installDependencies(pkg, arch string) error {
197+
func installDependencies(arch string, pkgs ...string) error {
198+
if len(pkgs) == 0 {
199+
return nil
200+
}
194201
if arch != "" {
195202
err := sh.Run("dpkg", "--add-architecture", arch)
196203
if err != nil {
@@ -206,5 +213,6 @@ func installDependencies(pkg, arch string) error {
206213
return err
207214
}
208215

209-
return sh.Run("apt-get", "install", "-y", "--no-install-recommends", pkg)
216+
args := append([]string{"install", "-y", "--no-install-recommends"}, pkgs...)
217+
return sh.Run("apt-get", args...)
210218
}

0 commit comments

Comments
 (0)