Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 146626 - kde-base/kdelibs missing USE=hspell
Summary: kde-base/kdelibs missing USE=hspell
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Stefan Schweizer (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-06 19:06 UTC by Carsten Lohrke (RETIRED)
Modified: 2006-09-10 15:09 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carsten Lohrke (RETIRED) gentoo-dev 2006-09-06 19:06:30 UTC
You added hspell as dependency to kdelibs, weird, incorrectly and broke the tree

- !< should be >= 1.0
- there's a spell umbrella use flag, you should have noticed
- you've added it as compile time only (I doubt it's statcally included, but I might be wrong)
- you've not added the relevant configure stuff - to recap that: adding use flags without using (or having) proper configure flags is not accetable, sinc it leads to non-deterministic build behaviour
- did you ask anyone of the KDE team before doing so at all?
- only a small subset of the architectures which have kdelibs keyworded have hspell keyword

In short: That was bullshit, revert please.
Comment 1 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-09-06 20:48:48 UTC
In the future; please file a bug with a useful summary.
Comment 2 Stefan Schweizer (RETIRED) gentoo-dev 2006-09-06 22:59:26 UTC
(In reply to comment #0)
> - !< should be >= 1.0
I want to block older versions because they block compile

> - there's a spell umbrella use flag, you should have noticed
there is no hspell useflag and hspell!=spell

> - you've added it as compile time only (I doubt it's statcally included, but I
> might be wrong)
I have not added it as a depend, but as a blocker.

> - you've not added the relevant configure stuff - to recap that: adding use
> flags without using (or having) proper configure flags is not accetable, sinc
> it leads to non-deterministic build behaviour
I did not add the use flag, but you are probably right here, we need a hspell useflag.

> - did you ask anyone of the KDE team before doing so at all?
I am on the kde team, but if you do not like it you are of course free to revert it.

> - only a small subset of the architectures which have kdelibs keyworded have
> hspell keyword
we can only do the proper usefalagging and depending and dropping the unsupported keywords in a new revision, when do you plan to push that out? Can we please get that in then?
Comment 3 Kevin F. Quinn (RETIRED) gentoo-dev 2006-09-07 00:12:33 UTC
The sensible way to do this is:

...
IUSE="acl alsa arts cups doc hspell jpeg2k kerberos legacyssl noutempter openexr spell ssl tiff zeroconf kernel_linux fam"
...

DEPEND="${RDEPEND}
    doc? ( app-doc/doxygen )
    sys-devel/gettext
    dev-util/pkgconfig
    hspell? (>=app-text/hspell-1.0)"
...
    myconf="--with-distribution=Gentoo
            $(use_enable fam libfam) $(use_enable kernel_linux dnotify)
            --with-libart --with-libidn
            $(use_with acl) $(use_with ssl)
            $(use_with alsa) $(use_with arts)
            $(use_with kerberos gssapi) $(use_with tiff)
            $(use_with jpeg2k jasper) $(use_with openexr)
            $(use_enable cups) $(use_enable zeroconf dnssd)
            $(use_with hspell)"

and obviously add hspell to use.local.desc.

Using the automatic configure to detect the presence of hspell is wrong, as it means the build depends too much on the configuration of the host system.  Think about building binpkgs for delivery to other machines.  For the same reason I reckon the aspell dependency should be managed the same way I've proposed for hspell above; i.e. IUSE+=aspell, $(use_with aspell).
Comment 4 Carsten Lohrke (RETIRED) gentoo-dev 2006-09-07 03:03:33 UTC
(In reply to comment #2)
> there is no hspell useflag and hspell!=spell

As you see, when looking at the ebuild, we use a single spell use flag, chosing the most sensiblbe default - in this case obviously some linguas_he? magic is needed.
 
> > - you've added it as compile time only (I doubt it's statcally included, but 
> > might be wrong)
> I have not added it as a depend, but as a blocker.

So you you don't care for correct dependencies!? 

> > - you've not added the relevant configure stuff - to recap that: adding use
> > flags without using (or having) proper configure flags is not accetable, sinc
> > it leads to non-deterministic build behaviour
> I did not add the use flag, but you are probably right here, we need a hspell
> useflag.

No.
 
> > - did you ask anyone of the KDE team before doing so at all?
> I am on the kde team, but if you do not like it you are of course free to
> revert it.

You never asked to join the KDE team, getting the emails through the alias doesn't make you a member of any team. The current project page is just incorrect.

 
> > - only a small subset of the architectures which have kdelibs keyworded have
> > hspell keyword
> we can only do the proper usefalagging and depending and dropping the
> unsupported keywords in a new revision, when do you plan to push that out? Can
> we please get that in then?

Uh, it's your job to file a bug and get hspell keyworded on all architectures before filing a bug asking the KDE team to add hspell to the ebuild.

I can't imagine that you still haven't reverted your changes. You broke the tree. Fix that!
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2006-09-07 04:53:40 UTC
(In reply to comment #4)
> I can't imagine that you still haven't reverted your changes. You broke the
> tree. Fix that!

Nonsense... There's no dependency tree borkage as there's no dependency, there's a blocker. Chill out a bit, I guess.
 

Comment 6 Carsten Lohrke (RETIRED) gentoo-dev 2006-09-07 06:45:43 UTC
I've removed the pointless blocker for now.
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2006-09-07 07:05:43 UTC
(In reply to comment #6)
> I've removed the pointless blocker for now.

Well, this is wrong, see Bug 114161. The blocker needs to stay there or you need to hard-disable hspell again, until this gets fixed properly. It won't compile w/ anything <1.0

Comment 8 Kevin F. Quinn (RETIRED) gentoo-dev 2006-09-07 07:13:28 UTC
(In reply to comment #3)

actually:
>     hspell? (>=app-text/hspell-1.0)

should be on the initial RDEPEND, of course.
Comment 9 Carsten Lohrke (RETIRED) gentoo-dev 2006-09-07 07:53:19 UTC
(In reply to comment #8)
> (In reply to comment #3)
> 
> actually:
> >     hspell? (>=app-text/hspell-1.0)
> 
> should be on the initial RDEPEND, of course.

As long as hspell is not keyworded (or use masked, if it doesn't work) by all architectures, definitely not. 


Jakub: *sigh", readded --without-hspell



 
Comment 10 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-09-07 10:08:26 UTC
Isn't there problem with aspell as well? Looking at the ebuild, following scenario seems possible to me:
- user has aspell installed, kdelibs build --with-aspell
- user installs ispell and uninstalls aspell, spell? ( ) dep is satisfied, but kdelibs are build against nonexisting package
Comment 11 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-09-07 11:05:28 UTC
(In reply to comment #10)
> Isn't there problem with aspell as well? Looking at the ebuild, following
> scenario seems possible to me:
> - user has aspell installed, kdelibs build --with-aspell
> - user installs ispell and uninstalls aspell, spell? ( ) dep is satisfied, but
> kdelibs are build against nonexisting package
> 

So when you switch spelling backends you would expect kdelibs to be rebuilt?  This cannot be automated at present.
Comment 12 Kevin F. Quinn (RETIRED) gentoo-dev 2006-09-08 02:03:01 UTC
(In reply to comment #10)
> Isn't there problem with aspell as well? Looking at the ebuild, following
> scenario seems possible to me:
> - user has aspell installed, kdelibs build --with-aspell
> - user installs ispell and uninstalls aspell, spell? ( ) dep is satisfied,
> but kdelibs are build against nonexisting package

Yes, IMO it's a problem - caused by using configure to detect the libraries available on the host system and building against them, instead of making the dependency specific according to user selection.

I would expect removing a dependency would cause 'emerge -pv world' to cause the dependency to be pulled back in.  Currently, however:

USE="spell"

emerge app-text/aspell
emerge kde-base/kdelibs
emerge -C app-text/aspell

leaves you with a kdelibs that will fail when it tries to access libaspell, but:

emerge -p world

won't try to pull app-text/aspell back in again - when clearly it is a dependency of kdelibs as built.  Normally if you unmerge a package that is a dependency from world, it would be built anew when you emerge world.


If, however, the dependency included something along the lines of:

aspell? ( || ( app-text/aspell app-dicts/aspell-en ) )

then 'emerge world' would pull aspell back in again if it had been removed.


I'm not sure how the ispell dependency works; ispell does not provide any libraries, just the dictionaries themselves and a bunch of console apps to access them - thus perhaps that should be an RDEPEND anyway.
Comment 13 Seemant Kulleen (RETIRED) gentoo-dev 2006-09-08 03:58:39 UTC
"aspell? ( app-text/aspell)" is perfect.  No need for the aspell-en business.
Comment 14 Matteo Azzali (RETIRED) gentoo-dev 2006-09-08 04:44:52 UTC
Sorry but I don't understand all this.
hspell is not even supported (allmasked) at present time,
and spell flag + linguas_he could do easily the trick:

spell? ( linguas_he? >=app-text/hspell-1.0
         !linguas_he? ( || (  ( app-text/aspell )
                                  app-text/ispell ) )

for the switching issue, users aren't supposed to switch their spelling
mechanism every day, a warning at postinst of kdelibs is all what's needed...
Comment 15 Diego Elio Pettenò (RETIRED) gentoo-dev 2006-09-08 05:32:06 UTC
I'm not really fond of the linguas_he approach, because it's not possible to mask hspell on arches where it does not work.

And knowing the kspell support probably better than most of you show to know, I think I should say that both hspell, aspell and ispell are used with the commandline tools, not with libraries, by kspell. It's kspell2 that links aspell's library, but that is not used by anything and we might as well drop its support, as it's not complete for what I can see.

This means that all of them can be simply merged at runtime and should work.

So we can just remain with --without-hspell, that will disable the unused kspell2 plugin, and then leave the users needing hspell to use the proper kspell support that's actually used. by merging hspell by hand, whichever version.

Is this good enough as a solution?
Comment 16 Kevin F. Quinn (RETIRED) gentoo-dev 2006-09-08 08:51:14 UTC
I just checked my system (kde 3.5.2) and nothing explicitly needs libkspell2 (apart from kspell_aspell and kspell_ispell which are also not explicitly needed by anything else).

However, as plugins, I'd expect them to be linked dynamically at runtime via dlopen(), in which case they won't appear in DT_NEEDED lists - so they may still be used by something.

Also, mine was built --without-hspell but the kspell2 stuff was still built (for aspell and ispell) - so to prevent kspell2 being built presumably you would need something else as well.
Comment 17 Diego Elio Pettenò (RETIRED) gentoo-dev 2006-09-08 09:09:09 UTC
KSpell2 is not used by anything for what I've researched some time ago when I wrote a hunspell plugin for it. It's not even complete, so it's basically useless. The plugins will be loaded at runtime, but KSpell2 needs to be linked explicitly, so you can check by yourself that nothing uses it already. For this reason, there's no need for hspell to be enabled at build time in kdelibs; you can enable it if it's installed from the KSpell configuration. At the same time we could still use --without-aspell in the econf call and not loose any feature used by programs, that is spell checking inside KMail, Konqueror, KWord and so on.

For this reason, I'd say this bug is entirely pointless, just stick with --without-hspell to avoid building the unused KSpell2 plugin, and thus fail to build when hspell < 1.0 is installed, and we're fine.
Comment 18 Stefan Schweizer (RETIRED) gentoo-dev 2006-09-10 15:09:27 UTC
Thanks flameeyes for solving this :)