#5400 closed enhancement (complete)

better integration of premium build

Reported by: fdupont Owned by: wlodekwencel
Priority: high Milestone: Kea1.4
Component: build system Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description

Today premium is a submodule with a AC_CONFIG_SUBDIRS to chain configure scripts.
This does not work well because many things are lost in chaining and there is no easy way to fix this.
My idea is to include the premium configure part as a m4 macro using a m4_sinclude which will be processed in the autoreconf phase.

Subtickets

Change History (16)

comment:1 Changed 17 months ago by fdupont

The same can solve #5412 problem as it provides a conditional evaluation at the proper time.

comment:2 Changed 17 months ago by tomek

  • Milestone changed from Kea-proposed to Kea1.4

Per 2017-11-02 call, accepting in 1.4.

comment:3 Changed 16 months ago by fdupont

  • Owner set to fdupont
  • Status changed from new to accepted

comment:4 Changed 16 months ago by fdupont

Almost done but I need to know how the tools/premium-repack is used to update it...

comment:5 Changed 16 months ago by fdupont

  • Owner changed from fdupont to UnAssigned
  • Status changed from accepted to assigned

Done:

  • instead of chained configure now premium is an optional macro in top configure.ac
  • I added provision for a config submodule
  • I adapted #5412 idea to keep the tier1/tier2 options in make dist
  • I changed the tool tools/premium-repack: now it must be invoked from a fresh kea source directory and copies 3 files configure, Makefile.in and config.h.in in the distributions

comment:6 Changed 15 months ago by fdupont

  • Priority changed from medium to high

I bump the priority of this ticket because it should be fine it is reviewed before #5420 / #5421 work.

comment:7 Changed 15 months ago by fdupont

  • Status changed from assigned to reviewing

comment:8 Changed 14 months ago by tmark

  • Owner changed from UnAssigned to tmark

comment:9 follow-up: Changed 14 months ago by tmark

  • Owner changed from tmark to fdupont

This is certainly much cleaner that what we had before and faster too. I like that we are no longer duplicating a lot of config logic. It seems to work well. Two questions:

kea/configure.ac:

Why is there logic for a "contrib" directory/module?

premium:

Why are the .m4 files not in a premium/m4macros directory?

comment:10 in reply to: ↑ 9 ; follow-up: Changed 14 months ago by fdupont

  • Owner changed from fdupont to tmark

Replying to tmark:

This is certainly much cleaner that what we had before and faster too.

=> it is a drastic change so I was afraid it was not accepted for its few negative side effects.

I like that we are no longer duplicating a lot of config logic. It seems to work well. Two questions:

kea/configure.ac:

Why is there logic for a "contrib" directory/module?

=> prevision for the future. IMHO one of the reasons we don't manage a contrib submodule
is because we don't know how to attach it to Kea core. Now it is ready...
Of course if you believe it is too soon we can remove these few lines.

premium:

Why are the .m4 files not in a premium/m4macros directory?

=> a directory wins one entry in the submodule top directory which is not crowed as
Kea core top one. A matter of taste... of course both work.

comment:11 in reply to: ↑ 10 ; follow-up: Changed 14 months ago by tmark

  • Owner changed from tmark to fdupont

Replying to fdupont:

Replying to tmark:

This is certainly much cleaner that what we had before and faster too.

=> it is a drastic change so I was afraid it was not accepted for its few negative side effects.

For the record, could itemize what you feel are the negative side effects? Nothing obvious stood out to me.

I like that we are no longer duplicating a lot of config logic. It seems to work well. Two questions:

kea/configure.ac:

Why is there logic for a "contrib" directory/module?

=> prevision for the future. IMHO one of the reasons we don't manage a contrib submodule
is because we don't know how to attach it to Kea core. Now it is ready...
Of course if you believe it is too soon we can remove these few lines.

premium:

Why are the .m4 files not in a premium/m4macros directory?

=> a directory wins one entry in the submodule top directory which is not crowed as
Kea core top one. A matter of taste... of course both work.

Ok, I don't suppose it matters much. On the one hand I prefer the symmetry of having the subdir,
on the other it is helpful to see config.m4 where one might expect to a .ac file. I'll leave it
to you.

comment:12 in reply to: ↑ 11 ; follow-up: Changed 14 months ago by fdupont

Replying to tmark:

For the record, could itemize what you feel are the negative side effects? Nothing obvious stood out to me.

=> it changes the way premium and subscriber distrb packages are built because configure and Makefile.in
of the core Kea top directory must be included in them.

I'll leave it to you.

=> so it is ready for merge. What to put in the 2 ChangeLogs?

comment:13 Changed 14 months ago by fdupont

  • Owner changed from fdupont to tmark

comment:14 in reply to: ↑ 12 Changed 14 months ago by tmark

  • Owner changed from tmark to fdupont

Replying to fdupont:

Replying to tmark:

For the record, could itemize what you feel are the negative side effects? Nothing obvious stood out to me.

=> it changes the way premium and subscriber distrb packages are built because configure and Makefile.in

This is of course done automatically right? If so I don't think I see an issue with that. Wlodek may need to know if this would change his processes. Perhaps you should have him look this over.

of the core Kea top directory must be included in them.

I'll leave it to you.

=> so it is ready for merge. What to put in the 2 ChangeLogs?

Just describe the changes as you normally would. Something like this?
main:

"Modified configure.ac to include premium module m4 macros, if the module is present. Prior
to this it relied on premium having it's own configure.ac script"

premium:

"Replaced configure.ac script with m4 macros which are included by main repo configure.ac"

Oh, regarding the contrib logic. I think you should add a comment on why it is there and/or
comment it out.

comment:15 Changed 14 months ago by fdupont

  • Owner changed from fdupont to wlodekwencel

merged. Gave it to wlodek so he can look at it.

comment:16 Changed 14 months ago by fdupont

  • Resolution set to complete
  • Status changed from reviewing to closed

Closing...

Note: See TracTickets for help on using tickets.