Created attachment 446962 [details] build log On my hardened ~amd64 system with unmasked readline I see the following build failure. ;; Loading file /var/tmp/portage/dev-lisp/clisp-2.49-r8/work/clisp-2.49/builddir/readline/readline.fas ... *** - FFI::FIND-FOREIGN-VARIABLE: foreign variable #<FOREIGN-VARIABLE "rl_readline_state" #x0000012430C26F00> does not have the required size or alignment
Created attachment 446964 [details] emerge --info
Same here, got a patch.
Created attachment 447492 [details, diff] patch for readline.lisp and clisp-2.49-r8.ebuild (should be -r9 I guess)
(In reply to David Haller from comment #3) > Created attachment 447492 [details, diff] [details, diff] > patch for readline.lisp and clisp-2.49-r8.ebuild (should be -r9 I guess) Unfortunately the patch didn't work here. The error is the same (modulo a changed constant which is probably irrelevant).
(In reply to Markus Oehme from comment #4) > Unfortunately the patch didn't work here. The error is the same (modulo a > changed constant which is probably irrelevant). build.log?
Created attachment 448112 [details] build log including proposed patch Here you go.
Upstream bug report: https://sourceforge.net/p/clisp/bugs/688/
The proposed patch in the upstream bug worked for me.
*** Bug 595484 has been marked as a duplicate of this bug. ***
The proposed patch in the upstream bug worked for me too.
(In reply to email200202 from comment #10) > The proposed patch in the upstream bug worked for me too. This patch (naturally) breaks building clisp for all users who has <sys-libs/readline-7, i.e., for the vast majority of users. The same error: ;; Loading file /var/tmp/portage/dev-lisp/clisp-2.49-r9/work/clisp-2.49/builddir/readline/readline.fas ... *** - FFI::FIND-FOREIGN-VARIABLE: foreign variable #<FOREIGN-VARIABLE "rl_readline_state" #x0000000000847C20> does not have the required size or alignment
One more comment: clisp with this patch (for those users who has installed readline-7) should be in a new subslot, because it will break all packages depending on it: maxima, fricas, ... They will need re-emerging.
Andrey, For ~amd64, the current situation is that you cannot build the latest versions: (unstable version)realine-7 (stable version)clisp-2.49-r8 (unstable version)maxima-5.38.1 Adding a new (unstable version)clisp-2.49-r9 for clisp with the patch will make them build. Best Regards.
(In reply to Markus Oehme from comment #8) > The proposed patch in the upstream bug worked for me. The upstream patch is _identical_ to mine. What have you done that mine did not work? You did apply it to the ebuild, no? I.e. # cd /usr[/local]/portage/ # patch -p1 < /path/to/my_patch_file (which patches the -p8 ebuild and adds the "upstream" patch to the files dir of dev-lisp/clisp). (In reply to Andrey Grozin from comment #11) > (In reply to email200202 from comment #10) > > The proposed patch in the upstream bug worked for me too. > This patch (naturally) breaks building clisp for all users who has > <sys-libs/readline-7, My patch to the ebuild adresses this as well: + if use readline && has_version ">=sys-libs/readline-7.0"; then + epatch "${FILESDIR}/${P}-readline-7.0-rl_readline_state.patch" + fi *gosh* Don't you read supplied patches? No idea about the correct slotting to get proper rebuilds though. Somewhat annoyed, -dnh
(In reply to David Haller from comment #14) I used your patch on the 24rd last and clisp as well as all dependencies build successfully. Sorry for not posting this earlier. Thank you for your post.
(In reply to David Haller from comment #14) > (In reply to Markus Oehme from comment #8) > > The proposed patch in the upstream bug worked for me. > > The upstream patch is _identical_ to mine. What have you done that mine did > not work? You did apply it to the ebuild, no? I.e. > > # cd /usr[/local]/portage/ > # patch -p1 < /path/to/my_patch_file > > (which patches the -p8 ebuild and adds the "upstream" patch to the files dir > of dev-lisp/clisp). Shucks, I failed there, because I simply copied the contents for the patch out ouf your patch, while not removing one level of +. However I'm amazed, that the result applied.
dev-lisp/clisp-2.49-r9 builds successfully.
(In reply to email200202 from comment #17) > dev-lisp/clisp-2.49-r9 builds successfully. But it applies the rl-7 patch unconditionally! # grep readline clisp-2.49-r9.ebuild IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk pari +pcre postgres +readline svm -threads +unicode +zlib" readline? ( >=sys-libs/readline-7.0:0= ) epatch "${FILESDIR}"/${P}-readline-7.patch This is bullshit when my simple patch to the ebuild works: + if use readline && has_version ">=sys-libs/readline-7.0"; then + epatch "${FILESDIR}/${P}-readline-7.0-rl_readline_state.patch" + fi And it'll happily build with readline < 7.0 (modulo patch filename). *Gosh* Can you, Andrey, not read and learn how to apply patches conditionally? ==== dev-lisp/clisp/Changelog ==== *clisp-2.49-r9 (02 Oct 2016) 02 Oct 2016; Andrey Grozin <grozin@gentoo.org> +clisp-2.49-r9.ebuild, +files/clisp-2.49-readline-7.patch: 2.49-r9 for readline-7 Bug: 595624 ==== I was busy lately, but I can't belive that my readymade patch for ebuild and SW (identical to upstream, and upstream's patch could've been used as well) was not used. [..] Oh boy...
(In reply to David Haller from comment #18) > But it applies the rl-7 patch unconditionally! Of course it does. clisp-2.49-r9.ebuild depends on >=sys-libs/readline-7.0:0= and applies the patch unconditionally. clisp-2.49-r8 depends on >=sys-libs/readline-5.0 <sys-libs/readline-7.0 and does not apply the patch. These two ebuilds have SLOT="2/${PV}", i.e., different subslots. When somebody upgrades from 2.49-r8 to 2.49-r9, all dependencies (maxima, fricas[clisp]) will be re-emerged. Your solution with the patch applied conditionally will silently leave all maxima users with non-functional maxima after this upgrade. I did not want this.
I have the same problem now. Building on amd64 and after an update of the readline ebuild, my clisp now fails with ;; Loading file /var/tmp/portage/dev-lisp/clisp-2.49-r8/work/clisp-2.49/builddir/readline/readline.fas ... *** - FFI::FIND-FOREIGN-VARIABLE: foreign variable #<FOREIGN-VARIABLE "rl_readline_state" #x0000564F697211C0> does not have the required size or alignment I'll attach my build logs. Look for the files starting with doj-*
Created attachment 513522 [details] build log
Created attachment 513524 [details] build environment
Created attachment 513526 [details] emerge --info
Created attachment 513528 [details] emerge --pqv
Had the same problem as doj. Fixed it by enabling the new ebuilds with David Haller's fix by adding the following to /etc/portage/package.accept_keywords: # Gentoo Bug 594552 =dev-lisp/clisp-2.49-r101 ~amd64
See Bug 638514 =dev-lisp/clisp-2.49-r101 ~amd64 is no longer compiling after profile switch to 17.0 Workaround dev-lisp/clisp-2.49-r60 does not compile on x86 Bug 638514 Comment 15
I believe this issue has been fixed in newer clisp versions