Right now, there are several barriers in place to other distributions implementing the ipa-client.
If we want to be able to support clients running on Debian, Ubuntu, Mandriva, SUSE, etc. we need to make the following changes.
The biggest problem with a separate ipa-client tarball is what to include in it and how to install the result.
There is a shared component, ipa-python, that contains common code used by client and server. This currently builds as a separate package, ipa-python. There is also the admintools component, I suspect that would be desirable as well. It would be very heavy-weight to build these independently.
On RHEL 5.6/6.0 I got around this by pushing the required ipa-python bits into the ipa-client python package. This required some import changes. We didn't ship the ipa tool.
Perhaps we can take that spec file and use it as a demonstration on how to package.
The suggestion on making authconfig is a good one. We would require 2 modes, installation and uninstallation.
The code in FreeIPA 2.1.3 and master now supports abstraction of authconfig code. One can make a plugin in ipapython/platform/ to override behavior of authconfig calls. The interface towards the Authconfig class is simple and expects that original authconfig options are accepted by the class with enable()/disable() methods. How actual configuration is done is left for implementation. Thus, one can use manual page of authconfig to consult expected input parameters and write proper implementation for platforms not supported by authconfig itself.
We do not distribute ipa-client-install in a separate tarball though. I would consider it a job of a platform package maintainer to take full FreeIPA tarball and build only relevant parts of it -- this is more reasonable because there is fair amount of common Python code (ipapython) that is shared between server and client side. In addition, ipapython.platform must be extended with a new plugin to support new platform, and whole FreeIPA should be configured with it which is done at top level Makefile.
I'm closing this bug after discussion with Stephen Gallagher as we have already all needed helpers for packagers to discover how to properly package client only:
Rename component.
Metadata Update from @sgallagh: - Issue assigned to abbra - Issue set to the milestone: FreeIPA 3.0 Core Effort - 2011/11
Login to comment on this ticket.