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.
master
Eric Bavier 2015-11-01 09:56:05 -06:00
parent e5930e5a13
commit b95bcb8ae0
3 changed files with 67 additions and 0 deletions

View File

@ -411,6 +411,7 @@ dist_patch_DATA = \
gnu/packages/patches/bitlbee-configure-doc-fix.patch \
gnu/packages/patches/bluez-tests.patch \
gnu/packages/patches/boost-mips-avoid-m32.patch \
gnu/packages/patches/byobu-writable-status.patch \
gnu/packages/patches/calibre-drop-unrar.patch \
gnu/packages/patches/calibre-no-updates-dialog.patch \
gnu/packages/patches/cdparanoia-fpic.patch \

View File

@ -0,0 +1,13 @@
Skeleton status files are installed read-only. When copying to the config dir
upon initialization, make sure they end up writable.
--- byobu-5.98/usr/bin/byobu-janitor.in
+++ byobu-5.98/usr/bin/byobu-janitor.in
@@ -82,6 +82,7 @@
if [ ! -r "$BYOBU_CONFIG_DIR/$f" ]; then
# Copy from skeleton, if possible
cp -f "$BYOBU_PREFIX/share/$PKG/status/$f" "$BYOBU_CONFIG_DIR/$f"
+ chmod +w "$BYOBU_CONFIG_DIR/$f"
# Enable ec2_cost, if we're in ec2 and seeding a new setup
if metadata_available; then
$BYOBU_SED_INLINE -e "s/#ec2_cost/ec2_cost/g" "$($BYOBU_READLINK -f $BYOBU_CONFIG_DIR/$f)"

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -25,6 +26,8 @@
#:use-module (gnu packages)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages slang)
#:use-module (gnu packages texinfo))
(define-public screen
@ -90,3 +93,53 @@ view to show two terminals at once.")
allowing you to run a program in an environment that is protected from the
controlling terminal and attach to it later.")
(license gpl2+)))
(define-public byobu
(package
(name "byobu")
(version "5.98")
(source
(origin
(method url-fetch)
(uri (string-append "https://launchpad.net/byobu/trunk/"
version "/+download/byobu_"
version ".orig.tar.gz"))
(sha256
(base32
"1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5"))
(patches (list (search-patch "byobu-writable-status.patch")))))
(build-system gnu-build-system)
(inputs
`(("python" ,python-wrapper) ;for config and session GUIs
("python-newt" ,newt "python")))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before
'configure 'provide-locale
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))) ;implicit input
(substitute* "usr/bin/byobu.in"
(("locale") (string-append libc "/bin/locale"))))))
(add-after
'install 'wrap-python-scripts
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((python (string-append (assoc-ref inputs "python")
"/bin/python"))
(out (assoc-ref outputs "out"))
(config (string-append out "/bin/byobu-config"))
(select (string-append out "/bin/byobu-select-session")))
(wrap-program config
`("BYOBU_PYTHON" = (,python))
`("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
(wrap-program select
`("BYOBU_PYTHON" = (,python)))
#t))))))
(home-page "http://byobu.co/index.html")
(synopsis "Text-based window manager and terminal multiplexer")
(description
"Byobu is a Japanese term for decorative, multi-panel screens that serve
as folding room dividers. The Byobu software includes an enhanced profile,
configuration utilities, and system status notifications for the GNU Screen
window manager as well as the Tmux terminal multiplexer.")
(license gpl3+)))