dot

packages and services management
Log | Files | Refs | README

commit 23fc78f6b386a6d1c01b60da1a66cde360342a90
parent 34e3d888e3e424f1651268dc52a69e9e52e73578
Author: Josuah Demangeon <mail@josuah.net>
Date:   Thu, 23 Nov 2017 16:29:39 +0100

$PREFIX -> $OPT

Diffstat:
Mbin/mdoc | 2++
Mbin/package | 13++++++-------
Rbin/fun-piano -> bin/piano | 0
Mpackage/9pfs/build | 6+++---
Mpackage/busybox/build | 2+-
Mpackage/cgo/build | 6+++---
Mpackage/dmenu/build | 4++--
Apackage/dwm/build | 3+++
Mpackage/dwm/config.h | 8++++++--
Apackage/dwm/dwm-bottomstack-6.1.diff | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpackage/e2fsprogs/build | 8++++----
Mpackage/ed/build | 4++--
Mpackage/enchive/build | 4++--
Mpackage/entr/build | 2+-
Mpackage/git/build | 2+-
Mpackage/libbearssl/build | 8++++----
Mpackage/libmusl/build | 6+++---
Mpackage/libopus/build | 2+-
Mpackage/libtox/build | 2+-
Mpackage/libvpx/build | 2+-
Mpackage/linux/build | 6+++---
Mpackage/man-posix/build | 2+-
Mpackage/mandoc/build | 12++++++------
Mpackage/mblaze/build | 2+-
Mpackage/mpop/build | 4++--
Mpackage/msmtp/build | 6+++---
Mpackage/mupdf/build | 2+-
Mpackage/nafe/build | 2+-
Mpackage/ngircd/build | 4++--
Mpackage/openssh/build | 2+-
Mpackage/openssh/build.nero | 12++++++------
Mpackage/opentracker/build | 2+-
Mpackage/radare2/build | 2+-
Mpackage/reflex/build | 4++--
Mpackage/retawq/build | 2+-
Mpackage/rsync/build | 2+-
Mpackage/runit/build | 8++++----
Mpackage/sfeed/build | 2+-
Mpackage/st/build | 2+-
Dpackage/st/st-scrollback-0.7.diff | 387-------------------------------------------------------------------------------
Mpackage/tonic-init/build.sh | 8++++----
Mpackage/u9fs/build | 4++--
42 files changed, 192 insertions(+), 470 deletions(-)

diff --git a/bin/mdoc b/bin/mdoc @@ -9,4 +9,6 @@ case $1 in sed -e 's/\\/\\\\/g' -e 's/^\./\\./' printf '.Ed' ;; +(*) + printf 'usage: mdoc dd | db\n' esac diff --git a/bin/package b/bin/package @@ -2,10 +2,10 @@ : ${2:?usage: ${0##*/} [tar git get build add del] package} -SYSROOT="$HOME/.local" -PKG="$HOME/etc/package/$2" -SRC="$HOME/.local/src/$2" -OPT="$HOME/.local/opt/$2" +export SYSROOT="$HOME/.local" +export PKG="$HOME/etc/package/$2" +export SRC="$HOME/.local/src/$2" +export OPT="$HOME/.local/opt/$2" case "$1" in (tar) @@ -43,7 +43,6 @@ case "$1" in export CFLAGS="-I'$SYSROOT/include'" export LDFLAGS="-L'$SYSROOT/lib'" - export PREFIX="$OPT" mkdir -p "$OPT" cd "$SRC" || exit 1 @@ -54,8 +53,8 @@ case "$1" in else [ -f "$PKG/config.mk" ] && cp "$PKG/config.mk" "$SRC" [ -f "$PKG/config.h" ] && cp "$PKG/config.h" "$SRC" - [ -f "$SRC/configure" ] && "$SRC/configure" --prefix="$PREFIX" - cd "$SRC" && make && make PREFIX="$PREFIX" install || exit 1 + [ -f "$SRC/configure" ] && "$SRC/configure" --prefix="$OPT" + cd "$SRC" && make && make PREFIX="$OPT" install || exit 1 fi ;; (add) diff --git a/bin/fun-piano b/bin/piano diff --git a/package/9pfs/build b/package/9pfs/build @@ -1,5 +1,5 @@ make -mkdir -p "$PREFIX/bin" "$PREFIX/share/man/man1" -cp 9pfs "$PREFIX/bin" -cp 9pfs.1 "$PREFIX/share/man/man1" +mkdir -p "$OPT/bin" "$OPT/share/man/man1" +cp 9pfs "$OPT/bin" +cp 9pfs.1 "$OPT/share/man/man1" diff --git a/package/busybox/build b/package/busybox/build @@ -11,4 +11,4 @@ sed -i 's,/sbin,/bin,g' busybox.links install -D busybox "$DESTDIR/bin/busybox" install -D docs/busybox.1 "$DESTDIR/share/man/man1/busybox.1" -cat busybox.links|while read p; do ln -sf busybox "$DESTDIR$PREFIX$p"; done +cat busybox.links|while read p; do ln -sf busybox "$DESTDIR$OPT$p"; done diff --git a/package/cgo/build b/package/cgo/build @@ -1,3 +1,3 @@ -make && make PREFIX="$PREFIX" install -mkdir -p "$PREFIX/share/man/man1" -cp cgo.1 "$PREFIX/share/man/man1" +make && make PREFIX="$OPT" install +mkdir -p "$OPT/share/man/man1" +cp cgo.1 "$OPT/share/man/man1" diff --git a/package/dmenu/build b/package/dmenu/build @@ -1,6 +1,6 @@ cc stest.c -o stest -cp stest "$PREFIX/bin/stest" +cp stest "$OPT/bin/stest" #sed -i '/^FREETYPEINC = \$/ s/^/#/' config.mk -make PREFIX="$PREFIX" install clean +make PREFIX="$OPT" install clean diff --git a/package/dwm/build b/package/dwm/build @@ -0,0 +1,3 @@ +patch -p1 < "$PKG/dwm-bottomstack-6.1.diff" +cp -f "$PKG/config.h" "$SRC/config.h" +make PREFIX="$OPT" install diff --git a/package/dwm/config.h b/package/dwm/config.h @@ -49,6 +49,8 @@ static const int resizehints = 0; /* 1 means respect size hints in tiled resi static const Layout layouts[] = { /* symbol arrange function */ { "[t]", tile }, /* first entry is default */ + { "[u]", bstack }, + { "[o]", bstackhoriz }, { "[f]", NULL }, /* no layout function means floating behavior */ { "[m]", monocle }, }; @@ -84,8 +86,10 @@ static Key keys[] = { { MODKEY, XK_Tab, view, {0} }, { MODKEY, XK_BackSpace, killclient, {0} }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_u, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_o, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[3]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[4]} }, { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, { MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, diff --git a/package/dwm/dwm-bottomstack-6.1.diff b/package/dwm/dwm-bottomstack-6.1.diff @@ -0,0 +1,101 @@ +diff --git a/config.def.h b/config.def.h +index 7054c06..554f1db 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -39,6 +39,8 @@ static const Layout layouts[] = { + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, ++ { "TTT", bstack }, ++ { "===", bstackhoriz }, + }; + + /* key definitions */ +@@ -74,6 +76,8 @@ static Key keys[] = { + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, ++ { MODKEY, XK_u, setlayout, {.v = &layouts[3]} }, ++ { MODKEY, XK_o, setlayout, {.v = &layouts[4]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, +diff --git a/dwm.c b/dwm.c +index 0362114..c313b5e 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -233,6 +233,8 @@ static int xerror(Display *dpy, XErrorEvent *ee); + static int xerrordummy(Display *dpy, XErrorEvent *ee); + static int xerrorstart(Display *dpy, XErrorEvent *ee); + static void zoom(const Arg *arg); ++static void bstack(Monitor *m); ++static void bstackhoriz(Monitor *m); + + /* variables */ + static const char broken[] = "broken"; +@@ -2139,3 +2141,65 @@ main(int argc, char *argv[]) + XCloseDisplay(dpy); + return EXIT_SUCCESS; + } ++ ++static void ++bstack(Monitor *m) { ++ int w, h, mh, mx, tx, ty, tw; ++ unsigned int i, n; ++ Client *c; ++ ++ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); ++ if (n == 0) ++ return; ++ if (n > m->nmaster) { ++ mh = m->nmaster ? m->mfact * m->wh : 0; ++ tw = m->ww / (n - m->nmaster); ++ ty = m->wy + mh; ++ } else { ++ mh = m->wh; ++ tw = m->ww; ++ ty = m->wy; ++ } ++ for (i = mx = 0, tx = m->wx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) { ++ if (i < m->nmaster) { ++ w = (m->ww - mx) / (MIN(n, m->nmaster) - i); ++ resize(c, m->wx + mx, m->wy, w - (2 * c->bw), mh - (2 * c->bw), 0); ++ mx += WIDTH(c); ++ } else { ++ h = m->wh - mh; ++ resize(c, tx, ty, tw - (2 * c->bw), h - (2 * c->bw), 0); ++ if (tw != m->ww) ++ tx += WIDTH(c); ++ } ++ } ++} ++ ++static void ++bstackhoriz(Monitor *m) { ++ int w, mh, mx, tx, ty, th; ++ unsigned int i, n; ++ Client *c; ++ ++ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); ++ if (n == 0) ++ return; ++ if (n > m->nmaster) { ++ mh = m->nmaster ? m->mfact * m->wh : 0; ++ th = (m->wh - mh) / (n - m->nmaster); ++ ty = m->wy + mh; ++ } else { ++ th = mh = m->wh; ++ ty = m->wy; ++ } ++ for (i = mx = 0, tx = m->wx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) { ++ if (i < m->nmaster) { ++ w = (m->ww - mx) / (MIN(n, m->nmaster) - i); ++ resize(c, m->wx + mx, m->wy, w - (2 * c->bw), mh - (2 * c->bw), 0); ++ mx += WIDTH(c); ++ } else { ++ resize(c, tx, ty, m->ww - (2 * c->bw), th - (2 * c->bw), 0); ++ if (th != m->wh) ++ ty += HEIGHT(c); ++ } ++ } ++} diff --git a/package/e2fsprogs/build b/package/e2fsprogs/build @@ -1,16 +1,16 @@ #!/bin/sh set -e -export LDFLAGS="$LDFLAGS -Wl,-rpath-link=$SYSROOT$PREFIX/lib" +export LDFLAGS="$LDFLAGS -Wl,-rpath-link=$SYSROOT$OPT/lib" export CC="$CC -L$SYSROOT/lib -isystem $SYSROOT/include" export CFLAGS="-D_GNU_SOURCE $CFLAGS -D__uint64_t=u_int64_t -fPIC" [ -n "$CROSS_COMPILE" ] && CONFFLAGS="$CONFFLAGS --host=$CROSS_COMPILE" ./configure $CONFFLAGS \ - --prefix="$PREFIX" \ - --with-root-prefix="$PREFIX" \ - --sbindir="$PREFIX"/bin \ + --prefix="$OPT" \ + --with-root-prefix="$OPT" \ + --sbindir="$OPT"/bin \ --disable-nls \ --enable-symlink-install \ --enable-relative-symlinks diff --git a/package/ed/build b/package/ed/build @@ -1,3 +1,3 @@ -mkdir -p "$PREFIX/bin" +mkdir -p "$OPT/bin" -cc -o "$PREFIX/bin/ed" ed.c +cc -o "$OPT/bin/ed" ed.c diff --git a/package/enchive/build b/package/enchive/build @@ -1,4 +1,4 @@ make -mkdir -p "$PREFIX/bin" -cp enchive "$PREFIX/bin" +mkdir -p "$OPT/bin" +cp enchive "$OPT/bin" diff --git a/package/entr/build b/package/entr/build @@ -1,3 +1,3 @@ ./configure -make PREFIX="$PREFIX" install +make PREFIX="$OPT" install diff --git a/package/git/build b/package/git/build @@ -1,3 +1,3 @@ -./configure --prefix="$PREFIX" --without-tcltk +./configure --prefix="$OPT" --without-tcltk gmake install diff --git a/package/libbearssl/build b/package/libbearssl/build @@ -1,7 +1,7 @@ make -mkdir -p "$PREFIX/bin" "$PREFIX/lib" "$PREFIX/include" +mkdir -p "$OPT/bin" "$OPT/lib" "$OPT/include" -cp build/brssl build/test* "$PREFIX/bin" -cp build/libbearssl.* "$PREFIX/lib" -cp inc/* "$PREFIX/include" +cp build/brssl build/test* "$OPT/bin" +cp build/libbearssl.* "$OPT/lib" +cp inc/* "$OPT/include" diff --git a/package/libmusl/build b/package/libmusl/build @@ -1,14 +1,14 @@ #!/bin/sh set -e -export LDFLAGS="$LDFLAGS -Wl,-rpath-link=$SYSROOT$PREFIX/lib" +export LDFLAGS="$LDFLAGS -Wl,-rpath-link=$SYSROOT$OPT/lib" export CC="$CC -L$SYSROOT/lib -isystem $SYSROOT/include" [ -n "$CROSS_COMPILE" ] && CONFFLAGS="$CONFFLAGS --host=$CROSS_COMPILE" ./configure $CONFFLAGS \ - --prefix="$PREFIX" \ - --syslibdir="$PREFIX"/lib + --prefix="$OPT" \ + --syslibdir="$OPT"/lib make $MAKEFLAGS make $MAKEFLAGS DESTDIR="$DESTDIR" install diff --git a/package/libopus/build b/package/libopus/build @@ -1,4 +1,4 @@ -./configure --prefix="$PREFIX" +./configure --prefix="$OPT" case "$(uname)" in (*BSD ) gmake install ;; diff --git a/package/libtox/build b/package/libtox/build @@ -4,6 +4,6 @@ export VPX_CFLAGS="-I$SYSROOT/include" export VPX_LIBS="-L$SYSROOT/lib" export CFLAGS="-I$SYSROOT/include/opus" -./configure --prefix="$PREFIX" --with-dependency-search="$SYSROOT" +./configure --prefix="$OPT" --with-dependency-search="$SYSROOT" make install diff --git a/package/libvpx/build b/package/libvpx/build @@ -1,4 +1,4 @@ -./configure --prefix="$PREFIX" +./configure --prefix="$OPT" case "$(uname)" in (*BSD ) gmake install ;; diff --git a/package/linux/build b/package/linux/build @@ -19,11 +19,11 @@ make $MAKEFLAGS ARCH="$ARCH" KCONFIG_ALLCONFIG=my.config DISABLE_PAX_PLUGINS=y a if [ "$PKGNAME" = "linux-headers" ] then - make $MAKEFLAGS ARCH="$ARCH" prefix="$PREFIX" INSTALL_HDR_PATH="$PREFIX" headers_install + make $MAKEFLAGS ARCH="$ARCH" prefix="$OPT" INSTALL_HDR_PATH="$OPT" headers_install exit 0 fi make $MAKEFLAGS ARCH="$ARCH" CROSS_COMPILE="$($CC -dumpmachine)-" CC="$CC" CFLAGS="$CFLAGS" DISABLE_PAX_PLUGINS=y KBUILD_BUILD_USER=root KBUILD_BUILD_HOST=anon -grep -q -E '=m$' my.config && make INSTALL_MOD_PATH="$PREFIX" DISABLE_PAX_PLUGINS=y modules_install || true -mkdir -p "$PREFIX/boot" && cp -f "$KPATH" "$PREFIX/boot/" +grep -q -E '=m$' my.config && make INSTALL_MOD_PATH="$OPT" DISABLE_PAX_PLUGINS=y modules_install || true +mkdir -p "$OPT/boot" && cp -f "$KPATH" "$OPT/boot/" diff --git a/package/man-posix/build b/package/man-posix/build @@ -1 +1 @@ -make DESTDIR="$PREFIX" install +make DESTDIR="$OPT" install diff --git a/package/mandoc/build b/package/mandoc/build @@ -1,10 +1,10 @@ tee configure.local << EOF -PREFIX="$PREFIX" -BINDIR="$PREFIX/bin" -SBINDIR="$PREFIX/bin" -INCLUDEDIR="$PREFIX/include/mandoc" -LIBDIR="$PREFIX/lib/mandoc" -MANDIR="$PREFIX/share/man" +PREFIX="$OPT" +BINDIR="$OPT/bin" +SBINDIR="$OPT/bin" +INCLUDEDIR="$OPT/include/mandoc" +LIBDIR="$OPT/lib/mandoc" +MANDIR="$OPT/share/man" BUILD_DB=1 EOF diff --git a/package/mblaze/build b/package/mblaze/build @@ -3,4 +3,4 @@ case "$(uname)" in (*BSD ) make=gmake ;; esac -$make PREFIX="$PREFIX" install +$make PREFIX="$OPT" install diff --git a/package/mpop/build b/package/mpop/build @@ -2,11 +2,11 @@ export libssl_CFLAGS=-I$SYSROOT/include export libssl_LIBS=-L$SYSROOT/lib ./configure \ - --prefix="$PREFIX" \ + --prefix="$OPT" \ --with-tls=openssl make \ CFLAGS="$libssl_CFLAGS" \ LDFLAGS="-L$SYSROOT/lib -lssl -lcrypto" \ -make PREFIX="$PREFIX" install +make PREFIX="$OPT" install diff --git a/package/msmtp/build b/package/msmtp/build @@ -3,13 +3,13 @@ export libssl_LIBS=-L$SYSROOT/lib ./configure \ - --prefix="$PREFIX" \ + --prefix="$OPT" \ --with-tls=openssl make \ CFLAGS="$libssl_CFLAGS" \ LDFLAGS="-L$SYSROOT/lib -lssl -lcrypto" -make PREFIX="$PREFIX" install +make PREFIX="$OPT" install -ln -s "$PREFIX/bin/msmtp" "$PREFIX/bin/sendmail" +ln -s "$OPT/bin/msmtp" "$OPT/bin/sendmail" diff --git a/package/mupdf/build b/package/mupdf/build @@ -3,4 +3,4 @@ case $(uname) in (*BSD) MAKE=gmake ;; esac -$MAKE prefix="$PREFIX" install +$MAKE prefix="$OPT" install diff --git a/package/nafe/build b/package/nafe/build @@ -1 +1 @@ -make && cp psf2txt txt2psf "$PREFIX/bin/" +make && cp psf2txt txt2psf "$OPT/bin/" diff --git a/package/ngircd/build b/package/ngircd/build @@ -1,8 +1,8 @@ ./configure \ CFLAGS="-I$SYSROOT/lib" \ LDFLAGS="-L$SYSROOT/lib" \ - --prefix="$PREFIX" \ - --sbindir="$PREFIX/bin" \ + --prefix="$OPT" \ + --sbindir="$OPT/bin" \ --with-openssl \ --sysconfdir="$HOME/etc/ngircd/ngircd.conf" diff --git a/package/openssh/build b/package/openssh/build @@ -1,4 +1,4 @@ -./configure --prefix="$PREFIX" --sbindir="$PREFIX/bin" +./configure --prefix="$OPT" --sbindir="$OPT/bin" make install diff --git a/package/openssh/build.nero b/package/openssh/build.nero @@ -11,15 +11,15 @@ export CC="$CC -L$SYSROOT/lib -isystem $SYSROOT/include" sed -i 's@-m 4711@-m 0750@g' Makefile.in CC="$CC -D_BSD_SOURCE -DMISSING_FD_MASK -DMISSING_NFDBITS" \ -./configure $CONFFLAGS --prefix="$PREFIX" \ - --sbindir="$PREFIX"/bin --libexecdir="$PREFIX"/lib/ssh \ - --sysconfdir="$PREFIX"/etc/ssh \ +./configure $CONFFLAGS --prefix="$OPT" \ + --sbindir="$OPT"/bin --libexecdir="$OPT"/lib/ssh \ + --sysconfdir="$OPT"/etc/ssh \ --with-sysroot="$SYSROOT" \ --with-privsep-user=nobody \ - --with-xauth="$PREFIX"/bin/xauth \ - --with-ldflags="$LDFLAGS -Wl,-rpath-link=$SYSROOT$PREFIX/lib" \ + --with-xauth="$OPT"/bin/xauth \ + --with-ldflags="$LDFLAGS -Wl,-rpath-link=$SYSROOT$OPT/lib" \ --without-stackprotect \ - --with-md5-passwords --with-mantype=man --mandir="$PREFIX"/share/man \ + --with-md5-passwords --with-mantype=man --mandir="$OPT"/share/man \ --disable-strip --disable-lastlog --disable-utmp --disable-utmpx --disable-btmp \ --disable-wtmp --disable-wtmpx --disable-pututline --disable-pututxline diff --git a/package/opentracker/build b/package/opentracker/build @@ -2,4 +2,4 @@ make \ LIBOWFAT_HEADERS="$SYSROOT/include" \ LIBOWFAT_LIBRARY="$SYSROOT/lib" -make PREFIX="$PREFIX" install +make PREFIX="$OPT" install diff --git a/package/radare2/build b/package/radare2/build @@ -1,3 +1,3 @@ -./configure --prefix="$PREFIX" +./configure --prefix="$OPT" gmake install diff --git a/package/reflex/build b/package/reflex/build @@ -1,4 +1,4 @@ -./configure --prefix="$PREFIX" +./configure --prefix="$OPT" make install -ln -s "$PREFIX/bin/reflex" "$PREFIX/bin/flex" +ln -s "$OPT/bin/reflex" "$OPT/bin/flex" diff --git a/package/retawq/build b/package/retawq/build @@ -1,3 +1,3 @@ ./configure make -cp retawq "$PREFIX/bin/" +cp retawq "$OPT/bin/" diff --git a/package/rsync/build b/package/rsync/build @@ -1,4 +1,4 @@ -./configure --prefix="$PREFIX" \ +./configure --prefix="$OPT" \ CFLAGS="-I$SYSROOT/include" \ LDFLAGS="-L$SYSROOT/lib" diff --git a/package/runit/build b/package/runit/build @@ -6,7 +6,7 @@ fi package/compile -mkdir -p "$PREFIX/share/man/man8" -cp man/* "$PREFIX/share/man/man8" -mkdir -p "$PREFIX/bin" -cp command/* "$PREFIX/bin" +mkdir -p "$OPT/share/man/man8" +cp man/* "$OPT/share/man/man8" +mkdir -p "$OPT/bin" +cp command/* "$OPT/bin" diff --git a/package/sfeed/build b/package/sfeed/build @@ -1 +1 @@ -make MANPREFIX="$PREFIX/share/man" PREFIX="$PREFIX" install +make MANPREFIX="$OPT/share/man" PREFIX="$OPT" install diff --git a/package/st/build b/package/st/build @@ -7,4 +7,4 @@ sed \ config.def.h \ > config.h -make PREFIX="$PREFIX" install +make PREFIX="$OPT" install diff --git a/package/st/st-scrollback-0.7.diff b/package/st/st-scrollback-0.7.diff @@ -1,387 +0,0 @@ -diff --git a/config.def.h b/config.def.h -index b41747f..eae969e 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -7,6 +7,7 @@ - */ - static char font[] = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; - static int borderpx = 2; -+#define histsize 2000 - - /* - * What program is execed by st depends of these precedence rules: -@@ -172,6 +173,8 @@ static Shortcut shortcuts[] = { - { MODKEY|ShiftMask, XK_C, clipcopy, {.i = 0} }, - { MODKEY|ShiftMask, XK_V, clippaste, {.i = 0} }, - { MODKEY, XK_Num_Lock, numlock, {.i = 0} }, -+ { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, -+ { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, - }; - - /* -diff --git a/st.c b/st.c -index 2594c65..233d301 100644 ---- a/st.c -+++ b/st.c -@@ -86,6 +86,8 @@ char *argv0; - #define TRUERED(x) (((x) & 0xff0000) >> 8) - #define TRUEGREEN(x) (((x) & 0xff00)) - #define TRUEBLUE(x) (((x) & 0xff) << 8) -+#define TLINE(y) ((y) < term.scr ? term.hist[((y) + term.histi - term.scr \ -+ + histsize + 1) % histsize] : term.line[(y) - term.scr]) - - - enum glyph_attribute { -@@ -228,26 +230,6 @@ typedef struct { - int narg; /* nb of args */ - } STREscape; - --/* Internal representation of the screen */ --typedef struct { -- int row; /* nb row */ -- int col; /* nb col */ -- Line *line; /* screen */ -- Line *alt; /* alternate screen */ -- int *dirty; /* dirtyness of lines */ -- XftGlyphFontSpec *specbuf; /* font spec buffer used for rendering */ -- TCursor c; /* cursor */ -- int top; /* top scroll limit */ -- int bot; /* bottom scroll limit */ -- int mode; /* terminal mode flags */ -- int esc; /* escape state flags */ -- char trantbl[4]; /* charset table translation */ -- int charset; /* current charset */ -- int icharset; /* selected charset for sequence */ -- int numlock; /* lock numbers in keyboard */ -- int *tabs; --} Term; -- - /* Purely graphic info */ - typedef struct { - Display *dpy; -@@ -327,6 +309,8 @@ typedef struct { - /* function definitions used in config.h */ - static void clipcopy(const Arg *); - static void clippaste(const Arg *); -+static void kscrolldown(const Arg *); -+static void kscrollup(const Arg *); - static void numlock(const Arg *); - static void selpaste(const Arg *); - static void xzoom(const Arg *); -@@ -340,6 +324,29 @@ static void sendbreak(const Arg *); - /* Config.h for applying patches and the configuration. */ - #include "config.h" - -+/* Internal representation of the screen */ -+typedef struct { -+ int row; /* nb row */ -+ int col; /* nb col */ -+ Line *line; /* screen */ -+ Line *alt; /* alternate screen */ -+ Line hist[histsize]; /* history buffer */ -+ int histi; /* history index */ -+ int scr; /* scroll back */ -+ int *dirty; /* dirtyness of lines */ -+ XftGlyphFontSpec *specbuf; /* font spec buffer used for rendering */ -+ TCursor c; /* cursor */ -+ int top; /* top scroll limit */ -+ int bot; /* bottom scroll limit */ -+ int mode; /* terminal mode flags */ -+ int esc; /* escape state flags */ -+ char trantbl[4]; /* charset table translation */ -+ int charset; /* current charset */ -+ int icharset; /* selected charset for sequence */ -+ int numlock; /* lock numbers in keyboard */ -+ int *tabs; -+} Term; -+ - /* Font structure */ - typedef struct { - int height; -@@ -399,8 +406,8 @@ static void tputtab(int); - static void tputc(Rune); - static void treset(void); - static void tresize(int, int); --static void tscrollup(int, int); --static void tscrolldown(int, int); -+static void tscrollup(int, int, int); -+static void tscrolldown(int, int, int); - static void tsetattr(int *, int); - static void tsetchar(Rune, Glyph *, int, int); - static void tsetscroll(int, int); -@@ -731,10 +738,10 @@ tlinelen(int y) - { - int i = term.col; - -- if (term.line[y][i - 1].mode & ATTR_WRAP) -+ if (TLINE(y)[i - 1].mode & ATTR_WRAP) - return i; - -- while (i > 0 && term.line[y][i - 1].u == ' ') -+ while (i > 0 && TLINE(y)[i - 1].u == ' ') - --i; - - return i; -@@ -796,7 +803,7 @@ selsnap(int *x, int *y, int direction) - * Snap around if the word wraps around at the end or - * beginning of a line. - */ -- prevgp = &term.line[*y][*x]; -+ prevgp = &TLINE(*y)[*x]; - prevdelim = ISDELIM(prevgp->u); - for (;;) { - newx = *x + direction; -@@ -811,14 +818,14 @@ selsnap(int *x, int *y, int direction) - yt = *y, xt = *x; - else - yt = newy, xt = newx; -- if (!(term.line[yt][xt].mode & ATTR_WRAP)) -+ if (!(TLINE(yt)[xt].mode & ATTR_WRAP)) - break; - } - - if (newx >= tlinelen(newy)) - break; - -- gp = &term.line[newy][newx]; -+ gp = &TLINE(newy)[newx]; - delim = ISDELIM(gp->u); - if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim - || (delim && gp->u != prevgp->u))) -@@ -839,14 +846,14 @@ selsnap(int *x, int *y, int direction) - *x = (direction < 0) ? 0 : term.col - 1; - if (direction < 0) { - for (; *y > 0; *y += direction) { -- if (!(term.line[*y-1][term.col-1].mode -+ if (!(TLINE(*y-1)[term.col-1].mode - & ATTR_WRAP)) { - break; - } - } - } else if (direction > 0) { - for (; *y < term.row-1; *y += direction) { -- if (!(term.line[*y][term.col-1].mode -+ if (!(TLINE(*y)[term.col-1].mode - & ATTR_WRAP)) { - break; - } -@@ -1012,13 +1019,13 @@ getsel(void) - } - - if (sel.type == SEL_RECTANGULAR) { -- gp = &term.line[y][sel.nb.x]; -+ gp = &TLINE(y)[sel.nb.x]; - lastx = sel.ne.x; - } else { -- gp = &term.line[y][sel.nb.y == y ? sel.nb.x : 0]; -+ gp = &TLINE(y)[sel.nb.y == y ? sel.nb.x : 0]; - lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1; - } -- last = &term.line[y][MIN(lastx, linelen-1)]; -+ last = &TLINE(y)[MIN(lastx, linelen-1)]; - while (last >= gp && last->u == ' ') - --last; - -@@ -1490,6 +1497,9 @@ ttyread(void) - /* keep any uncomplete utf8 char for the next call */ - memmove(buf, ptr, buflen); - -+ if (term.scr > 0 && term.scr < histsize-1) -+ term.scr++; -+ - return ret; - } - -@@ -1499,6 +1509,9 @@ ttywrite(const char *s, size_t n) - fd_set wfd, rfd; - ssize_t r; - size_t lim = 256; -+ Arg arg = (Arg){ .i = term.scr }; -+ -+ kscrolldown(&arg); - - /* - * Remember that we are using a pty, which might be a modem line. -@@ -1690,13 +1703,53 @@ tswapscreen(void) - } - - void --tscrolldown(int orig, int n) -+kscrolldown(const Arg* a) -+{ -+ int n = a->i; -+ -+ if (n < 0) -+ n = term.row + n; -+ -+ if (n > term.scr) -+ n = term.scr; -+ -+ if (term.scr > 0) { -+ term.scr -= n; -+ selscroll(0, -n); -+ tfulldirt(); -+ } -+} -+ -+void -+kscrollup(const Arg* a) -+{ -+ int n = a->i; -+ -+ if (n < 0) -+ n = term.row + n; -+ -+ if (term.scr <= histsize - n) { -+ term.scr += n; -+ selscroll(0, n); -+ tfulldirt(); -+ } -+} -+ -+void -+tscrolldown(int orig, int n, int copyhist) - { - int i; - Line temp; - - LIMIT(n, 0, term.bot-orig+1); - -+ if (copyhist) { -+ term.histi = (term.histi - 1 + histsize) % histsize; -+ temp = term.hist[term.histi]; -+ term.hist[term.histi] = term.line[term.bot]; -+ term.line[term.bot] = temp; -+ } -+ - tsetdirt(orig, term.bot-n); - tclearregion(0, term.bot-n+1, term.col-1, term.bot); - -@@ -1710,13 +1763,20 @@ tscrolldown(int orig, int n) - } - - void --tscrollup(int orig, int n) -+tscrollup(int orig, int n, int copyhist) - { - int i; - Line temp; - - LIMIT(n, 0, term.bot-orig+1); - -+ if (copyhist) { -+ term.histi = (term.histi + 1) % histsize; -+ temp = term.hist[term.histi]; -+ term.hist[term.histi] = term.line[orig]; -+ term.line[orig] = temp; -+ } -+ - tclearregion(0, orig, term.col-1, orig+n-1); - tsetdirt(orig+n, term.bot); - -@@ -1765,7 +1825,7 @@ tnewline(int first_col) - int y = term.c.y; - - if (y == term.bot) { -- tscrollup(term.top, 1); -+ tscrollup(term.top, 1, 1); - } else { - y++; - } -@@ -1930,14 +1990,14 @@ void - tinsertblankline(int n) - { - if (BETWEEN(term.c.y, term.top, term.bot)) -- tscrolldown(term.c.y, n); -+ tscrolldown(term.c.y, n, 0); - } - - void - tdeleteline(int n) - { - if (BETWEEN(term.c.y, term.top, term.bot)) -- tscrollup(term.c.y, n); -+ tscrollup(term.c.y, n, 0); - } - - int32_t -@@ -2371,11 +2431,11 @@ csihandle(void) - break; - case 'S': /* SU -- Scroll <n> line up */ - DEFAULT(csiescseq.arg[0], 1); -- tscrollup(term.top, csiescseq.arg[0]); -+ tscrollup(term.top, csiescseq.arg[0], 0); - break; - case 'T': /* SD -- Scroll <n> line down */ - DEFAULT(csiescseq.arg[0], 1); -- tscrolldown(term.top, csiescseq.arg[0]); -+ tscrolldown(term.top, csiescseq.arg[0], 0); - break; - case 'L': /* IL -- Insert <n> blank lines */ - DEFAULT(csiescseq.arg[0], 1); -@@ -2871,7 +2931,7 @@ eschandle(uchar ascii) - return 0; - case 'D': /* IND -- Linefeed */ - if (term.c.y == term.bot) { -- tscrollup(term.top, 1); -+ tscrollup(term.top, 1, 1); - } else { - tmoveto(term.c.x, term.c.y+1); - } -@@ -2884,7 +2944,7 @@ eschandle(uchar ascii) - break; - case 'M': /* RI -- Reverse index */ - if (term.c.y == term.top) { -- tscrolldown(term.top, 1); -+ tscrolldown(term.top, 1, 1); - } else { - tmoveto(term.c.x, term.c.y-1); - } -@@ -3047,7 +3107,7 @@ tputc(Rune u) - void - tresize(int col, int row) - { -- int i; -+ int i, j; - int minrow = MIN(row, term.row); - int mincol = MIN(col, term.col); - int *bp; -@@ -3087,6 +3147,14 @@ tresize(int col, int row) - term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty)); - term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs)); - -+ for (i = 0; i < histsize; i++) { -+ term.hist[i] = xrealloc(term.hist[i], col * sizeof(Glyph)); -+ for (j = mincol; j < col; j++) { -+ term.hist[i][j] = term.c.attr; -+ term.hist[i][j].u = ' '; -+ } -+ } -+ - /* resize each row to new width, zero-pad if needed */ - for (i = 0; i < minrow; i++) { - term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); -@@ -3976,11 +4044,11 @@ drawregion(int x1, int y1, int x2, int y2) - term.dirty[y] = 0; - - specs = term.specbuf; -- numspecs = xmakeglyphfontspecs(specs, &term.line[y][x1], x2 - x1, x1, y); -+ numspecs = xmakeglyphfontspecs(specs, &TLINE(y)[x1], x2 - x1, x1, y); - - i = ox = 0; - for (x = x1; x < x2 && i < numspecs; x++) { -- new = term.line[y][x]; -+ new = TLINE(y)[x]; - if (new.mode == ATTR_WDUMMY) - continue; - if (ena_sel && selected(x, y)) -@@ -4000,7 +4068,8 @@ drawregion(int x1, int y1, int x2, int y2) - if (i > 0) - xdrawglyphfontspecs(specs, base, i, ox, y); - } -- xdrawcursor(); -+ if (term.scr == 0) -+ xdrawcursor(); - } - - void diff --git a/package/tonic-init/build.sh b/package/tonic-init/build.sh @@ -3,7 +3,7 @@ set -e set -x $CC -L$SYSROOT/lib -isystem $SYSROOT/include $CFLAGS $LDFLAGS -o init "$PKGDIR"/init.c -cp -f init "$DESTDIR$PREFIX"/bin/init -cp -f "$PKGDIR"/linuxrc "$DESTDIR$PREFIX"/linuxrc -cp -f "$PKGDIR"/rc.init "$DESTDIR$PREFIX"/bin/rc.init -cp -f "$PKGDIR"/rc.shutdown "$DESTDIR$PREFIX"/bin/rc.shutdown +cp -f init "$DESTDIR$OPT"/bin/init +cp -f "$PKGDIR"/linuxrc "$DESTDIR$OPT"/linuxrc +cp -f "$PKGDIR"/rc.init "$DESTDIR$OPT"/bin/rc.init +cp -f "$PKGDIR"/rc.shutdown "$DESTDIR$OPT"/bin/rc.shutdown diff --git a/package/u9fs/build b/package/u9fs/build @@ -1,2 +1,2 @@ -mkdir -p "$PREFIX/bin" -make DESTROOT="$PREFIX" install +mkdir -p "$OPT/bin" +make DESTROOT="$OPT" install