diff --git a/ChangeLog b/ChangeLog new file mode 120000 index 00000000..d526672c --- /dev/null +++ b/ChangeLog @@ -0,0 +1 @@ +debian/changelog \ No newline at end of file diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..684bc285 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,12 @@ +SUBDIRS = etc/byobu \ + usr/share/applications \ + usr/share/byobu/ec2 \ + usr/share/byobu/keybindings \ + usr/share/byobu/pixmaps \ + usr/share/byobu/profiles \ + usr/share/byobu/tests \ + usr/share/byobu/windows \ + usr/share/doc/byobu \ + usr/lib/byobu \ + usr/share/man/man1 \ + usr/bin diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..0a5f9baa --- /dev/null +++ b/configure.ac @@ -0,0 +1,29 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.65]) +AC_INIT(byobu, 2.83, http://bugs.launchpad.net/byobu) +AM_INIT_AUTOMAKE(byobu, 2.83) + +# Checks for programs. + +# Checks for libraries. + +# Checks for header files. + +# Checks for typedefs, structures, and compiler characteristics. + +# Checks for library functions. + +AC_OUTPUT(Makefile \ + etc/byobu/Makefile \ + usr/share/applications/Makefile \ + usr/share/byobu/ec2/Makefile \ + usr/share/byobu/keybindings/Makefile \ + usr/share/byobu/pixmaps/Makefile \ + usr/share/byobu/profiles/Makefile \ + usr/share/byobu/tests/Makefile \ + usr/share/byobu/windows/Makefile \ + usr/share/doc/byobu/Makefile \ + usr/lib/byobu/Makefile \ + usr/share/man/man1/Makefile usr/bin/Makefile) diff --git a/debian/changelog b/debian/changelog index efc8f161..660b7c9f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,27 @@ -byobu (2.83) unreleased; urgency=low +byobu (3.0) unreleased; urgency=low + [ Dustin Kirkland ] * usr/bin/byobu: allow users to specify their own -S, LP: #610134 + * Makefile.am, configure.ac, etc/byobu/Makefile.am, usr/bin/Makefile.am, + usr/bin/byobu, usr/bin/byobu-config, usr/bin/byobu-janitor, + usr/bin/byobu-launcher, usr/bin/byobu-select-profile, + usr/bin/byobu-select-session, usr/bin/byobu-status, + usr/lib/byobu/Makefile.am, usr/lib/byobu/ec2_cost, + usr/share/applications/Makefile.am, usr/share/byobu/ec2/Makefile.am, + usr/share/byobu/keybindings/Makefile.am, + usr/share/byobu/keybindings/f-keys, + usr/share/byobu/keybindings/screen-escape-keys, + usr/share/byobu/pixmaps/Makefile.am, + usr/share/byobu/profiles/Makefile.am, + usr/share/byobu/tests/Makefile.am, + usr/share/byobu/tests/byobu-time-notifications, + usr/share/byobu/windows/Makefile.am, usr/share/doc/byobu/Makefile.am, + usr/share/man/man1/Makefile.am: + - Positively massive changeset, enabling users of Unix/Linux distros + for which Byobu is not packaged (as well as non-root users of any + Unix/Linux distro) to $(./configure && make && make install) byobu! + LP: #609851, #608995, #503554 + - I think this is a significant enough milestone to bump version to 3.0 -- Dustin Kirkland Wed, 07 Jul 2010 11:36:03 -0400 diff --git a/etc/byobu/Makefile.am b/etc/byobu/Makefile.am new file mode 100644 index 00000000..5cf87afb --- /dev/null +++ b/etc/byobu/Makefile.am @@ -0,0 +1,2 @@ +etcdir = $(datadir)/@PACKAGE@/profiles +etc_DATA = statusrc socketdir diff --git a/usr/bin/Makefile.am b/usr/bin/Makefile.am new file mode 100644 index 00000000..b6726525 --- /dev/null +++ b/usr/bin/Makefile.am @@ -0,0 +1,2 @@ +bin_SCRIPTS = byobu byobu-config byobu-export byobu-janitor byobu-launch byobu-launcher byobu-launcher-install byobu-launcher-uninstall byobu-reconnect-sockets byobu-select-profile byobu-select-session byobu-status byobu-status-detail shell + diff --git a/usr/bin/byobu b/usr/bin/byobu index b0f282dd..14dfd648 100755 --- a/usr/bin/byobu +++ b/usr/bin/byobu @@ -19,6 +19,14 @@ PKG="byobu" VERSION=2.83 +[ -z "$BYOBU_PREFIX" ] && export BYOBU_PREFIX="/usr" +export BYOBU_PREFIX + +if [ ! -x "$BYOBU_PREFIX/bin/$PKG" ]; then + echo "ERROR: Cannot find $BYOBU_PREFIX/bin/$PKG" 2>&1 + echo "ERROR: If you have installed it elsewhere, export BYOBU_PREFIX in your shell" 2>&1 + exit 1 +fi # Add a version argument for debugging purposes if [ "$#" = "1" ] && [ "$1" = "-v" ]; then @@ -56,7 +64,7 @@ export BYOBU_WINDOWS grep -qs "^[^#]" "$BYOBU_WINDOWS" && DEFAULT_WINDOW= || DEFAULT_WINDOW="shell" # Check if our terminfo supports 256 colors -[ -x /usr/bin/tput ] && [ $(/usr/bin/tput colors 2>/dev/null || echo 0) -eq 256 ] && SCREEN_TERM="-T screen-256color" +$(which tput >/dev/null) && [ $(tput colors 2>/dev/null || echo 0) -eq 256 ] && SCREEN_TERM="-T screen-256color" # Create or update ssh-agent socket if [ -S "$SSH_AUTH_SOCK" ] && [ ! -h "$SSH_AUTH_SOCK" ] && [ -w "$RUN" ]; then @@ -64,7 +72,7 @@ if [ -S "$SSH_AUTH_SOCK" ] && [ ! -h "$SSH_AUTH_SOCK" ] && [ -w "$RUN" ]; then ln -sf "$SSH_AUTH_SOCK" "$RUN/$PKG.ssh-agent" fi -PROFILE="-c /usr/share/$PKG/profiles/byoburc" +PROFILE="-c $BYOBU_PREFIX/share/$PKG/profiles/byoburc" NAME="-S $PKG" # Zero out $NAME if user has specified a -S for i in $@; do diff --git a/usr/bin/byobu-config b/usr/bin/byobu-config index 1d9b5c5e..fb9d9a5b 100755 --- a/usr/bin/byobu-config +++ b/usr/bin/byobu-config @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#!/usr/bin/python # # byobu-config # Copyright (C) 2008 Canonical Ltd. @@ -28,11 +28,15 @@ from snack import * HOME=os.getenv("HOME") USER=os.getenv("USER") +if os.getenv("BYOBU_PREFIX"): + PREFIX = os.getenv("BYOBU_PREFIX") +else: + PREFIX = "/usr" PKG="byobu" -SHARE='/usr/share/'+PKG +SHARE=PREFIX+'/share/'+PKG if not os.path.exists(SHARE): SHARE = "%s/.%s/%s" % (HOME, PKG, SHARE) -DOC='/usr/share/doc/'+PKG +DOC=PREFIX+'/share/doc/'+PKG if not os.path.exists(DOC): DOC = "%s/.%s/%s" % (HOME, PKG, DOC) DEF_ESC="A" diff --git a/usr/bin/byobu-janitor b/usr/bin/byobu-janitor index 5ad018fe..636e747c 100755 --- a/usr/bin/byobu-janitor +++ b/usr/bin/byobu-janitor @@ -20,6 +20,7 @@ # along with this program. If not, see . PKG="byobu" +[ -z "$BYOBU_PREFIX" ] && export BYOBU_PREFIX="/usr" [ -r "/etc/$PKG/socketdir" ] && . "/etc/$PKG/socketdir" || SOCKETDIR="/var/run/screen" RUN="$SOCKETDIR/S-$USER" FLAG="$RUN/$PKG.reload-required" @@ -55,12 +56,12 @@ fi # Seed the configuration [ -d "$HOME/.$PKG" ] || mkdir -p "$HOME/.$PKG" [ -r "$HOME/.$PKG/color" ] || printf "BACKGROUND=k\nFOREGROUND=w\nMONOCHROME=0" > "$HOME/.$PKG/color" -[ -r "$PROFILE" ] || ln -sf /usr/share/$PKG/profiles/common "$PROFILE" +[ -r "$PROFILE" ] || ln -sf $BYOBU_PREFIX/share/$PKG/profiles/common "$PROFILE" # Affects: Symlinks pointing to color profiles if [ -h "$PROFILE" ]; then case "$(stat $PROFILE)" in - *File:*-\>*/usr/share/byobu/profiles/*) + *File:*-\>*$BYOBU_PREFIX/share/byobu/profiles/*) # Set default colors BG=W FG=k @@ -92,8 +93,17 @@ if [ -h "$PROFILE" ]; then esac fi -[ -s "$HOME/.$PKG/keybindings" ] || echo "source /usr/share/$PKG/keybindings/common" > "$HOME/.$PKG/keybindings" -[ -r "$HOME/.$PKG/status" ] || $(grep -A 999999 BEGIN_CUT_HERE /etc/$PKG/statusrc | grep -B 999999 END_CUT_HERE | grep -v CUT > "$HOME/.$PKG/status") +[ -s "$HOME/.$PKG/keybindings" ] || echo "source $BYOBU_PREFIX/share/$PKG/keybindings/common" > "$HOME/.$PKG/keybindings" +if [ ! -r "$HOME/.$PKG/status" ]; then + if [ -r /etc/$PKG/statusrc ]; then + skel=/etc/$PKG/statusrc + elif [ -r "$BYOBU_PREFIX/share/$PKG/profiles/statusrc" ]; then + skel="$BYOBU_PREFIX/share/$PKG/profiles/statusrc" + else + skel=/dev/null + fi + grep -A 999999 BEGIN_CUT_HERE $skel | grep -B 999999 END_CUT_HERE | grep -v CUT > "$HOME/.$PKG/status" +fi [ -r "$HOME/.$PKG/windows" ] || touch "$HOME/.$PKG/windows" [ -r "$HOME/.screenrc" ] || touch "$HOME/.screenrc" diff --git a/usr/bin/byobu-launcher b/usr/bin/byobu-launcher index f43a4263..ce15f490 100755 --- a/usr/bin/byobu-launcher +++ b/usr/bin/byobu-launcher @@ -17,6 +17,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +[ -z "$BYOBU_PREFIX" ] && export BYOBU_PREFIX="/usr" +export BYOBU_PREFIX + if [ ! -e "$HOME/.byobu/disable-autolaunch" ]; then case "$TERM" in *screen*) @@ -38,14 +41,14 @@ if [ ! -e "$HOME/.byobu/disable-autolaunch" ]; then false ;; *) - exec /usr/bin/byobu "$@" + exec $BYOBU_PREFIX/bin/byobu "$@" ;; esac else - exec /usr/bin/byobu "$@" + exec $BYOBU_PREFIX/bin/byobu "$@" fi else - exec /usr/bin/byobu "$@" + exec $BYOBU_PREFIX/bin/byobu "$@" fi ;; *) @@ -54,7 +57,7 @@ if [ ! -e "$HOME/.byobu/disable-autolaunch" ]; then esac ;; *) - exec /usr/bin/byobu "$@" + exec $BYOBU_PREFIX/bin/byobu "$@" ;; esac fi diff --git a/usr/bin/byobu-select-profile b/usr/bin/byobu-select-profile index 7daf3dd6..9327d01b 100755 --- a/usr/bin/byobu-select-profile +++ b/usr/bin/byobu-select-profile @@ -23,6 +23,8 @@ # ./debian/rules get-po PKG="byobu" +[ -z "$BYOBU_PREFIX" ] && export BYOBU_PREFIX="/usr" +export BYOBU_PREFIX [ -r "/etc/$PKG/socketdir" ] && . "/etc/$PKG/socketdir" || SOCKETDIR="/var/run/screen" TEXTDOMAIN="$PKG" @@ -62,7 +64,7 @@ EOT # Initialize variables FILE="$HOME"/."$PKG"/color PROFILE="$HOME/.$PKG/profile" -[ -r "$PROFILE" ] || ln -sf /usr/share/$PKG/profiles/common "$PROFILE" +[ -r "$PROFILE" ] || ln -sf $BYOBU_PREFIX/share/$PKG/profiles/common "$PROFILE" selected=-1 color= diff --git a/usr/bin/byobu-select-session b/usr/bin/byobu-select-session index 6c1de8eb..cac994fa 100755 --- a/usr/bin/byobu-select-session +++ b/usr/bin/byobu-select-session @@ -22,6 +22,10 @@ import commands, os, re, sys PKG = "byobu" SHELL = os.getenv("SHELL", "/bin/bash") +if os.getenv("BYOBU_PREFIX"): + PREFIX = os.getenv("BYOBU_PREFIX") +else: + PREFIX = "/usr" choice = "" sessions = [] text = [] @@ -68,10 +72,10 @@ if i > 1: if choice: if choice == i-1: # Create a new session - os.execv("/usr/bin/byobu", ["", SHELL]) + os.execv(PREFIX+"/bin/byobu", ["", SHELL]) else: # Attach to the chosen session; must use the 'screen' binary - os.execv("/usr/bin/screen", ["", "-AOxRR", sessions[choice-1]]) + os.execv(PREFIX+"/bin/screen", ["", "-AOxRR", sessions[choice-1]]) # No valid selection, default to the youngest session, create if necessary -os.execv("/usr/bin/byobu", ["", "-AOxRR"]) +os.execv(PREFIX+"/bin/byobu", ["", "-AOxRR"]) diff --git a/usr/bin/byobu-status b/usr/bin/byobu-status index 8d3ce92b..3fe4b835 100755 --- a/usr/bin/byobu-status +++ b/usr/bin/byobu-status @@ -18,13 +18,15 @@ # along with this program. If not, see . PKG="byobu" +[ -z "$BYOBU_PREFIX" ] && export BYOBU_PREFIX="/usr" +export BYOBU_PREFIX find_script () { # Allow for local status scripts if [ -x "$HOME/.$PKG/bin/$1" ]; then echo "$HOME/.$PKG/bin/$1" - elif [ -x "/usr/lib/$PKG/$1" ]; then - echo "/usr/lib/$PKG/$1" + elif [ -x "$BYOBU_PREFIX/lib/$PKG/$1" ]; then + echo "$BYOBU_PREFIX/lib/$PKG/$1" else echo "/dev/null" fi @@ -65,7 +67,7 @@ case "$P" in VER=$(set -- $(dpkg-query --show $PKG); echo "$2") fi printf "$PKG-$VER Detailed Status Navigation\n Expand all - zr\t\tCollapse all - zm\n Expand one - zo\t\tCollapse one - zc\n\n" - for i in "/usr/lib/$PKG"/* "$HOME/.$PKG/bin"/*; do + for i in "$BYOBU_PREFIX/lib/$PKG"/* "$HOME/.$PKG/bin"/*; do i=${i##*/} [ "$i" = "menu" ] && continue script=`find_script $i` diff --git a/usr/lib/byobu/Makefile.am b/usr/lib/byobu/Makefile.am new file mode 100644 index 00000000..6c4eb6be --- /dev/null +++ b/usr/lib/byobu/Makefile.am @@ -0,0 +1,3 @@ +libdirdir = $(prefix)/lib/@PACKAGE@ +libdir_SCRIPTS = apport arch battery cpu_count cpu_freq cpu_temp custom date disk disk_io ec2_cost fan_speed hostname ip_address load_average logo mail mem_available mem_used menu network processes rcs_cost reboot_required release services time time_utc updates_available uptime users whoami wifi_quality + diff --git a/usr/lib/byobu/ec2_cost b/usr/lib/byobu/ec2_cost index 9b6ec6f8..e4098c84 100755 --- a/usr/lib/byobu/ec2_cost +++ b/usr/lib/byobu/ec2_cost @@ -19,6 +19,7 @@ DETAIL=0 PKG="byobu" +[ -z "$BYOBU_PREFIX" ] && BYOBU_PREFIX="/usr" color 2>/dev/null || color() { true; } for arg in $@; do @@ -30,7 +31,7 @@ for arg in $@; do done # Get the going rates -[ -r "$HOME/.$PKG/ec2_rates" ] || ln -s /usr/share/$PKG/ec2/rates.us_ca "$HOME/.$PKG/ec2_rates" +[ -r "$HOME/.$PKG/ec2_rates" ] || ln -s $BYOBU_PREFIX/share/$PKG/ec2/rates.us_ca "$HOME/.$PKG/ec2_rates" . "$HOME/.$PKG/ec2_rates" || exit 1 # Count CPUs, Memory, Architecture diff --git a/usr/share/applications/Makefile.am b/usr/share/applications/Makefile.am new file mode 100644 index 00000000..c89c60b3 --- /dev/null +++ b/usr/share/applications/Makefile.am @@ -0,0 +1,2 @@ +applicationdir = $(datadir)/applications/ +application_SCRIPTS = byobu.desktop diff --git a/usr/share/byobu/ec2/Makefile.am b/usr/share/byobu/ec2/Makefile.am new file mode 100644 index 00000000..23f8bf60 --- /dev/null +++ b/usr/share/byobu/ec2/Makefile.am @@ -0,0 +1,2 @@ +ec2dir = $(datadir)/@PACKAGE@/ec2 +ec2_DATA = rates.eu_ie rates.us_ca rates.us_va diff --git a/usr/share/byobu/keybindings/Makefile.am b/usr/share/byobu/keybindings/Makefile.am new file mode 100644 index 00000000..26f9c992 --- /dev/null +++ b/usr/share/byobu/keybindings/Makefile.am @@ -0,0 +1,2 @@ +keybindingsdir = $(datadir)/@PACKAGE@/keybindings +keybindings_DATA = common f-keys none screen-escape-keys diff --git a/usr/share/byobu/keybindings/f-keys b/usr/share/byobu/keybindings/f-keys index 4aac9f00..d3f75f49 100644 --- a/usr/share/byobu/keybindings/f-keys +++ b/usr/share/byobu/keybindings/f-keys @@ -41,5 +41,5 @@ register s "^a[g G$>^h" # Goes with ^a~ definition bind ~ eval 'process s' 'exec sed -i "/./,/^$/!d" /var/run/screen/S-$USER/byobu-exchange' 'echo "See: /var/run/screen/S-$USER/byobu-exchange"' # ctrl-a ~ | write the buffer to file # toggle f-key keybindings off -register d "^a:source /usr/share/byobu/keybindings/screen-escape-keys^M" +register d "^a:source $BYOBU_PREFIX/share/byobu/keybindings/screen-escape-keys^M" bind ! eval 'process d' 'backtick 111 9999999 9999999 byobu-status menu --disable-f-keys' diff --git a/usr/share/byobu/keybindings/screen-escape-keys b/usr/share/byobu/keybindings/screen-escape-keys index 076b5ae9..75103c3b 100644 --- a/usr/share/byobu/keybindings/screen-escape-keys +++ b/usr/share/byobu/keybindings/screen-escape-keys @@ -48,5 +48,5 @@ bind @ screen -t config 0 byobu-config # ctrl-a-$ Show detailed status bind $ screen -t status 0 byobu-status-detail # ctrl-a-! Toggle f-key keybindings on -register e "^a:source /usr/share/byobu/keybindings/f-keys^M" +register e "^a:source $BYOBU_PREFIX/share/byobu/keybindings/f-keys^M" bind ! eval 'process e' 'backtick 111 9999999 9999999 byobu-status menu' diff --git a/usr/share/byobu/pixmaps/Makefile.am b/usr/share/byobu/pixmaps/Makefile.am new file mode 100644 index 00000000..8d5e60b4 --- /dev/null +++ b/usr/share/byobu/pixmaps/Makefile.am @@ -0,0 +1,2 @@ +pixmapsdir = $(datadir)/@PACKAGE@/pixmaps +pixmaps_DATA = byobu.svg diff --git a/usr/share/byobu/profiles/Makefile.am b/usr/share/byobu/profiles/Makefile.am new file mode 100644 index 00000000..c9062cae --- /dev/null +++ b/usr/share/byobu/profiles/Makefile.am @@ -0,0 +1,2 @@ +profilesdir = $(datadir)/@PACKAGE@/profiles +profiles_DATA = byoburc common NONE diff --git a/usr/share/byobu/tests/Makefile.am b/usr/share/byobu/tests/Makefile.am new file mode 100644 index 00000000..11e60cf8 --- /dev/null +++ b/usr/share/byobu/tests/Makefile.am @@ -0,0 +1,2 @@ +testsdir = $(datadir)/@PACKAGE@/tests +tests_SCRIPTS = byobu-time-notifications diff --git a/usr/share/byobu/tests/byobu-time-notifications b/usr/share/byobu/tests/byobu-time-notifications index a7d0c462..f1edf0f3 100755 --- a/usr/share/byobu/tests/byobu-time-notifications +++ b/usr/share/byobu/tests/byobu-time-notifications @@ -21,6 +21,8 @@ PKG=byobu RUNS=100 +[ -z "$BYOBU_PREFIX" ] && BYOBU_PREFIX="/usr" +export BYOBU_PREFIX loop() { for j in $(seq 1 $RUNS); do diff --git a/usr/share/byobu/windows/Makefile.am b/usr/share/byobu/windows/Makefile.am new file mode 100644 index 00000000..b0900766 --- /dev/null +++ b/usr/share/byobu/windows/Makefile.am @@ -0,0 +1,2 @@ +windowsdir = $(datadir)/@PACKAGE@/windows +windows_SCRIPTS = common diff --git a/usr/share/doc/byobu/Makefile.am b/usr/share/doc/byobu/Makefile.am new file mode 100644 index 00000000..3c8fcd12 --- /dev/null +++ b/usr/share/doc/byobu/Makefile.am @@ -0,0 +1,2 @@ +docdir = $(datadir)/doc/@PACKAGE@ +doc_DATA = help.txt diff --git a/usr/share/man/man1/Makefile.am b/usr/share/man/man1/Makefile.am new file mode 100644 index 00000000..41da813c --- /dev/null +++ b/usr/share/man/man1/Makefile.am @@ -0,0 +1,2 @@ +man_MANS = byobu.1 byobu-config.1 byobu-export.1 byobu-launcher.1 byobu-reconnect-sockets.1 byobu-select-profile.1 byobu-select-session.1 byobu-status.1 byobu-status-detail.1 shell.1 +