From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Subject: [PATCH 3/3] gnu: Add sawfish. Date: Mon, 2 Feb 2015 20:00:31 +0800 Message-ID: <1422878431-20718-3-git-send-email-iyzsong@gmail.com> References: <1422878431-20718-1-git-send-email-iyzsong@gmail.com> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38749) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIFgI-0003xE-4s for guix-devel@gnu.org; Mon, 02 Feb 2015 07:00:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YIFgB-0002QN-4L for guix-devel@gnu.org; Mon, 02 Feb 2015 07:00:42 -0500 Received: from mail-pa0-x234.google.com ([2607:f8b0:400e:c03::234]:39718) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIFgA-0002QC-Jh for guix-devel@gnu.org; Mon, 02 Feb 2015 07:00:35 -0500 Received: by mail-pa0-f52.google.com with SMTP id kx10so81529613pab.11 for ; Mon, 02 Feb 2015 04:00:33 -0800 (PST) In-Reply-To: <1422878431-20718-1-git-send-email-iyzsong@gmail.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org * gnu/packages/sawfish.scm (sawfish): New variable. --- gnu/packages/sawfish.scm | 78 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index ea5b757..0be9792 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -23,12 +23,15 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages gdbm) + #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) - #:use-module (gnu packages texinfo)) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages which) + #:use-module (gnu packages xorg)) (define-public librep (package @@ -97,3 +100,76 @@ implementing both small and large scale systems.") "Rep-GTK is a gtk+ (and glib, gdk) binding to the librep, and one of the backend of sawfish.") (license gpl2+))) + +(define-public sawfish + (package + (name "sawfish") + (version "1.11") + (source (origin + (method url-fetch) + (uri (string-append "http://download.tuxfamily.org/sawfish/" + name "_" version ".tar.xz")) + (sha256 + (base32 + "0wp4m0p836a0rysbcdqb6z5hxlxqj3rgdbks3bs44rlssx0mcvyg")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "Makedefs.in" + (("/bin/sh") "@SHELL@") + (("REP_DL_LOAD_PATH=") + ;; To find rep-gtk when building sawfish. + "REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):")) + (substitute* "src/Makefile.in" + ;; Install libraries for librep to $out/lib/rep. + (("\\$\\(repexecdir\\)") "$(libdir)/rep")))))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no tests + #:phases + (alist-cons-before + 'configure 'patch-exec-rep + (lambda _ + (substitute* '("lisp/sawfish/cfg/main.jl.in" + "scripts/sawfish-about.jl.in" + "scripts/sawfish-client.jl" + "scripts/sawfish-menu.jl") + (("exec rep") (string-append "exec " (which "rep"))))) + (alist-cons-after + 'install 'wrap-scripts + ;; Wrap scripts with REP_DL_LOAD_PATH for finding rep-gtk + ;; and sawfish.client. + (lambda* (#:key outputs #:allow-other-keys) + (define (wrap-script script) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out script) + `("REP_DL_LOAD_PATH" = + ,(list (getenv "REP_DL_LOAD_PATH") + (string-append out "/lib/rep")))))) + (for-each wrap-script + (list "/bin/sawfish-about" + "/bin/sawfish-client" + "/bin/sawfish-config" + "/lib/sawfish/sawfish-menu"))) + %standard-phases)))) + (native-inputs + `(("gettext" ,gnu-gettext) + ("makeinfo" ,texinfo) + ("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("libsm" ,libsm) + ("libxft" ,libxft) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("libxtst" ,libxtst) + ("rep-gtk" ,rep-gtk))) + (home-page "http://sawfish.wikia.com/wiki/Main_Page") + (synopsis "Configurable window manager") + (description + "Sawfish is an extensible window manager using a Lisp-based scripting +language. Its policy is very minimal compared to most window managers. Its aim +is simply to manage windows in the most flexible and attractive manner possible. +All high-level WM functions are implemented in Lisp for future extensibility or +redefinition.") + (license gpl2+))) -- 2.1.2