ipa-server-install: On non-x86, errors enabling compatibility plugin for dirsrv
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
389-ds-base (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
freeipa (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When executing ipa-server-install on a non-x86 architecture (here: ARMv7), the following error messages appear after having filled out the initial questionnaire:
...
Configuring directory server (dirsrv). Estimated time: 1 minute
[1/46]: creating directory server user
...
[42/46]: enabling compatibility plugin
ipa.ipaserver.
ipa.ipaserver.
ipa.ipaserver.
ipa.ipaserver.
ipa.ipaserver.
ipa.ipaserver.
[43/46]: activating sidgen plugin
...
The logfile written showed that the plugin path submitted is something like
/usr/lib/
but should probably be
/usr/lib/
according to the file list of the freeipa-server package. This library path is introduced in ipaserver/
As far as I could see, the upstream version only differentiates between /lib and /lib64, but the Ubuntu source package contains a patch "hack-libarch.diff" that introduces more fine-grained architecture names.
The following patch served me well, but takes into account only this very architecture.
--- ipaserver/
+++ ipaserver/
@@ -330,11 +330,16 @@
def _identify_
"""On multi-arch systems some libraries may be in /lib64, /usr/lib64,
etc. Determine if a suffix is needed based on the current
"""
+
+ arch = platform.machine()
+ if arch == "armv7l":
+ return "/arm-linux-
+
bits = platform.
if bits == "64bit":
return "/x86_64-linux-gnu"
else:
return "/i386-linux-gnu"
Changed in 389-ds-base (Ubuntu): | |
status: | Triaged → Invalid |
right, it was expected that sooner or later someone used 389 on !x86 :/
the libarch patch should cover all the others too