diff options
author | Eric Bavier <bavier@member.fsf.org> | 2015-11-01 09:56:05 -0600 |
---|---|---|
committer | Eric Bavier <bavier@member.fsf.org> | 2015-11-03 17:08:41 -0600 |
commit | b95bcb8ae0a8a4f5c29bce8f6486a91d6d5441cc (patch) | |
tree | 00ff04faa8320edf226edd1b8b9a8e982680b9e9 /gnu/packages | |
parent | e5930e5a13b878f8ea46aa87f0c638421f32ab59 (diff) | |
download | guix-b95bcb8ae0a8a4f5c29bce8f6486a91d6d5441cc.tar.gz |
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.
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/patches/byobu-writable-status.patch | 13 | ||||
-rw-r--r-- | gnu/packages/screen.scm | 53 |
2 files changed, 66 insertions, 0 deletions
diff --git a/gnu/packages/patches/byobu-writable-status.patch b/gnu/packages/patches/byobu-writable-status.patch new file mode 100644 index 0000000000..2858280273 --- /dev/null +++ b/gnu/packages/patches/byobu-writable-status.patch @@ -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)" diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 84cc8c9dc5..fa5235c115 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -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+))) |