summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé María Alonso <nimiux@gentoo.org>2014-12-23 19:41:47 +0000
committerJosé María Alonso <nimiux@gentoo.org>2014-12-23 19:41:47 +0000
commitccdeb1f64590dbe107a3b3f709794edeeb697720 (patch)
tree6b8f4d38b084d66fef318b8bdf256279798ff56b /dev-lisp/clx
parentFix docdir (bug 533330) (diff)
downloadgentoo-2-ccdeb1f64590dbe107a3b3f709794edeeb697720.tar.gz
gentoo-2-ccdeb1f64590dbe107a3b3f709794edeeb697720.tar.bz2
gentoo-2-ccdeb1f64590dbe107a3b3f709794edeeb697720.zip
Add current version and live ebuild of package CLX. Should replace package cl-clx
(Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key F253DB15)
Diffstat (limited to 'dev-lisp/clx')
-rw-r--r--dev-lisp/clx/ChangeLog15
-rw-r--r--dev-lisp/clx/Manifest10
-rw-r--r--dev-lisp/clx/clx-0.7.4.ebuild46
-rw-r--r--dev-lisp/clx/clx-9999.ebuild17
-rw-r--r--dev-lisp/clx/files/gentoo-fix-asd.patch303
-rw-r--r--dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch21
-rw-r--r--dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch13
-rw-r--r--dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch12
-rw-r--r--dev-lisp/clx/files/gentoo-fix-unused-vars.patch69
-rw-r--r--dev-lisp/clx/metadata.xml22
10 files changed, 528 insertions, 0 deletions
diff --git a/dev-lisp/clx/ChangeLog b/dev-lisp/clx/ChangeLog
new file mode 100644
index 000000000000..365c49dc4827
--- /dev/null
+++ b/dev-lisp/clx/ChangeLog
@@ -0,0 +1,15 @@
+# ChangeLog for dev-lisp/clx
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/clx/ChangeLog,v 1.1 2014/12/23 19:41:47 nimiux Exp $
+
+*clx-9999 (23 Dec 2014)
+*clx-0.7.4 (23 Dec 2014)
+
+ 23 Dec 2014; Chema Alonso <nimiux@gentoo.org> +clx-0.7.4.ebuild,
+ +clx-9999.ebuild, +files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch,
+ +files/gentoo-fix-asd.patch, +files/gentoo-fix-dep-openmcl.patch,
+ +files/gentoo-fix-obsolete-eval-when.patch,
+ +files/gentoo-fix-unused-vars.patch, +metadata.xml:
+ Add current version and live ebuild of package CLX. Should replace package
+ cl-clx
+
diff --git a/dev-lisp/clx/Manifest b/dev-lisp/clx/Manifest
new file mode 100644
index 000000000000..c50eabd00259
--- /dev/null
+++ b/dev-lisp/clx/Manifest
@@ -0,0 +1,10 @@
+AUX gentoo-fix-asd.patch 11298 SHA256 9a9fe8c95020cbadbac7f283ce37abd346d550f9136d53807e8138e58534120d SHA512 80702eca8ae22affb3dc77ffddb1daac0740857d9deca157c650dea15691e4feeaf7d4a0220d3705111bbbb317a02c3adaae7e293bc219346eebb2dc1f598a9e WHIRLPOOL b0fb4f6890ad22f97801c2b36211f621c853cde5f6c0098feee08d777df90391d5e1c3028f5e3ab6d701f58670ea73358fa82909a48126303dc2fedbd6161a9c
+AUX gentoo-fix-dep-openmcl.patch 905 SHA256 c3d06020eb70df215de7b72b29af207d45239c908e3d0149ca8a3e40c6e70d76 SHA512 fdef997e33ffec46b4c28393faada80165b866398668eb1a6db5182586175cb264fdac462f4e3441d546dc3a195845ee92a1a7eae736da62c8741f9b7dd48612 WHIRLPOOL 092e93a6b7748a448354de56b70e4f3310575d5ebddd4916e443fbba1b9b513b1e448362c60437522c838022fa220725a9c83487292dc98fa282d548437590f2
+AUX gentoo-fix-dynamic-extent-sbcl-1.0.45.patch 600 SHA256 f3925863e607b5ec2bc96f891b11b89818feb5c17d985766c7c0e69e098000fd SHA512 97089c5e6b08b410ca26267116a4f7958b12d2ff93740292f53335a3d25a2b9f188f5afef75190db1648171eadaa62b6cec68425d410e87f7a6b97b5678102b6 WHIRLPOOL 42a86c5d1f76622b7bcbd0cac84aedc8ab30591ade84ee29e387cc3b98c155ba3cb1ce9a0352c5829b238f186cf2c6f5c1ce55716efcdae450dd1760c8a69287
+AUX gentoo-fix-obsolete-eval-when.patch 435 SHA256 7c7b3d17102223a6f0c24d31e7942880977ba4de422b51d189fac9c8a298c197 SHA512 0f3db1aa5d7a2f9a9e88f61d04633d399337fac517f7d4ee17bf88968f9bfe32f3105562dbe454b0bbaf91b4afe48c1361fbb2c492a3c6e4250426ea15a39610 WHIRLPOOL 6479f8564f374a21554ddb7b6909266c10d5682d18079c5ddd282183444faef269f93f533eb07f9b5820b9f41e98f7e775993d4c48f249f951c8113373c7eb09
+AUX gentoo-fix-unused-vars.patch 3139 SHA256 08a548efa8d7c69b41cf208a16efd42cf78aebaf3f529aa6b35f23ecfacd0b57 SHA512 fbb4d2e5866568adaed0534beb0f126792fc3d30880f2727fce7b62dcb0d57cb8367e1924ef52beb513a7a84f1b816832fa6d2f1605bda6354c075dc4db2b458 WHIRLPOOL 97b35c46cc206cfd849c48f6bef73ac0f22edc7bf9af910cd765479a58b2193e69e06c658f24ff6180b0face83d56a19f09ae03b2e4a58da7aaa650598dc9b56
+DIST clx-0.7.4.tgz 444490 SHA256 4a80f80255ace26eb8df214957dda3d7b7e51955537405ec893a34b18e569028 SHA512 07f93735bee25c8a6d8cccaa0755efa0b750954cbeab70d9db69bf51f1cf4eb7918c0225b9ae2834b11ebb261a857eea0f60b70e4044ccbe96ecb32c3ac31278 WHIRLPOOL af49b2dca591fd234c8b790867286383fc4fd32091415cc6c78b904bd7a3bff2e65c923553fe0bad41d83eb91fc74d801925ea9613c31c2f24a484ba0bb699ae
+EBUILD clx-0.7.4.ebuild 1270 SHA256 60a0af65254d135711eb5c086c20ad6884cdf8698a6f804251966904cd2311cb SHA512 35cbd46b8f6e61ef6e0bb98f94b50a0e56ce2305b03a7cb877cc9d5c3f3742823da93b73702f46d5fa4c08663b9c4cff42c018746cfb2ee092d4f41fdc98fdf2 WHIRLPOOL 039165a0885a853bd501188d109a99dbe785db92f95dd6dab34de7bb9ae0f831bf74eec0f1139e2645fba445d2d9bac778cfa8a3dc0e06bdeb2b2b8147c9d753
+EBUILD clx-9999.ebuild 449 SHA256 051405afc2ce2413d55b6ab14676e6a2560adeed5c7f82e4c6909fc21bf978b3 SHA512 99723109cf9a0b08bac7062fdac6437e0023d6045eaa9754b556cff6db6aeee2a35dbde140a02f0a631e3c8c68083b108c3c7ec7efe37690643bca46a0028de7 WHIRLPOOL 5b771ce38073e0aa5fbdb62cc89cd750ce8e2f55cddf5e39203ff26d85964561df9bcd024f21b0106ba5920eeac30515638ff9ed9c0f09be4e7ef54c2a934c61
+MISC ChangeLog 557 SHA256 8d5d5b077dcd3257ac7d318e1372372a1d938ec03c376052e3614f7bde5f6718 SHA512 51c961fcb5da939c9ad9e10033b6b18f8203ed5034251881ca9a9453a9801af3cc28ea5a93b36ad6eab7512b1681030c8d03f50fb3881975e3589dcfdaaf773a WHIRLPOOL 470b7a0d15ac79a8da224c5cf6a0c80b092eb2bf31c512b2024690820168d68f50088c9a96bd6e3743bbdec4da884baedd6480ac24fe9dee4de7eaecfd8734a6
+MISC metadata.xml 765 SHA256 58f1ca0594369e154b42fbe08dead4ee294d892f165d29129cbf0d72c7a38b99 SHA512 7ed2ba0f81f756ae60fdc0067c57214dcaa9f0fe555d511b0c82f6e1bb498593c763943f660511104dd24360f7328f0291608d6bef3e6c873488eaa431345244 WHIRLPOOL 2cb85143bba85abb596eb26989ba0dab11b7149fec94a17947ff5557d30510ade34492d8a2c92727fc408e8414b75905e7c95084eaca55857cb24252171cca23
diff --git a/dev-lisp/clx/clx-0.7.4.ebuild b/dev-lisp/clx/clx-0.7.4.ebuild
new file mode 100644
index 000000000000..369d2f37658a
--- /dev/null
+++ b/dev-lisp/clx/clx-0.7.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/clx/clx-0.7.4.ebuild,v 1.1 2014/12/23 19:41:47 nimiux Exp $
+
+EAPI=5
+
+inherit common-lisp-3 eutils
+
+DESCRIPTION="CLX is the Common Lisp interface to the X11 protocol primarily for SBCL."
+HOMEPAGE="http://www.cliki.net/CLX"
+SRC_URI="http://common-lisp.net/~abridgewater/dist/${PN}/${P}.tgz"
+
+LICENSE="CLX"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="doc"
+
+DEPEND="sys-apps/texinfo
+ doc? ( virtual/texi2dvi )"
+RDEPEND="!dev-lisp/cl-${PN}"
+
+src_prepare() {
+ rm -v {exclcmac,sockcl,defsystem,provide,cmudep}.lisp || die
+ epatch "${FILESDIR}"/gentoo-fix-asd.patch
+ epatch "${FILESDIR}"/gentoo-fix-dep-openmcl.patch
+ epatch "${FILESDIR}"/gentoo-fix-unused-vars.patch
+ epatch "${FILESDIR}"/gentoo-fix-obsolete-eval-when.patch
+ epatch "${FILESDIR}"/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch
+}
+
+src_compile() {
+ cd manual || die
+ makeinfo ${PN}.texinfo -o ${PN}.info || die "Cannot compile info docs"
+ if use doc ; then
+ VARTEXFONTS="${T}"/fonts \
+ texi2pdf ${PN}.texinfo -o ${PN}.pdf || die "Cannot build PDF docs"
+ fi
+}
+
+src_install() {
+ common-lisp-install-sources *.lisp debug demo test
+ common-lisp-install-asdf
+ dodoc NEWS CHANGES README*
+ doinfo manual/${PN}.info
+ use doc && dodoc manual/${PN}.pdf
+}
diff --git a/dev-lisp/clx/clx-9999.ebuild b/dev-lisp/clx/clx-9999.ebuild
new file mode 100644
index 000000000000..3db01a74ac0f
--- /dev/null
+++ b/dev-lisp/clx/clx-9999.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/clx/clx-9999.ebuild,v 1.1 2014/12/23 19:41:47 nimiux Exp $
+
+EAPI=5
+
+inherit common-lisp-3 git-2
+
+DESCRIPTION="A fork of crhodes' fork of danb's fork of the CLX library, an X11 client for Common Lisp"
+HOMEPAGE="https://github.com/sharplispers/clx http://www.cliki.net/CLX"
+EGIT_REPO_URI="git://github.com/sharplispers/clx.git"
+
+LICENSE="CLX"
+SLOT="0"
+IUSE=""
+
+RDEPEND="!dev-lisp/cl-${PN}"
diff --git a/dev-lisp/clx/files/gentoo-fix-asd.patch b/dev-lisp/clx/files/gentoo-fix-asd.patch
new file mode 100644
index 000000000000..62ad58748170
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-asd.patch
@@ -0,0 +1,303 @@
+diff -ur clx-0.7.4.orig/clx.asd clx-0.7.4/clx.asd
+--- clx-0.7.4.orig/clx.asd 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/clx.asd 2009-11-29 22:29:11.000000000 +0100
+@@ -21,116 +21,80 @@
+ ;;; or implied warranty.
+
+ (defpackage :clx-system (:use :cl :asdf))
+-(in-package :clx-system)
++(in-package :clx-system)
+
+ (pushnew :clx-ansi-common-lisp *features*)
+
+ (defclass clx-source-file (cl-source-file) ())
+ (defclass xrender-source-file (clx-source-file) ())
+
+-;;; CL-SOURCE-FILE, not CLX-SOURCE-FILE, so that we're not accused of
+-;;; cheating by rebinding *DERIVE-FUNCTION-TYPES* :-)
+-(defclass example-source-file (cl-source-file) ())
+-
+-(defclass legacy-file (static-file) ())
+-
+-(defsystem CLX
+- :depends-on (#+sbcl sb-bsd-sockets)
+- :version "0.7.2"
+- :serial t
+- :default-component-class clx-source-file
++(defsystem clx
++ :depends-on (#+sbcl :sb-bsd-sockets)
++ :version "0.7.4"
++ :serial t
++ :default-component-class clx-source-file
++ :components
++ ((:file "package")
++ (:file "depdefs")
++ (:file "clx")
++ #-(or openmcl allegro) (:file "dependent")
++ #+openmcl (:file "dep-openmcl")
++ #+allegro (:file "dep-allegro")
++ (:file "macros")
++ (:file "bufmac")
++ (:file "buffer")
++ (:file "display")
++ (:file "gcontext")
++ (:file "input")
++ (:file "requests")
++ (:file "fonts")
++ (:file "graphics")
++ (:file "text")
++ (:file "attributes")
++ (:file "translate")
++ (:file "keysyms")
++ (:file "manager")
++ (:file "image")
++ (:file "resource")
++ #+allegro
++ (:file "excldep" :pathname "excldep.lisp")
++ (:module extensions
++ :pathname #.(make-pathname :directory '(:relative))
+ :components
+- ((:file "package")
+- (:file "depdefs")
+- (:file "clx")
+- #-(or openmcl allegro) (:file "dependent")
+- #+openmcl (:file "dep-openmcl")
+- #+allegro (:file "dep-allegro")
+- (:file "macros")
+- (:file "bufmac")
+- (:file "buffer")
+- (:file "display")
+- (:file "gcontext")
+- (:file "input")
+- (:file "requests")
+- (:file "fonts")
+- (:file "graphics")
+- (:file "text")
+- (:file "attributes")
+- (:file "translate")
+- (:file "keysyms")
+- (:file "manager")
+- (:file "image")
+- (:file "resource")
+- #+allegro
+- (:file "excldep" :pathname "excldep.lisp")
+- (:module extensions
+- :pathname #.(make-pathname :directory '(:relative))
+- :components
+- ((:file "shape")
+- (:file "big-requests")
+- (:file "xvidmode")
+- (:xrender-source-file "xrender")
+- (:file "glx")
+- (:file "gl" :depends-on ("glx"))
+- (:file "dpms")
+- (:file "xtest")
+- (:file "screensaver")
+- (:file "xinerama")))
+- (:module demo
+- :default-component-class example-source-file
+- :components
+- ((:file "bezier")
+- ;; KLUDGE: this requires "bezier" for proper operation,
+- ;; but we don't declare that dependency here, because
+- ;; asdf doesn't load example files anyway.
+- (:file "beziertest")
+- (:file "clclock")
+- (:file "clipboard")
+- (:file "clx-demos")
+- (:file "gl-test")
+- ;; FIXME: compiling this generates 30-odd spurious code
+- ;; deletion notes. Find out why, and either fix or
+- ;; workaround the problem.
+- (:file "mandel")
+- (:file "menu")
+- (:file "zoid")))
+- (:module test
+- :default-component-class example-source-file
+- :components
+- ((:file "image")
+- ;; KLUDGE: again, this depends on "zoid"
+- (:file "trapezoid")))
+- (:static-file "NEWS")
+- (:static-file "CHANGES")
+- (:static-file "README")
+- (:static-file "README-R5")
+- (:legacy-file "exclMakefile")
+- (:legacy-file "exclREADME")
+- (:legacy-file "exclcmac" :pathname "exclcmac.lisp")
+- (:legacy-file "excldepc" :pathname "excldep.c")
+- (:legacy-file "sockcl" :pathname "sockcl.lisp")
+- (:legacy-file "socket" :pathname "socket.c")
+- (:legacy-file "defsystem" :pathname "defsystem.lisp")
+- (:legacy-file "provide" :pathname "provide.lisp")
+- (:legacy-file "cmudep" :pathname "cmudep.lisp")
+- (:module manual
+- ;; TODO: teach asdf how to process texinfo files
+- :components ((:static-file "clx.texinfo")))
+- (:module debug
+- :default-component-class legacy-file
+- :components
+- ((:file "debug" :pathname "debug.lisp")
+- (:file "describe" :pathname "describe.lisp")
+- (:file "event-test" :pathname "event-test.lisp")
+- (:file "keytrans" :pathname "keytrans.lisp")
+- (:file "trace" :pathname "trace.lisp")
+- (:file "util" :pathname "util.lisp")))))
+-
+-(defmethod perform ((o load-op) (f example-source-file))
+- ;; do nothing. We want to compile them when CLX is compiled, but
+- ;; not load them when CLX is loaded.
+- t)
++ ((:file "shape")
++ (:file "big-requests")
++ (:file "xvidmode")
++ (:xrender-source-file "xrender")
++ (:file "glx")
++ (:file "gl" :depends-on ("glx"))
++ (:file "dpms")
++ (:file "xtest")
++ (:file "screensaver")
++ (:file "xinerama")))))
++
++(defsystem clx-test
++ :depends-on (:clx)
++ :serial t
++ :components
++ ((:file "image")
++ (:file "trapezoid")))
++
++(defsystem clx-demo
++ :depends-on (:clx)
++ :serial t
++ :components
++ ((:file "bezier")
++ (:file "beziertest")
++ (:file "clclock")
++ (:file "clipboard")
++ (:file "clx-demos")
++ (:file "gl-test")
++ ;; FIXME: compiling this generates 30-odd spurious code
++ ;; deletion notes. Find out why, and either fix or
++ ;; workaround the problem.
++ (:file "mandel")
++ (:file "menu")
++ (:file "zoid")))
+
+ #+sbcl
+ (defmethod perform :around ((o compile-op) (f xrender-source-file))
+@@ -146,35 +110,35 @@
+ ;; without STYLE-WARNINGs. Since it currently does, let's enforce
+ ;; it here so that we can catch regressions easily.
+ (let ((on-warnings (operation-on-warnings o))
+- (on-failure (operation-on-failure o)))
++ (on-failure (operation-on-failure o)))
+ (unwind-protect
+- (progn
+- (setf (operation-on-warnings o) :error
+- (operation-on-failure o) :error)
+- ;; a variety of accessors, such as AREF-CARD32, are not
+- ;; declared INLINE. Without this (non-ANSI)
+- ;; static-type-inference behaviour, SBCL emits an extra 100
+- ;; optimization notes (roughly one fifth of all of the
+- ;; notes emitted). Since the internals are unlikely to
+- ;; change much, and certainly the internals should stay in
+- ;; sync, enabling this extension is a win. (Note that the
+- ;; use of this does not imply that applications using CLX
+- ;; calls that expand into calls to these accessors will be
+- ;; optimized in the same way).
+- (let ((sb-ext:*derive-function-types* t)
++ (progn
++ (setf (operation-on-warnings o) :error
++ (operation-on-failure o) :error)
++ ;; a variety of accessors, such as AREF-CARD32, are not
++ ;; declared INLINE. Without this (non-ANSI)
++ ;; static-type-inference behaviour, SBCL emits an extra 100
++ ;; optimization notes (roughly one fifth of all of the
++ ;; notes emitted). Since the internals are unlikely to
++ ;; change much, and certainly the internals should stay in
++ ;; sync, enabling this extension is a win. (Note that the
++ ;; use of this does not imply that applications using CLX
++ ;; calls that expand into calls to these accessors will be
++ ;; optimized in the same way).
++ (let ((sb-ext:*derive-function-types* t)
+ (sadx (find-symbol "STACK-ALLOCATE-DYNAMIC-EXTENT" :sb-c))
+ (sadx-var (find-symbol "*STACK-ALLOCATE-DYNAMIC-EXTENT*" :sb-ext)))
+- ;; deeply unportable stuff, this. I will be shot. We
+- ;; want to enable the dynamic-extent declarations in CLX.
+- (when (and sadx (sb-c::policy-quality-name-p sadx))
+- ;; no way of setting it back short of yet more yukky stuff
+- (proclaim `(optimize (,sadx 3))))
++ ;; deeply unportable stuff, this. I will be shot. We
++ ;; want to enable the dynamic-extent declarations in CLX.
++ (when (and sadx (sb-c::policy-quality-name-p sadx))
++ ;; no way of setting it back short of yet more yukky stuff
++ (proclaim `(optimize (,sadx 3))))
+ (if sadx-var
+ (progv (list sadx-var) (list t)
+ (call-next-method))
+ (call-next-method))))
+ (setf (operation-on-warnings o) on-warnings
+- (operation-on-failure o) on-failure))))
++ (operation-on-failure o) on-failure))))
+
+ #+sbcl
+ (defmethod perform :around (o (f clx-source-file))
+@@ -186,31 +150,31 @@
+ ;; structured data is sufficiently equal.
+ (handler-bind
+ ((sb-ext:defconstant-uneql
+- (lambda (c)
+- ;; KLUDGE: this really means "don't warn me about
+- ;; efficiency of generic array access, please"
+- (declare (optimize (sb-ext:inhibit-warnings 3)))
+- (let ((old (sb-ext:defconstant-uneql-old-value c))
+- (new (sb-ext:defconstant-uneql-new-value c)))
+- (typecase old
+- (list (when (equal old new) (abort c)))
+- (string (when (and (typep new 'string)
+- (string= old new))
+- (abort c)))
+- (simple-vector
+- (when (and (typep new 'simple-vector)
+- (= (length old) (length new))
+- (every #'eql old new))
+- (abort c)))
+- (array
+- (when (and (typep new 'array)
+- (equal (array-dimensions old)
+- (array-dimensions new))
+- (equal (array-element-type old)
+- (array-element-type new))
+- (dotimes (i (array-total-size old) t)
+- (unless (eql (row-major-aref old i)
+- (row-major-aref new i))
+- (return nil))))
+- (abort c))))))))
++ (lambda (c)
++ ;; KLUDGE: this really means "don't warn me about
++ ;; efficiency of generic array access, please"
++ (declare (optimize (sb-ext:inhibit-warnings 3)))
++ (let ((old (sb-ext:defconstant-uneql-old-value c))
++ (new (sb-ext:defconstant-uneql-new-value c)))
++ (typecase old
++ (list (when (equal old new) (abort c)))
++ (string (when (and (typep new 'string)
++ (string= old new))
++ (abort c)))
++ (simple-vector
++ (when (and (typep new 'simple-vector)
++ (= (length old) (length new))
++ (every #'eql old new))
++ (abort c)))
++ (array
++ (when (and (typep new 'array)
++ (equal (array-dimensions old)
++ (array-dimensions new))
++ (equal (array-element-type old)
++ (array-element-type new))
++ (dotimes (i (array-total-size old) t)
++ (unless (eql (row-major-aref old i)
++ (row-major-aref new i))
++ (return nil))))
++ (abort c))))))))
+ (call-next-method)))
diff --git a/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch b/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch
new file mode 100644
index 000000000000..1ec3eca0897c
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch
@@ -0,0 +1,21 @@
+diff -ur clx-0.7.4.orig/dep-openmcl.lisp clx-0.7.4/dep-openmcl.lisp
+--- clx-0.7.4.orig/dep-openmcl.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/dep-openmcl.lisp 2009-11-29 22:39:36.000000000 +0100
+@@ -492,7 +492,7 @@
+ ;;; value changes.
+
+ (defun process-block (whostate predicate &rest predicate-args)
+- (declare (dynamic-extern predicate-args))
++ (declare (dynamic-extent predicate-args))
+ (apply #'ccl:process-wait whostate predicate predicate-args))
+
+ ;;; PROCESS-WAKEUP: Check some other process' wait function.
+@@ -1113,7 +1113,7 @@
+ unit byte-lsb-first-p bit-lsb-first-p)
+ (declare (ignore bbuf boffset pixarray x y width height
+ padded-bytes-per-line bits-per-pixel unit
+- byte-lsb-first-p bit-lsp-first-p))
++ byte-lsb-first-p bit-lsb-first-p))
+ nil)
+
+ ;;; FAST-COPY-PIXARRAY - copy part of a pixarray into another
diff --git a/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch b/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch
new file mode 100644
index 000000000000..961d1bedaa67
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch
@@ -0,0 +1,13 @@
+diff -ur clx-0.7.4.orig/requests.lisp clx-0.7.4/requests.lisp
+--- clx-0.7.4.orig/requests.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/requests.lisp 2010-12-16 23:37:07.122629835 +0100
+@@ -466,8 +466,7 @@
+ (type event-key event-key)
+ (type (or null event-mask) event-mask)
+ (type generalized-boolean propagate-p)
+- (type (or null display) display)
+- (dynamic-extent args))
++ (type (or null display) display))
+ (unless event-mask (setq event-mask 0))
+ (unless display (setq display (window-display window)))
+ (let ((internal-event-code (get-event-code event-key))
diff --git a/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch b/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch
new file mode 100644
index 000000000000..e1df016b4a56
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch
@@ -0,0 +1,12 @@
+diff -ur clx-0.7.4.orig/depdefs.lisp clx-0.7.4/depdefs.lisp
+--- clx-0.7.4.orig/depdefs.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/depdefs.lisp 2009-11-29 22:56:38.000000000 +0100
+@@ -142,7 +142,7 @@
+ ;;; overlapping array and image code.
+
+ #+(or lispm vax little-endian Minima)
+-(eval-when (eval compile load)
++(eval-when (:compile-toplevel :load-toplevel :execute)
+ (pushnew :clx-little-endian *features*))
+
+ #+lcl3.0
diff --git a/dev-lisp/clx/files/gentoo-fix-unused-vars.patch b/dev-lisp/clx/files/gentoo-fix-unused-vars.patch
new file mode 100644
index 000000000000..96dc255ffbf4
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-unused-vars.patch
@@ -0,0 +1,69 @@
+diff -ur clx-0.7.4.orig/gl.lisp clx-0.7.4/gl.lisp
+--- clx-0.7.4.orig/gl.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/gl.lisp 2009-11-29 22:46:37.000000000 +0100
+@@ -2274,7 +2274,7 @@
+ (let ((constant 0)
+ (calculated ()))
+ (loop
+- for (name type length length-var) in argspecs
++ for (nil type length length-var) in argspecs
+ do (let ((byte-width (byte-width type)))
+ (typecase length
+ (number (incf constant (* byte-width length)))
+@@ -2287,7 +2287,7 @@
+
+ (defun composite-args (argspecs)
+ (loop
+- for (name type length length-var) in argspecs
++ for (nil nil length length-var) in argspecs
+ when (consp length)
+ collect (list length-var length)))
+
+diff -ur clx-0.7.4.orig/xrender.lisp clx-0.7.4/xrender.lisp
+--- clx-0.7.4.orig/xrender.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/xrender.lisp 2009-11-29 22:50:42.000000000 +0100
+@@ -408,7 +408,7 @@
+
+ (macrolet ((foo (&rest specs)
+ `(progn
+- ,@(loop for (type slot default) in specs
++ ,@(loop for (nil slot nil) in specs
+ for index from 0
+ collect
+ `(progn
+@@ -426,7 +426,7 @@
+ (data +X-RenderChangePicture+)
+ (picture picture)
+ (mask
+- ,@(loop for (type slot default) in specs
++ ,@(loop for (type slot nil) in specs
+ for index from 0
+ collect
+ `(,type (and
+@@ -454,7 +454,7 @@
+ (drawable
+ &key format
+ (picture (make-picture :display (drawable-display drawable)))
+- ,@(loop for (type slot default-value) in specs
++ ,@(loop for (nil slot nil) in specs
+ collect (cond ((eql slot 'clip-mask)
+ `(clip-mask :none))
+ (t
+@@ -475,7 +475,7 @@
+ (drawable drawable)
+ (picture-format format)
+ (mask
+- ,@(loop for (type slot default) in specs
++ ,@(loop for (type slot nil) in specs
+ collect
+ (cond ((eql slot 'clip-mask)
+ (list type `(and
+@@ -487,7 +487,7 @@
+ (%render-change-picture-clip-rectangles picture clip-mask))
+ (setf (picture-format picture) format)
+ (setf (picture-%server-values picture)
+- (vector ,@(loop for (type slot default) in specs
++ (vector ,@(loop for (nil slot default) in specs
+ collect
+ `(or ,slot ,default))))
+ (setf (picture-%values picture) (copy-seq (picture-%server-values picture)))
diff --git a/dev-lisp/clx/metadata.xml b/dev-lisp/clx/metadata.xml
new file mode 100644
index 000000000000..c9838edc3a68
--- /dev/null
+++ b/dev-lisp/clx/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>nimiux@gentoo.org</email>
+ <name>Chema Alonso</name>
+ <description>Maintainer</description>
+ </maintainer>
+ <longdescription lang="en">
+ CLX provides an implementation of the X Window System protocol to
+ Lisp graphics library[ies] and applications. It is the Common Lisp
+ equivalent of Xlib.
+ </longdescription>
+ <longdescription lang="es">
+ CLX ofrece una implementación del protocolo del sistema X Window
+ a las librerías y aplicaciones gráficas escritas en Lisp. Es el
+ equivamente en Common Lisp a Xlib.
+ </longdescription>
+ <use>
+ <flag name="doc">Builds documentation</flag>
+ </use>
+</pkgmetadata>