#6517 Support client-only build
Closed: fixed Opened by pspacek.

During Build system refactoring sprint there was not enough time to make server an optional component.

This is placeholder ticket for supporting client-only builds in FreeIPA build system.

Relevant discussion can be found in following e-mail thread:
https://www.redhat.com/archives/freeipa-devel/2016-November/msg00824.html


Client only build is also relevant for integration effort. At the moment I have to install a bunch of extra packages and/or set ENV vars to make ./configure work, although I only need ./configure to generate ipasetup.py and config.h. For ipaclient Python packages I don't need 389 plugins, Samba stuff etc.

Preparation patch was pushed:

master:

  • 70554938d4f9ba5b347cd4bc8001428e905198e4 Client-only builds with --disable-server
  • 41d7ae54fafc6deb602e1a990eaec37c6ae4880b ipa_pwd: remove unnecessary dependency on dirsrv plugins
  • 20c1eb9844223d892da47da1ea10662d37953ff8 Add missing include of stdint.h for uint8_t
  • 2747f2ad782c7640ecc6949098f0d43411182255 Add --without-ipatests option

In order to do client only build, one has to run configure with --disable-server and --without-ipatests option.

These patches does not solve client only build.

I will need to prepare new PR

Right, that is why the ticket was not closed and was called "preparation patch".

Replying to [comment:6 pvoborni]:

Right, that is why the ticket was not closed and was called "preparation patch".

And BTW please revert the latest change in design page. There was a long discussion about build refactoring
and design was set to the stone :-). If we want to change it then we need to discuss again. Fixing of typo would be acceptable.

The updated design page is correct. Petr's documentation explains how packages are going to build packages without server components and without Python test and integration suite. Your use case "build client-only without ipatests package" is covered.

Please proceed and take care of freeipa.spec according to the design page. I like to close this ticket.

Replying to [comment:8 cheimes]:

The updated design page is correct. Petr's documentation explains how packages are going to build packages without server components and without Python test and integration suite. Your use case "build client-only without ipatests package" is covered.

Documentation is incomplete => wrong. Configure will still require server related dependencies with the example for client only build. Because tox use-case is not a client only build.

Section: Packager - client only build is wrong.
And bad documentation is worst then missing documentation.

The only correct information is about --disable-server in table. But that was written last year.

Anyway there should be discussion about such change in design document and there wasn't.

Please remove changes which were done in February 2017.

Please proceed and take care of freeipa.spec according to the design page. I like to close this ticket.

ATM, client-only build is not just about packaging change. So we cannot close the ticket.

There is clear note that it is not working yet. And this ticket will handle it. I won't remove anything.

Metadata Update from @pspacek:
- Issue assigned to someone
- Issue set to the milestone: FreeIPA 4.5 backlog

master:

  • e42a846506ee7ad5e8a395da154bec64f6be3654 spec file: support build without ipatests
  • 417f1926c48b426b34b18edb28869f4f06824873 spec file: support client-only build

Metadata Update from @jcholast:
- Issue close_status updated to: None

master:

  • fd1b4f6ec9a349196d5df510008c4745f0b1fb84 Add options to run only ipaclient unittests
    ipa-4-5:

  • 29b885a8fac82e963f5ab98d178e81854056930e Add options to run only ipaclient unittests

Client-only packaging and client-only testing have been implemented. I don't think there is anything left to do. Please open a new ticket if there are additional tasks required.

Metadata Update from @cheimes:
- Issue close_status updated to: fixed

Metadata