unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 1/3] gnu: Add librep.
@ 2015-02-02 12:00 宋文武
  2015-02-02 12:00 ` [PATCH 2/3] gnu: Add rep-gtk 宋文武
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: 宋文武 @ 2015-02-02 12:00 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/sawfish.scm: New file.
* gnu/packages/patches/librep-rules.mk.patch: New file.
* gnu-system.am: Add them.
---
 gnu-system.am                              |  2 +
 gnu/packages/patches/librep-rules.mk.patch | 30 ++++++++++++++
 gnu/packages/sawfish.scm                   | 66 ++++++++++++++++++++++++++++++
 3 files changed, 98 insertions(+)
 create mode 100644 gnu/packages/patches/librep-rules.mk.patch
 create mode 100644 gnu/packages/sawfish.scm

diff --git a/gnu-system.am b/gnu-system.am
index 0fb4571..cb67381 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -240,6 +240,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/ruby.scm				\
   gnu/packages/rush.scm				\
   gnu/packages/samba.scm			\
+  gnu/packages/sawfish.scm			\
   gnu/packages/scanner.scm			\
   gnu/packages/scheme.scm			\
   gnu/packages/screen.scm			\
@@ -417,6 +418,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/libevent-dns-tests.patch			\
   gnu/packages/patches/liboop-mips64-deplibs-fix.patch		\
   gnu/packages/patches/libmad-mips-newgcc.patch			\
+  gnu/packages/patches/librep-rules.mk.patch			\
   gnu/packages/patches/libtheora-config-guess.patch		\
   gnu/packages/patches/libtool-skip-tests.patch			\
   gnu/packages/patches/libssh-CVE-2014-0017.patch		\
diff --git a/gnu/packages/patches/librep-rules.mk.patch b/gnu/packages/patches/librep-rules.mk.patch
new file mode 100644
index 0000000..189ca41
--- /dev/null
+++ b/gnu/packages/patches/librep-rules.mk.patch
@@ -0,0 +1,30 @@
+rules.mk.in: Don't set prefix, datadir, libdir, datarootdir and repdir.
+rules.mk.in: Use pkg-config to get the absolute path for repcommonexedir.
+
+Meregd into upstream: <https://github.com/SawfishWM/librep/commit/a1f2db721aa5055e90f6a76fde625946340ed8cf>.
+
+--- librep_0.92.4.orig/rules.mk.in	2015-01-31 23:21:59.614751496 +0800
++++ librep_0.92.4/rules.mk.in	2015-02-02 18:56:55.097171657 +0800
+@@ -1,18 +1,10 @@
+ # rules.mk
+ 
+-prefix=@prefix@
+-datadir=@datadir@
+-libdir=@libdir@
++repcommonexecdir?=$(shell pkg-config --variable=repcommonexecdir librep)
++rpath_repcommonexecdir:=$(repcommonexecdir)
+ 
+-# shut up configure
+-datarootdir=@datarootdir@
+-
+-repdir=@repdir@
+-repcommonexecdir=@repcommonexecdir@
+-rpath_repcommonexecdir=@repcommonexecdir@
+-
+-rep_LIBTOOL=$(repcommonexecdir)/libtool --tag CC
+-rep_INSTALL_ALIASES=$(repcommonexecdir)/install-aliases
++rep_LIBTOOL:=$(repcommonexecdir)/libtool --tag CC
++rep_INSTALL_ALIASES:=$(repcommonexecdir)/install-aliases
+ 
+ # use this like:
+ # foo.la : foo.lo bar.lo
diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
new file mode 100644
index 0000000..acf3e06
--- /dev/null
+++ b/gnu/packages/sawfish.scm
@@ -0,0 +1,66 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages sawfish)
+  #:use-module ((guix licenses) #:select (gpl2+))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages gdbm)
+  #: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))
+
+(define-public librep
+  (package
+    (name "librep")
+    (version "0.92.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://download.tuxfamily.org/" name "/"
+                                  name "_" version ".tar.xz"))
+              (sha256
+               (base32
+                "0297m24p2y8j3wavf8qqyriic7ls2392cmfn96y0pi83r5qckc25"))
+              (patches (list (search-patch "librep-rules.mk.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("makeinfo"   ,texinfo)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gdbm"     ,gdbm)
+       ("gmp"      ,gmp)
+       ("libffi"   ,libffi)
+       ("readline" ,readline)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "REP_DL_LOAD_PATH")
+            (files '("lib/rep")))))
+    (home-page "http://sawfish.wikia.com/wiki/Librep")
+    (synopsis "Lisp system for sawfish")
+    (description
+     "Librep is a dialect of Lisp, designed to be used both as an extension
+language for applications and as a general purpose programming language.  It
+was originally written to be mostly-compatible with Emacs Lisp, but has
+subsequently diverged markedly.  Its aim is to combine the best features of
+Scheme and Common Lisp and provide an environment that is comfortable for
+implementing both small and large scale systems.")
+    (license gpl2+)))
-- 
2.1.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] gnu: Add rep-gtk.
  2015-02-02 12:00 [PATCH 1/3] gnu: Add librep 宋文武
@ 2015-02-02 12:00 ` 宋文武
  2015-02-02 22:06   ` Ludovic Courtès
  2015-02-02 12:00 ` [PATCH 3/3] gnu: Add sawfish 宋文武
  2015-02-02 22:05 ` [PATCH 1/3] gnu: Add librep Ludovic Courtès
  2 siblings, 1 reply; 6+ messages in thread
From: 宋文武 @ 2015-02-02 12:00 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/sawfish.scm (rep-gtk): New variable.
---
 gnu/packages/sawfish.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
index acf3e06..ea5b757 100644
--- a/gnu/packages/sawfish.scm
+++ b/gnu/packages/sawfish.scm
@@ -23,6 +23,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages gdbm)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pkg-config)
@@ -64,3 +65,35 @@ subsequently diverged markedly.  Its aim is to combine the best features of
 Scheme and Common Lisp and provide an environment that is comfortable for
 implementing both small and large scale systems.")
     (license gpl2+)))
+
+(define-public rep-gtk
+  (package
+    (name "rep-gtk")
+    (version "0.90.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://download.tuxfamily.org/librep/"
+                                  name "/" name "_" version ".tar.xz"))
+              (sha256
+               (base32
+                "0qslm2isyv22hffdpw0nh7xk8jw8cj3h5y7d40c9h5r833w7j6sz"))
+              (modules '((guix build utils)))
+              (snippet
+               '(substitute* "Makefile.in"
+                  (("installdir=\\$\\(repexecdir\\)")
+                   ;; Install libraries for librep to $out/lib/rep.
+                   "installdir=$(libdir)/rep")))))
+    (build-system gnu-build-system)
+    (arguments '(#:tests? #f)) ; no tests
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     ;; required by rep-gtk.pc.
+     `(("gtk+"   ,gtk+-2)
+       ("librep" ,librep)))
+    (home-page "http://sawfish.wikia.com/wiki/Rep-GTK")
+    (synopsis "GTK+ binding for librep")
+    (description
+     "Rep-GTK is a gtk+ (and glib, gdk) binding to the librep, and one of the
+backend of sawfish.")
+    (license gpl2+)))
-- 
2.1.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] gnu: Add sawfish.
  2015-02-02 12:00 [PATCH 1/3] gnu: Add librep 宋文武
  2015-02-02 12:00 ` [PATCH 2/3] gnu: Add rep-gtk 宋文武
@ 2015-02-02 12:00 ` 宋文武
  2015-02-02 22:10   ` Ludovic Courtès
  2015-02-02 22:05 ` [PATCH 1/3] gnu: Add librep Ludovic Courtès
  2 siblings, 1 reply; 6+ messages in thread
From: 宋文武 @ 2015-02-02 12:00 UTC (permalink / raw)
  To: guix-devel

* 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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/3] gnu: Add librep.
  2015-02-02 12:00 [PATCH 1/3] gnu: Add librep 宋文武
  2015-02-02 12:00 ` [PATCH 2/3] gnu: Add rep-gtk 宋文武
  2015-02-02 12:00 ` [PATCH 3/3] gnu: Add sawfish 宋文武
@ 2015-02-02 22:05 ` Ludovic Courtès
  2 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2015-02-02 22:05 UTC (permalink / raw)
  To: 宋文武; +Cc: guix-devel

宋文武 <iyzsong@gmail.com> skribis:

> * gnu/packages/sawfish.scm: New file.
> * gnu/packages/patches/librep-rules.mk.patch: New file.
> * gnu-system.am: Add them.

[...]

> --- /dev/null
> +++ b/gnu/packages/patches/librep-rules.mk.patch
> @@ -0,0 +1,30 @@
> +rules.mk.in: Don't set prefix, datadir, libdir, datarootdir and repdir.
> +rules.mk.in: Use pkg-config to get the absolute path for repcommonexedir.
> +
> +Meregd into upstream: <https://github.com/SawfishWM/librep/commit/a1f2db721aa5055e90f6a76fde625946340ed8cf>.
    ^^^
Typo.

OK to push with this fixlet.

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] gnu: Add rep-gtk.
  2015-02-02 12:00 ` [PATCH 2/3] gnu: Add rep-gtk 宋文武
@ 2015-02-02 22:06   ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2015-02-02 22:06 UTC (permalink / raw)
  To: 宋文武; +Cc: guix-devel

宋文武 <iyzsong@gmail.com> skribis:

> * gnu/packages/sawfish.scm (rep-gtk): New variable.

[...]

> +    (synopsis "GTK+ binding for librep")
> +    (description
> +     "Rep-GTK is a gtk+ (and glib, gdk) binding to the librep, and one of the
> +backend of sawfish.")

Please use the correct spellings: GTK+, GLib, GDK, Sawfish.

OK to push with this change, thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 3/3] gnu: Add sawfish.
  2015-02-02 12:00 ` [PATCH 3/3] gnu: Add sawfish 宋文武
@ 2015-02-02 22:10   ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2015-02-02 22:10 UTC (permalink / raw)
  To: 宋文武; +Cc: guix-devel

宋文武 <iyzsong@gmail.com> skribis:

> * gnu/packages/sawfish.scm (sawfish): New variable.

LGTM!

While you’re at it ;-), could you add a ‘session-type’ for it in (gnu
services xorg) so we can easily give it a try?

Ludo'.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-02-02 22:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-02 12:00 [PATCH 1/3] gnu: Add librep 宋文武
2015-02-02 12:00 ` [PATCH 2/3] gnu: Add rep-gtk 宋文武
2015-02-02 22:06   ` Ludovic Courtès
2015-02-02 12:00 ` [PATCH 3/3] gnu: Add sawfish 宋文武
2015-02-02 22:10   ` Ludovic Courtès
2015-02-02 22:05 ` [PATCH 1/3] gnu: Add librep Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).