diff options
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | PKGBUILD | 42 | ||||
-rw-r--r-- | README.terminfo.rst | 56 |
4 files changed, 38 insertions, 73 deletions
@@ -1,19 +1,19 @@ pkgbase = st pkgdesc = A simple virtual terminal emulator for X. - pkgver = 0.8.3 + pkgver = 0.9.2 pkgrel = 1 url = https://st.suckless.org arch = i686 arch = x86_64 arch = armv7h + arch = aarch64 license = MIT depends = libxft - source = https://dl.suckless.org/st/st-0.8.3.tar.gz + source = https://dl.suckless.org/st/st-0.9.2.tar.gz source = terminfo.patch source = README.terminfo.rst - sha256sums = 939ae3da237e7c9489694853c205c7cbd5f2a2f0c17fe41a07477f1df8e28552 + sha256sums = 6b215d4f472b21d6232f30f221117a777e24bcfee68955ddefb7426467f9494b sha256sums = f9deea445a5c6203a0e8e699f3c3b55e27275f17fb408562c4dd5d649edeea23 - sha256sums = 0ebcbba881832adf9c98ce9fe7667c851d3cc3345077cb8ebe32702698665be2 + sha256sums = 95be3197f7de77a0fe2e4f527202e17e910ee24e1ed6bc39beb320a1304bb7e1 pkgname = st - diff --git a/.gitignore b/.gitignore index 2d32340cf5c0..00905bae1165 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ -/*.pkg.tar.xz /config.def.h /config.h /pkg/ /src/ /st-*.tar.gz +/st-*.pkg.tar.xz +/st-*.pkg.tar.zst @@ -1,27 +1,27 @@ # Maintainer: Jose Riha <jose1711 gmail com> # Maintainer: Sebastian J. Bronner <waschtl@sbronner.com> +# Maintainer: Kevin Stolp <kevinstolp@gmail.com> # Contributor: Patrick Jackson <PatrickSJackson gmail com> # Contributor: Christoph Vigano <mail@cvigano.de> pkgname=st -pkgver=0.8.3 +pkgver=0.9.2 pkgrel=1 pkgdesc='A simple virtual terminal emulator for X.' -arch=('i686' 'x86_64' 'armv7h') +arch=('i686' 'x86_64' 'armv7h' 'aarch64') license=('MIT') depends=(libxft) url=https://st.suckless.org source=(https://dl.suckless.org/$pkgname/$pkgname-$pkgver.tar.gz terminfo.patch README.terminfo.rst) -sha256sums=(939ae3da237e7c9489694853c205c7cbd5f2a2f0c17fe41a07477f1df8e28552 - f9deea445a5c6203a0e8e699f3c3b55e27275f17fb408562c4dd5d649edeea23 - 0ebcbba881832adf9c98ce9fe7667c851d3cc3345077cb8ebe32702698665be2) +sha256sums=('6b215d4f472b21d6232f30f221117a777e24bcfee68955ddefb7426467f9494b' + 'f9deea445a5c6203a0e8e699f3c3b55e27275f17fb408562c4dd5d649edeea23' + '95be3197f7de77a0fe2e4f527202e17e910ee24e1ed6bc39beb320a1304bb7e1') _sourcedir=$pkgname-$pkgver -_makeopts="--directory=$_sourcedir" prepare() { - patch --directory="$_sourcedir" --strip=0 < terminfo.patch + patch -d "$_sourcedir" -p 0 < terminfo.patch # This package provides a mechanism to provide a custom config.h. Multiple # configuration states are determined by the presence of two files in @@ -36,37 +36,33 @@ prepare() { # configuration changes. The package is built using # default values. # present The user has supplied his or her configuration. The - # file will be copied to $srcdir and used during + # file will be copied to $_sourcedir and used during # build. # - # After this test, config.def.h is copied from $srcdir to $BUILDDIR to + # After this test, config.def.h is copied from $_sourcedir to $BUILDDIR to # provide an up to date template for the user. if [ -e "$BUILDDIR/config.h" ] then cp "$BUILDDIR/config.h" "$_sourcedir" elif [ ! -e "$BUILDDIR/config.def.h" ] then - msg='This package can be configured in config.h. Copy the config.def.h ' - msg+='that was just placed into the package directory to config.h and ' - msg+='modify it to change the configuration. Or just leave it alone to ' - msg+='continue to use default values.' - warning "$msg" + echo \ + 'This package can be configured in config.h. Copy the config.def.h that' \ + 'was just placed into the package directory to config.h and modify it' \ + 'to change the configuration. Or just leave it alone to continue to use' \ + 'default values.' fi cp "$_sourcedir/config.def.h" "$BUILDDIR" } build() { - make $_makeopts X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 + make -C "$_sourcedir" X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 } package() { - local installopts='--mode 0644 -D --target-directory' local shrdir="$pkgdir/usr/share" - local licdir="$shrdir/licenses/$pkgname" - local docdir="$shrdir/doc/$pkgname" - make $_makeopts PREFIX=/usr DESTDIR="$pkgdir" install - install $installopts "$licdir" "$_sourcedir/LICENSE" - install $installopts "$docdir" "$_sourcedir/README" - install $installopts "$docdir" README.terminfo.rst - install $installopts "$shrdir/$pkgname" "$_sourcedir/st.info" + make -C "$_sourcedir" PREFIX=/usr DESTDIR="$pkgdir" install + install -D -m 0644 -t "$shrdir/licenses/$pkgname" "$_sourcedir/LICENSE" + install -D -m 0644 -t "$shrdir/doc/$pkgname" "$_sourcedir/README" README.terminfo.rst + install -D -m 0644 -t "$shrdir/$pkgname" "$_sourcedir/st.info" } diff --git a/README.terminfo.rst b/README.terminfo.rst index cd724d0d4cd6..8c08b948f67e 100644 --- a/README.terminfo.rst +++ b/README.terminfo.rst @@ -2,7 +2,7 @@ Terminfo Entries ================ :Author: Sebastian J. Bronner <waschtl@sbronner.com> -:Date: 2019-11-06 +:Date: 2023-02-12 :URL: https://aur.archlinux.org/packages/st The Problem @@ -10,11 +10,11 @@ The Problem Most Linux-based distributions will have their terminfo entries in the ``ncurses`` package. These live in ``/usr/share/terminfo``. There you will find -several entries for ``st``. As of ``ncurses-6.1`` as packaged in ArchLinux, -these, do not work well with current versions of ``st``. +several entries for ``st``. Up until ``ncurses-6.1`` as packaged in ArchLinux, +these, did not work well with then-current versions of ``st``. Specifically, I have observed the following issues when using the terminfo -entries supplied with ``ncurses``: +entries supplied with those versions of ``ncurses``: * Start ``st``. * Run ``tmux`` in the ``st`` window. @@ -38,53 +38,21 @@ For reference, I performed these tests using the following software versions: ``st`` 0.8.2, ``tmux`` 2.9_a, ``neovim`` 0.4.2, and ``w3m`` 0.5.3.git20190105-1. -A couple of issues have been filed against ``tmux`` for this. Although it is -not a problem with ``tmux`` the issues remain for reference: - -| https://github.com/tmux/tmux/issues/1264 -| https://github.com/tmux/tmux/issues/1593 - -Complications -------------- - -While it may be tempting to use the terminfo files shipped with ``st``, that -would be a bad idea from a packaging standpoint. There are two reasons for -this: (1) As of ``st-0.8.2`` they have errors in them. This has been fixed and -will roll out in the next release, though. - -| https://lists.gnu.org/archive/html/bug-ncurses/2019-10/msg00071.html -| https://lists.suckless.org/hackers/1911/17006.html - -(2) It is vital that remote terminals connecting via ``ssh`` are known. That is -accomplished by having all terminfo files in one package (like ``ncurses``). - -``ncurses`` has released updated terminfo entries. The problem as described -above is fixed. However, the updated terminfo entries are not installed on -ArchLinux because they were released as a standalone file without a new release -of the rest of ``ncurses``. - -The Solution ------------- - -The solution must be to get the updated terminfo entries packaged for -ArchLinux. I believe that the ``ncurses`` package should be updated to that -effect. - -https://bugs.archlinux.org/task/57596 - The Workaround -------------- -A somewhat painful, albeit pragmatic, workaround is as follows: A user that -encounters issues that are due to mismatched terminfo entries, such as those -above, can populate a user-level terminfo database from the terminfo entries -supplied by ``st``. The following command will do this: +The affected versions of all software packages have since been updated and the +issue has been resolved. However, when connecting to older remote systems using +``ssh`` in ``st``, those remote systems may still be affected. In those cases, +it would help to copy over ``st``'s terminfo file and generate user-level +terminfo entries: .. code:: shell - tic -sx /usr/share/st/st.info + rsync /usr/share/st/st.info <remote>: + ssh <remote> tic -sx st.info The generated terminfo database will most likely be placed in ``~/.terminfo``. The command will print the actual location used. Unfortunately, these files need to be kept up to date by hand. Actually they should probably be removed as -soon as a new version of ``ncurses`` is released. +soon as a new version of ``ncurses`` is installed on the remote system. |