Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 705854 - dev-lisp/sbcl built with `source` flag doesn't have sources for contrib code
Summary: dev-lisp/sbcl built with `source` flag doesn't have sources for contrib code
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Common Lisp Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-01-19 16:16 UTC by Alex
Modified: 2021-04-18 13:44 UTC (History)
1 user (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 Alex 2020-01-19 16:16:47 UTC
With the `source` use flag enabled, sbcl doesn't install source code for contrib packages. This breaks debugging with Sly/Slime, if the sources from contrib dir are needed. And they are needed quite frequently, since useful parts like uiop, sb-posix or asdf live in the contrib subdirectory.

In other words, while source code installed successfully for the sbcl itselt, it doesn't include e.g. asdf.lisp or uiop.lisp.

Reproducible: Always

Steps to Reproduce:
1. Install sbcl-2.0.0
2a. Try to find asdf.lisp in the /usr/lib64/sbcl/asdf
2b. Launch Emacs, open Sly/Slime session, print asdf:defsystem and try to find the symbol (M-.)
Actual Results:  
No asdf.lisp in the /usr/lib64/sbcl/ dir.
M-. opens empty file in non-existent dir: /usr/lib64/sbcl/asdf/asdf.lisp

Expected Results:  
Source code is installed for contrib packages, Sly successfully finds it with M-.

I have succeded in installing the code with ebuild modification, here's the patch for the ebuild:

--- sbcl-2.0.0.ebuild	2020-01-03 20:09:25.982116124 +0300
+++ sbcl-2.0.0-r1.ebuild	2020-01-19 19:03:18.129638670 +0300
@@ -237,6 +237,9 @@
 	if use source; then
 		./clean.sh
 		cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die
+		for d in contrib/*/; do
+			cp -av "$d" "${ED}/usr/$(get_libdir)/sbcl/" || die
+		done
 	fi
 
 	# necessary for running newly-saved images


After I generated manifest and re-emerged sbcl, Sly began to work properly with the M-. command.
Comment 1 Kevin Secretan 2021-04-18 08:23:59 UTC
I can confirm that this bug is still present in the latest sbcl-2.1.3.ebuild, and that Alex's proposed three-line addition to the ebuild still resolves the issue.

If desired I can also add a similar reproduction flow using vim + slimv. It'd be great if a maintainer can update at least 2.1.3 and future versions to use Alex's patch!
Comment 2 Larry the Git Cow gentoo-dev 2021-04-18 13:44:34 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3e2ae88a013a6025639b372f3407cdba8b8cc11

commit f3e2ae88a013a6025639b372f3407cdba8b8cc11
Author:     Andrey Grozin <grozin@gentoo.org>
AuthorDate: 2021-04-18 13:44:12 +0000
Commit:     Andrey Grozin <grozin@gentoo.org>
CommitDate: 2021-04-18 13:44:12 +0000

    dev-lisp/sbcl: with USE=source install contrib sources
    
    Closes: https://bugs.gentoo.org/705854
    Package-Manager: Portage-3.0.18, Repoman-3.0.3
    Signed-off-by: Andrey Grozin <grozin@gentoo.org>

 dev-lisp/sbcl/sbcl-2.1.3.ebuild | 3 +++
 1 file changed, 3 insertions(+)