Public bug reported: 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.install.ldapupdate.LDAPUpdate: ERROR Add failure Server is unwilling to perform: Invalid plugin path ipa.ipaserver.install.ldapupdate.LDAPUpdate: ERROR Parent DN of cn=users,cn=Schema Compatibility,cn=plugins,cn=config may not exist, cannot create the entry ipa.ipaserver.install.ldapupdate.LDAPUpdate: ERROR Parent DN of cn=groups,cn=Schema Compatibility,cn=plugins,cn=config may not exist, cannot create the entry ipa.ipaserver.install.ldapupdate.LDAPUpdate: ERROR Parent DN of cn=ng,cn=Schema Compatibility,cn=plugins,cn=config may not exist, cannot create the entry ipa.ipaserver.install.ldapupdate.LDAPUpdate: ERROR Parent DN of cn=sudoers,cn=Schema Compatibility,cn=plugins,cn=config may not exist, cannot create the entry ipa.ipaserver.install.ldapupdate.LDAPUpdate: ERROR Parent DN of cn=computers,cn=Schema Compatibility,cn=plugins,cn=config may not exist, cannot create the entry [43/46]: activating sidgen plugin ...
The logfile written showed that the plugin path submitted is something like /usr/lib/i386-linux-gnu/... but should probably be /usr/lib/arm-linux-gnueabihf/... according to the file list of the freeipa-server package. This library path is introduced in ipaserver/install/ldapupdate.py, where it seems that only i386 and x86_64 seem to be expected. 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/install/ldapupdate.py.orig 2016-07-10 20:43:30.630070890 +0200 +++ ipaserver/install/ldapupdate.py 2016-07-10 20:56:54.772268927 +0200 @@ -330,11 +330,16 @@ def _identify_arch(self): """On multi-arch systems some libraries may be in /lib64, /usr/lib64, etc. Determine if a suffix is needed based on the current architecture. """ + + arch = platform.machine() + if arch == "armv7l": + return "/arm-linux-gnueabihf" + bits = platform.architecture()[0] if bits == "64bit": return "/x86_64-linux-gnu" else: return "/i386-linux-gnu" ** Affects: freeipa (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1600634 Title: ipa-server-install: On non-x86, errors enabling compatibility plugin for dirsrv To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/freeipa/+bug/1600634/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs