[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rethinking Qt headers (should the header packages be recombined?)



> Ben, I always appreciate your work but I think from the developers perspective 
> you just need to have a way to get the legacy headers out of the way.

We have that already.  -DQT_NO_COMPAT.

> So if we revert this and put the legacy headers back, even change 
> them, which I consider to be even more evil than anything else because you're 
> supposed to package the code and not to put your own stuff into it ...

It's not evil at all.  We're allowed to by the Qt license, and adding
#warnings to the legacy headers will not change any of the interfaces
that the headers define.

> whole point of 4 weeks of hard work was pretty pointless.

I appreciate this and I wish I'd written this email four weeks ago.
I've also had similar experiences where I've poured a large amount of
work into something only to be told later that there are technically
preferable solutions.  And in a situation like this, it's frustrating
but I'll argue that the technical benefit should outweigh the emotional
and time investment.

> It's as simple as reading README.Debian if something doesn't compile. 

Well, it's simpler if things compile in the first place.

Let's compare the libqt3-compat-headers solution vs the #warnings in
legacy headers solution.

Both solutions make the developer aware that they're using legacy
headers.  The difference is that the libqt3-compat-headers solution
forces a compile error, saying "address this issue NOW", whereas the
#warning solution just alerts the developer, saying "address this issue
when you get around to it".

If the developer is conscientious, they'll fix the warnings by fixing
their #includes.  You're happy and the developer is happy.

If the developer is lazy, they'll ignore the warnings.  But then again,
if the developer is lazy, I'd expect they'll just install
libqt3-compat-headers to make the build errors go away.  Which then has
the disadvantage that they'll never be told about legacy headers again
(as opposed to the #warning solution, where they'll continue to be
reminded).

So in this sense, I can't see any clear benefit that
libqt3-compat-headers has over the #warnings.  However, it has the clear
disadvantage that, for users (who aren't upstream developers), code will
fail to compile and they'll have to rummage around looking for
information on how to fix it (and, as has been pointed out elsewhere on
this thread, they'll need to be root to do it).

Ben. :)



Reply to: