Summary: | aspell-de does not build because of missing unsq | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Andreas Simon <andreas.w.simon> |
Component: | Current packages | Assignee: | Seemant Kulleen (RETIRED) <seemant> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | High | ||
Version: | 1.2 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Fix for the aspell-de build bug
modified patch from Andreas using the ${S} var instead sorry...the previous one had a typo. This one should work. |
Ther was a typo in my last comment after the `Btw'. I meant that I have this error with both versions: app-i18n/ispell-de-20001109 and app-i18n/ispell-de-20011124. Sorry for that. I should sleep longer ;-) Just ignore these last comments about ispell-de. This is aspell-de only. No problems with ispell-de. Cheers, Andreas ispell *is* affected:
[root@death app-i18n]# emerge ispell-de
Calculating dependencies ...done!
>>> emerge app-i18n/ispell-de-20001109 to /
>>> md5 ;-) igerman98-20001109.tar.bz2
>>> Unpacking source...
>>> Unpacking igerman98-20001109.tar.bz2
>>> Source unpacked.
cd dicts; find . -name "*.sq" |while read i; do unsq < $i > `basename $i .sq` &&
rm $i; done
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
/bin/sh: unsq: command not found
make: *** [unpack] Error 127
!!! ERROR: The ebuild did not complete successfully.
!!! Function src_compile, Line 2, Exitcode 2
!!! (no error message)
!!! emerge aborting on /usr/portage/app-i18n/ispell-de/ispell-de-20001109.ebuild .
Install is uptodate and ispell/aspell work with the standard dicts.
ispell-de-20011124 (masked) works. There is some magic for 'unsq' in this ebuild which I guess is just missing in the other {i|a}spell-de ebuilds. Created attachment 1583 [details, diff]
Fix for the aspell-de build bug
I fixed the bug and attached the patch.
Cheers,
Andreas
Andreas, will this work with ispell-3.2blah? I remember masking that version and offering the old ispell because of all the breakages... Yes, it works with app-text/ispell-3.2.06-r1, that is the version I am using. I haven't tested if that fix breaks older versions of ispell (those which still contain unsq), but I don't think so. BTW, I see that there are also ispell-ru, ispell-es, and aspell-es ebuilds. I haven't tested these three but I guess they need the same treatment to build with ispell 3.2.06. ispell-de-20011124.ebuild already has the fix. Another way to fix that ispell 3.2 misery is patching ispell itself so that it includes unsq again. Mandrake Cooker does so. But according to their ChangeLog they do quite a lot of patching to ispell. See http://rpmfind.net//linux/RPM/cooker/cooker/i586/Mandrake/RPMS/ispell-3.2.06-5mdk.i586.html Cheers. Andreas
YOur patch doesn't seem to work here...
emerge aspell-de
Calculating dependencies ...done!
>>> emerge app-i18n/aspell-de-20001109 to /
>>> md5 ;-) igerman98-20001109.tar.bz2
>>> Unpacking source...
>>> Unpacking igerman98-20001109.tar.bz2
>>> Source unpacked.
make: *** No rule to make target `/bin/sq.pl'. Stop.
!!! ERROR: The ebuild did not complete successfully.
!!! Function src_compile, Line 5, Exitcode 2
!!! (no error message)
!!! emerge aborting on /usr/portage/app-i18n/aspell-de/aspell-de-20001109.ebuild .
Jens
I just tested it again and it still works here. Your error message implies that `pwd` returns the empty string or '/' when executing src_compile(). That is not the case on my system with the last ten versions of Portage. `pwd`/bin/sq.pl should return /var/tmp/portage/aspell-de-20001109/work/igerman98-20001109/bin/sq.pl and it does here. Maybe there is a better solution than using `pwd` to get this path but I haven't found yet any documention for Portage's runtime variables. I just can't make any meaning out of variable names like MY_P, PV, etc. as they are used in ebuilds. Thus I used `pwd`. Cheers, Andreas That doesn't work. 'pwd'/bin/sq.pl just returns the current directory. But if you use the {S} var instead the patch works. Created attachment 2065 [details, diff]
modified patch from Andreas using the ${S} var instead
Created attachment 2066 [details, diff]
sorry...the previous one had a typo. This one should work.
ok, the error for ispell-de should have disappeared by now, if you emerge the new ispell ebuild (-r2). I am now working on aspell issues. I'd rather patch up aspell if necessary. Or maybe make aspell depend on ispell? investigating, either way. Just installed ispell-r2 (with disabled sandbox, see bug #4859). With that version the ispell-de error is indeed fixed :-) Regarding making aspell depend on ispell: Because aspell is a better ispell, I think it would not be cool to have ispell installed if one only wants aspell. But if it's easier than patching up aspell... ;-) Thanks. you know what's interesting? the tar.bz2 for ispell-de and aspell-de is exactly the same. this leads one to wonder what the differences are between an aspell version and ispell version of the hash and what-not actually are... in light of your statement about aspell and ispell having to be both installed, when one would rather not, I am now thinking about maybe distilling sq and unsq from ispell and making a spell-common ebuild out of that. That way, ispell and aspell and their related packages can just rely on that. On the other hand, perhaps local USE settings within the dictionaries themselves could do an ispell or an aspell dictionary, or both... waddaya think? > the tar.bz2 for ispell-de and aspell-de is exactly the same. I can understand that they both use the same wordlists to generate the actual dictionaries. Compiling those wordlists is a tedious task. But that the complete tarballs are exactly the same? Strange. But looking at the sizes of the dictionaries in /usr/lib/aspell and /usr/lib/aspell shows that they seem to differ. > I am now thinking about maybe distilling sq and unsq > from ispell and making a spell-common ebuild out of that. Putting unsq and sq into it's own package sounds okay. I wonder how the other distros (mandrake, redhat, etc.) solved all this. I remember that unsq was part of the ispell rpm in Mandrake and that aspell did'nt depend on ispell. But I can't check this right now, because I switched my last system from Mandrake to Gentoo a couple of days ago ;-) But aspell-de (and maybe other aspell dicts too) come with their own unsq script, right? Maybe Mandrake just uses the ispell-unsq for the ispell dicts and for the aspell dicts they use the unsq script which comes with the dictionary. Then the problem with ispell is solved by patching ispell, and because aspell-de uses it's own unsq it doesn't depend on ispell or some spell-common package. actually, I looked at the spec files from mandrake, redhat and pld, and none uses sq or unsq. In fact, they use a different dictionary altogether for aspell-de. They look like they're all using a really old dictionary of it, in fact. Meanwhile, if you look on the aspell-de author's homepage, he has an aspell-de package. That, indeed, does not use sq or unsq. It looks like it comes with all that stuff pre-done. Care to have a look? http://freesoftware.fsf.org/download/aspell/ Yes the stuff at http://freesoftware.fsf.org/download/aspell/ doesn't use sq/unsq, so it seems the hash tables are already generated there (I think these are the cwl files). But the aspell-de package is also (like Redhat/Mandrake) not based on the latest igerman98-wordlist (it uses the list from April, latest is November) So I took a look at the igerman wordlist, which is the base for the ispell and aspell dictionaries. The URL is http://lisa.goe.net/~bjacke/igerman98/dict/ or http://lisa.goe.net/~bjacke/igerman98/ (in german) In the newest igerman98-20011124 tarball I found the following in INSTALL.aspell: 0. You need to have installed BOTH Ispell (just for affix expansion during installation process) and Aspell (for hashfile creation) on your system. For convenience (and people with only 32 MASKBITS ...) I will also put an aspell package on the igerman98 homepage that doesn't need ispell for installation. So unsq/sq from ispell is a build requirement for the aspell dicts. Also there exists pregenerated aspell dictionaries which do not need unsq/sq at all (BTW, I haven't found this mentioned aspell package on his homepage) So you have three options: (a) Make some spell-dict-helper package with unsq/sq from ispell. All ispell and aspell dicts need to depend on it. Then the aspell dicts need not depend on ispell. (b) Use one of those pre-generated aspell dictionaries. The pre-done dicts are not up-to-date. Generating new ones is more work for the maintainer of the ebuild - he must regenerate them whenever a new wordlist is released (but I think this is very rare). But as one can see in Mandrake/Redhat/etc. it's easy to forget to update the dicts. (c) Just make the aspell dicts depend on ispell I would just choose (c), it's the easiest. The additional needed work for (a) or (b) seem to be about the same (a needs an new ebuild, b needs a new tarball with up-to-date pre-generated dicts). So I would prefer (b) over (a) because it doesn't increase to number of ebuilds. It's your choice ;-) I really hate this konqeror bug. Konqueror has some problems with line feeds in textareas :-\ Sorry for those ueber-long lines. in other words, we just leave things as they are? :P Yes, now that ispell provides unsq and apell-de depends on ispell everything works. This bug is fixed :-) Thanks. |
app-i18n/aspell-de-20001109 does not build. Here is the output of emerge: obsidian portage # emerge aspell-de Calculating dependencies ...done! >>> emerge app-i18n/aspell-de-20001109 to / >>> md5 ;-) igerman98-20001109.tar.bz2 >>> Unpacking source... >>> Unpacking igerman98-20001109.tar.bz2 >>> Source unpacked. cd dicts; find . -name "*.sq" |while read i; do unsq < $i > `basename $i .sq` && rm $i; done /bin/sh: unsq: command not found ... ... (many identical lines deleted) ... /bin/sh: unsq: command not found make: *** [unpack] Error 127 !!! ERROR: The ebuild did not complete successfully. !!! Function src_compile, Line 2, Exitcode 2 !!! (no error message) !!! emerge aborting on /usr/portage/app-i18n/aspell-de/aspell-de-20001109.ebuild . I checked up Mandrake. There the 'unsq' commando is part of ispell. But doing a 'qpkg -l ispell' shows that there is no unsq in app-text/ispell-3.2.06-r1. Btw, I have the very same error when trying to emerge app-i18n/ispell-de-20001109. Cheers, Andreas