[PATCH] Fix the samba3 dependency hell

Andreas Schneider asn at samba.org
Thu Nov 24 06:52:12 UTC 2016


On Wednesday, 23 November 2016 21:52:21 CET Michael Adam wrote:
> On 2016-11-22 at 17:36 +0100, Andreas Schneider wrote:
> > On Tuesday, 22 November 2016 14:20:00 CET Andreas Schneider wrote:
> > > Hello,
> > > 
> > > last week I sent a patch to fix an issue with newer versions of the gold
> > > linker complaining about our circular dependencies.
> > > 
> > > This patch did not work on Ubuntu. It looks like I produces an issue
> > > with
> > > the Kerberos library. On Ubuntu 14.04 we link against openldap2 libaries
> > > which link against Kerberos libraries. So when we link smbd we link
> > > against
> > > two Kerberos libaries, yay!
> > > 
> > > 
> > > However I needed a different approach to fix the circular dependencies.
> > > Yes, we have two of them:
> > > 
> > > param => smbconf
> > > smbconf => param
> > > 
> > > and
> > > 
> > > smbconf => smbregistry
> > > smbregistry => smbconf
> 
> There are more, just not so simple ones.
> I'll post a patchset that resolves another
> circular dep which I fixed 3 years ago.
> Just found the patch again. ;-)
> 
> > > I've tried to change smbconf first to only consume samba-hostconfig, but
> > > this didn't work. Decoupling param from smbconf is also not possible. So
> > > thinking about this mess there was only one solution.
> > > 
> > > As smbconf is a public library, param a subsystem and smbregistry a
> > > library
> > > the correct thing to do is to push everything in smbconf library.
> > > 
> > > That's what I did. So everything links against smbconf now.
> > > 
> > > 
> > > Please review the attached patchset and push if you're ok.
> > > 
> > > 
> > > 
> > > Thanks,
> > > 
> > > 	Andreas
> > 
> > Updated patchset
> 
> What is the update about? :-)
> (Sure I could diff the patchset files... ;-)

One additional small patch (the last one) and commit message updates.

> No final review yet, but a few initial thoughts:
> 
> - Why the 55 reformatting patches?
>   This kind of contradicts the samba guidelines
>   of only reformatting the contexts that we touch
>   with the actual changes.

a) There is no real formatting in that file
b) It makes it later easier to see what a patch actually changes. If you have
   everything in one line and remove one or two dependencies it is really hard
   to spot that. The motivation was to make reviewing real patches much 
   simpler.

> - Regarding the actual dependency changes, I would
>   like to think about this a little more, as I was
>   on it some time ago but got distracted. I assume
>   though that your approach is correct at least
>   for the short term.

I tried to remove the param dependency from smbconf, and only use samba-
hostconfig but failed at lp_clustering() also other dependencies like 
samba3util or samba3-util require param.

Then I tried it the other way around move smbconf stuff from param into it's 
own library. This also doesn't work ...


The long term goal should be to remove the param/smbconf dependency from most 
of the things. We need something more lightweight we pass down the stack.


> - The smaller dep-change patches are definitely ok.
> 
> Will follow up ...

Please call and lets talk about it on the phone :)


	Andreas

-- 
Andreas Schneider                   GPG-ID: CC014E3D
Samba Team                             asn at samba.org
www.samba.org



More information about the samba-technical mailing list