Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 128572 - clisp ebuild does not permit clx/mit-clx module compilation
Summary: clisp ebuild does not permit clx/mit-clx module compilation
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Common Lisp Bugs
URL:
Whiteboard:
Keywords: EBUILD
: 128132 (view as bug list)
Depends on:
Blocks: 127463
  Show dependency tree
 
Reported: 2006-04-02 15:01 UTC by Xavier Maillard
Modified: 2006-04-03 22:15 UTC (History)
2 users (show)

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


Attachments
New ebuild with the two new USE flags (clisp-2.38.ebuild,3.58 KB, text/plain)
2006-04-02 15:02 UTC, Xavier Maillard
Details
clisp-2.38-r2.ebuild (clisp-2.38-r2.ebuild,3.48 KB, text/plain)
2006-04-03 16:20 UTC, Xavier Maillard
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Xavier Maillard 2006-04-02 15:01:10 UTC
Clisp offers two distinct modules to have CLX: mit-clx (old one) and new-clx (as says its name).

Current clisp module, through the use of the X USE flag, offers only new-clx module. There is no way to have the other module for people wanting it.

I propose to delete X USE flag in favour of two new local USE flags: mit-clx and new-clx. They will be mutually exclusive resulting in:

1. warn users when they are used together
2. for new-clx module compilation when used together.

Please comment this proposition.
Comment 1 Xavier Maillard 2006-04-02 15:02:20 UTC
Created attachment 83765 [details]
New ebuild with the two new USE flags

Here is the proposed ebuild to achieve that.
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2006-04-02 15:05:53 UTC
*** Bug 128132 has been marked as a duplicate of this bug. ***
Comment 3 Matthew Kennedy (RETIRED) gentoo-dev 2006-04-03 10:59:05 UTC
I've been thinking about how to implement this.  I think we can do with with an extra USE keyword "new-clx" and use it this way:

  if X in USE,
    if new-clx in USE,
       --with-module=clx/new-clx
    else
       --with-module=clx/mit-clx

The main points here are 1. only one new USE keyword is required, 2. a user wanting  X support for CLISP will get mit-clx (which is probably a good default since it works best with other applications, eg. stumpwm).

I think you're right about mit-clx and new-clx being mutually exclusive in CLISP builds.  I got a lot of this when i tried --with-module=clx/new-clx --with-module=clx/mit-clx:

;; Loading file /tmp/clisp-2.38/src/clx/mit-clx/input.fas ...
WARNING: DEFUN/DEFMACRO: redefining function EVENT-LISTEN in
         /tmp/clisp-2.38/src/clx/mit-clx/input.fas, was defined in C
WARNING: DEFUN/DEFMACRO: redefining function QUEUE-EVENT in
         /tmp/clisp-2.38/src/clx/mit-clx/input.fas, was defined in C
WARNING: DEFUN/DEFMACRO: redefining function DISCARD-CURRENT-EVENT in
         /tmp/clisp-2.38/src/clx/mit-clx/input.fas, was defined in C

What parts of stumpwm do not work with CLISP's new-clx?
Comment 4 Xavier Maillard 2006-04-03 14:24:08 UTC
(In reply to comment #3)
> I've been thinking about how to implement this.  I think we can do with with an
> extra USE keyword "new-clx" and use it this way:
> 
>   if X in USE,
>     if new-clx in USE,
>        --with-module=clx/new-clx
>     else
>        --with-module=clx/mit-clx

Yep, that is even better than my solution.

> The main points here are 1. only one new USE keyword is required, 2. a user
> wanting  X support for CLISP will get mit-clx (which is probably a good default
> since it works best with other applications, eg. stumpwm).

I agree with this.
 
> What parts of stumpwm do not work with CLISP's new-clx?

There are several. First one is this awful timeout when you press C-t, second one is a problem with undefined function:

> *** - FUNCALL: undefined function XLIB:CHARACTER->KEYSYMS

Which can be solved with something like this:

(defun character->keysym (ch)
  "Convert a char to a keysym"
  ;; XLIB:CHARACTER->KEYSYMS should probably be implemented in NEW-CLX
  ;; some day.  Or just copied from MIT-CLX or some other CLX
  ;; implementation (see translate.lisp and keysyms.lisp).  For now,
  ;; we do like this.  It suffices for modifiers and ASCII symbols.
  #-clisp (first (xlib:character->keysyms ch))
  #+clisp (case ch
	    (:character-set-switch #xFF7E)
	    (:left-shift #xFFE1)
	    (:right-shift #xFFE2)
	    (:left-control #xFFE3)
	    (:right-control #xFFE4)
	    (:caps-lock #xFFE5)
	    (:shift-lock #xFFE6)
	    (:left-meta #xFFE7)
	    (:right-meta #xFFE8)
	    (:left-alt #xFFE9)
	    (:right-alt #xFFEA)
	    (:left-super #xFFEB)
	    (:right-super #xFFEC)
	    (:left-hyper #xFFED)
	    (:right-hyper #xFFEE)
	    (t
	     (etypecase ch
	       (character
		;; Latin-1 characters have their own value as keysym
		(if (< 31 (char-code ch) 256)
		    (char-code ch)
		  (error "Don't know how to get keysym from ~A" ch)))))))

Plus many small things that make use of new-clx sucky with stumpwm. I think, it still needs improvements on new-clx side before actually using it effectively.
Comment 5 Xavier Maillard 2006-04-03 16:20:13 UTC
Created attachment 83850 [details]
clisp-2.38-r2.ebuild

Ebuild with X support plus new-clx USE flag.

X + new-clx => will build new-clx
X (alone) => mit-clx

WDYT ?
Comment 6 Matthew Kennedy (RETIRED) gentoo-dev 2006-04-03 19:45:16 UTC
I committed a new ebuild for clisp-2.38-r1.  It is basically the same as your attachment.

Xavier, I tried responding to your email but your mail server's verification system seems to believe I'm spam!  The verification directions say respond to the email simply by pressing "respond", I do a reply in Gnus and I see that the return To: address with "unknown@gnu-rox.org".  I send to that address and then I receive another email classifying my mail as spam.  Do you have an alternate email address?
Comment 7 Xavier Maillard 2006-04-03 22:15:06 UTC
Wll, I will remove that auto-respond system which is not working correctly.

Sorry for the inconvenience.