summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2015-11-01 09:56:05 -0600
committerEric Bavier <bavier@member.fsf.org>2015-11-03 17:08:41 -0600
commitb95bcb8ae0a8a4f5c29bce8f6486a91d6d5441cc (patch)
tree00ff04faa8320edf226edd1b8b9a8e982680b9e9
parente5930e5a13b878f8ea46aa87f0c638421f32ab59 (diff)
gnu: Add byobu.
* gnu/packages/screen.scm (byobu): New variable. * gnu/packages/patches/byobu-writable-status.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it.
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/patches/byobu-writable-status.patch13
-rw-r--r--gnu/packages/screen.scm53
3 files changed, 67 insertions, 0 deletions
diff --git a/gnu-system.am b/gnu-system.am
index c5b87cc6f48..946b77eeff4 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -411,6 +411,7 @@ dist_patch_DATA = \
411 gnu/packages/patches/bitlbee-configure-doc-fix.patch \ 411 gnu/packages/patches/bitlbee-configure-doc-fix.patch \
412 gnu/packages/patches/bluez-tests.patch \ 412 gnu/packages/patches/bluez-tests.patch \
413 gnu/packages/patches/boost-mips-avoid-m32.patch \ 413 gnu/packages/patches/boost-mips-avoid-m32.patch \
414 gnu/packages/patches/byobu-writable-status.patch \
414 gnu/packages/patches/calibre-drop-unrar.patch \ 415 gnu/packages/patches/calibre-drop-unrar.patch \
415 gnu/packages/patches/calibre-no-updates-dialog.patch \ 416 gnu/packages/patches/calibre-no-updates-dialog.patch \
416 gnu/packages/patches/cdparanoia-fpic.patch \ 417 gnu/packages/patches/cdparanoia-fpic.patch \
diff --git a/gnu/packages/patches/byobu-writable-status.patch b/gnu/packages/patches/byobu-writable-status.patch
new file mode 100644
index 00000000000..28582802737
--- /dev/null
+++ b/gnu/packages/patches/byobu-writable-status.patch
@@ -0,0 +1,13 @@
1Skeleton status files are installed read-only. When copying to the config dir
2upon initialization, make sure they end up writable.
3
4--- byobu-5.98/usr/bin/byobu-janitor.in
5+++ byobu-5.98/usr/bin/byobu-janitor.in
6@@ -82,6 +82,7 @@
7 if [ ! -r "$BYOBU_CONFIG_DIR/$f" ]; then
8 # Copy from skeleton, if possible
9 cp -f "$BYOBU_PREFIX/share/$PKG/status/$f" "$BYOBU_CONFIG_DIR/$f"
10+ chmod +w "$BYOBU_CONFIG_DIR/$f"
11 # Enable ec2_cost, if we're in ec2 and seeding a new setup
12 if metadata_available; then
13 $BYOBU_SED_INLINE -e "s/#ec2_cost/ec2_cost/g" "$($BYOBU_READLINK -f $BYOBU_CONFIG_DIR/$f)"
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index 84cc8c9dc5f..fa5235c1152 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -1,6 +1,7 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> 2;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
3;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> 3;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
4;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
4;;; 5;;;
5;;; This file is part of GNU Guix. 6;;; This file is part of GNU Guix.
6;;; 7;;;
@@ -25,6 +26,8 @@
25 #:use-module (gnu packages) 26 #:use-module (gnu packages)
26 #:use-module (gnu packages ncurses) 27 #:use-module (gnu packages ncurses)
27 #:use-module (gnu packages perl) 28 #:use-module (gnu packages perl)
29 #:use-module (gnu packages python)
30 #:use-module (gnu packages slang)
28 #:use-module (gnu packages texinfo)) 31 #:use-module (gnu packages texinfo))
29 32
30(define-public screen 33(define-public screen
@@ -90,3 +93,53 @@ view to show two terminals at once.")
90allowing you to run a program in an environment that is protected from the 93allowing you to run a program in an environment that is protected from the
91controlling terminal and attach to it later.") 94controlling terminal and attach to it later.")
92 (license gpl2+))) 95 (license gpl2+)))
96
97(define-public byobu
98 (package
99 (name "byobu")
100 (version "5.98")
101 (source
102 (origin
103 (method url-fetch)
104 (uri (string-append "https://launchpad.net/byobu/trunk/"
105 version "/+download/byobu_"
106 version ".orig.tar.gz"))
107 (sha256
108 (base32
109 "1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5"))
110 (patches (list (search-patch "byobu-writable-status.patch")))))
111 (build-system gnu-build-system)
112 (inputs
113 `(("python" ,python-wrapper) ;for config and session GUIs
114 ("python-newt" ,newt "python")))
115 (arguments
116 `(#:phases
117 (modify-phases %standard-phases
118 (add-before
119 'configure 'provide-locale
120 (lambda* (#:key inputs #:allow-other-keys)
121 (let ((libc (assoc-ref inputs "libc"))) ;implicit input
122 (substitute* "usr/bin/byobu.in"
123 (("locale") (string-append libc "/bin/locale"))))))
124 (add-after
125 'install 'wrap-python-scripts
126 (lambda* (#:key inputs outputs #:allow-other-keys)
127 (let* ((python (string-append (assoc-ref inputs "python")
128 "/bin/python"))
129 (out (assoc-ref outputs "out"))
130 (config (string-append out "/bin/byobu-config"))
131 (select (string-append out "/bin/byobu-select-session")))
132 (wrap-program config
133 `("BYOBU_PYTHON" = (,python))
134 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
135 (wrap-program select
136 `("BYOBU_PYTHON" = (,python)))
137 #t))))))
138 (home-page "http://byobu.co/index.html")
139 (synopsis "Text-based window manager and terminal multiplexer")
140 (description
141 "Byobu is a Japanese term for decorative, multi-panel screens that serve
142as folding room dividers. The Byobu software includes an enhanced profile,
143configuration utilities, and system status notifications for the GNU Screen
144window manager as well as the Tmux terminal multiplexer.")
145 (license gpl3+)))